Smartlight
An overengineered flashlight app created at Hack Club’s Scrapyard event (March 2025). Because why should a flashlight just… turn on and off?

Project Overview
The Smartlight project transforms an ordinary flashlight into a sophisticated IoT device with AI capabilities. Built during Hack Club’s Scrapyard event, this project demonstrates how modern web technologies, IoT principles, and artificial intelligence can be combined to create something delightfully unnecessary.
Key Features
- 📱 Web-based Control Interface: Control your flashlight from any device using a modern UI built with Next.js and TailwindCSS
- 🦷 Bluetooth Connectivity: Pair with your device using Web Bluetooth API for setup and control
- 📡 WiFi Configuration: Configure WiFi settings via the Bluetooth connection
- 🤖 AI Conversations: Talk to your flashlight using Google’s Gemini API for a more personalized experience
- 🗣️ Voice Control: Speak commands to control your flashlight with text-to-speech capabilities
- 🔌 Real-time Communication: Interact with your flashlight in real-time using WebSocket protocol
- 🌙 Dark Mode Support: Because even flashlights need a dark mode
- 🏀 Special Features: Takes breaks to “watch” Lakers games (because even flashlights love LeBron)
Technical Stack
Frontend
-
Framework: Next.js with React
-
Styling: TailwindCSS for clean, responsive design
-
APIs: Web Bluetooth API, Web Speech API
-
AI Integration: Google Gemini API
Hardware
-
Microcontroller: Raspberry Pi Pico W
-
Components: LED module, Speaker
-
Communication: Bluetooth, WiFi
Backend
-
Server: Custom HTTP server built with Python
-
Communication: BLE for setup, HTTP for control
-
Protocol: WebSocket for real-time communication
Code Architecture
The project consists of two main components:
-
Hardware Code (Python): Controls the physical flashlight and handles communication with the frontend
- Bluetooth service for pairing and WiFi configuration
- HTTP server for receiving commands
- Digital I/O control for the LED
-
Frontend (Next.js): Provides a user interface for controlling the flashlight
- Bluetooth connectivity for initial setup
- HTTP communication for sending commands
- Voice interface using Web Speech API
- AI integration using Gemini API
Why Build This?
At Hack Club’s Scrapyard event, the goal was to create something fun, over-engineered, and slightly ridiculous. This project demonstrates how even the simplest device—a flashlight—can be transformed into a sophisticated IoT gadget with modern web technologies.
The project serves as a playful learning platform for:
- IoT device development
- Web-based hardware control
- Bluetooth and WiFi communication
- AI integration
- Voice interface design
Getting Started
If you’d like to create your own overengineered flashlight:
- Clone the repository
-
Set up the hardware:
- Connect an LED to a Raspberry Pi Pico W
- Flash the Python code to the board
-
Configure the frontend:
- Install dependencies with
yarn install
- Set up environment variables
- Run the development server with
yarn dev
Built at Scrapyard 2025
This project was created during Hack Club’s Scrapyard event in March 2025, where hackers gather to build wonderfully overengineered projects. Special thanks to Hack Club for hosting such an amazing event!