A suite of smart home apps for wall-mounted displays, built for Raspberry Pi.
Browse all apps at dak.bkemper.me.
- Raspberry Pi 4 (or newer)
- Touchscreen display
- USB microphone (optional, for voice control)
- Flash Raspberry Pi OS Lite (64-bit) to SD card
- Enable SSH, set hostname, connect to Wi-Fi via Raspberry Pi Imager
- From your laptop, run the deploy script:
./dashboard/scripts/deploy.sh <user@host>This SSHs into the Pi and sets up everything:
- Kiosk - Cage (Wayland compositor), Chromium, auto-login
- Home relay - Python service for Kasa, WoL, brightness, config sync
- Zigbee - Mosquitto MQTT broker, Zigbee2MQTT
- Voice - Audio packages for Vosk/Piper voice control
- Extras - i2c for DDC brightness, virtual keyboard, auto-brightness cron
| App | Description |
|---|---|
| Dashboard | Kiosk dashboard with customizable widgets and smart home controls |
| Notes App | Rich-text note-taking with sharing and real-time sync |
| Health Tracker | Family medication and shot tracking |
| Family Chores | Chore management with points and leaderboards |
| Climate Display | Indoor/outdoor temperature display |
| Kasa Controller | Smart plug control app |
| Package | Description |
|---|---|
| @dak/ui | Shared UI components |
| @dak/hooks | Shared React hooks |
| @dak/vite-shared-react | Shared Vite config and theme |
| @dak/api-client | Generated home-relay API client |
| @dak/kasa-client | Kasa smart plug hooks and utilities |
- Runtime - React 19, TypeScript 5.9
- Build - Vite 8, pnpm workspaces
- Styling - Tailwind CSS 4
- State - Zustand
- Linting - oxlint
- Formatting - oxfmt
- Backend - Supabase (auth/db), FastAPI (home-relay)
- Hosting - Cloudflare Pages
# From repo root - runs all apps
pnpm dev
# Or run a single app
cd <app> && pnpm devpnpm lint # oxlint
pnpm typecheck # TypeScript (all apps)
pnpm format:check # oxfmt
pnpm format # Auto-fix formatting
pnpm check # Run all checks + build
./scripts/ci.sh # Run all CI checks locally with auto-fixPush to main to automatically deploy all apps to Cloudflare Pages.
Hosted at dak.bkemper.me with preview deployments for PRs.
- All apps support light and dark mode (system preference or manual toggle)
- Instead of using the hosted version, you can run
pnpm devon the Pi and point Chromium tolocalhost:8080
Built with Claude Code (Anthropic's AI assistant) handling most of the implementation, with human direction on architecture, features, and design decisions.