The pad
A Star Trek-inspired PADD (personal access display device) for tablets on the home LAN. A PC host serves an LCARS-style shell; the tablet is a thin client. Chrono, host status, notes, weather, bookmarks, a local “library computer,” and a few bridge-station screens live in one URL.
A household dashboard with LCARS chrome, not a screenshot pack. Visual homage only: no trademarked fonts, logos, or TV audio.
Why a tablet instead of another web UI
The house already has home agent for chat and Home Assistant for the wires. The missing piece was something that stays on the counter: clock, notes, weather, host health, a launcher for the rest. Generic dashboards work and look like every other tab. LCARS is how the kitchen slate gets a face.
Trusted LAN, HTTP, optional PIN on writes. Service-worker offline waits until local HTTPS exists. Add-to-home-screen is a bookmark with full-viewport chrome, not an offline PWA.
Try the shell
Tap the coloured rail on the left to switch modules. Theme chips in the header bar switch TNG / DS9 / Voyager / Romulan / Klingon. Klingon and Romulan reshape the chrome, not just the palette.
Simulation only. No Fastify host, no SQLite, no LM Studio calls leave this page.
Architecture
Web. React + TypeScript + Vite. Shared LCARS tokens and shell (header, rail, well, footer ticker). Modules are a catalog, not a plugin platform: Chrono, Status, Bridge, Notes, Computer, Weather, Bookmarks, Settings, About.
Server. Node 22 + Fastify. SQLite via Drizzle / better-sqlite3 (WAL). Zod contracts shared between UI and API. WebSocket hub for live status. Optional PIN with throttled sessions.
Deploy. Docker Compose on a Linux host, one origin on port 1701 (dev splits Vite 1702 / API 1701). Tablets open PADD_PUBLIC_URL; the host logs a QR. Bookworm images, not Alpine, so the native SQLite build stays boring.
Computer. Optional local LM Studio as the library computer. Weather is Open-Meteo (Toronto in the sim). Status is host metrics + stardate + an event buffer, not a fake starship.
Shipped
MVP plus the start of phase 2: shell, themes, Chrono, Status over WebSocket, Notes, Weather, Bookmarks, Computer, Settings, About, optional PIN, Docker on the LAN. Bridge groups the fun stations (tactical, comms, cartography, …) so the rail stays a real household list.
Out of scope
Home Assistant stays the house brain if you use it. This is not a public internet app, not a native iOS/Android binary, and not a pixel-perfect recreation of every Trek era. Smart-home control comes later. Writes stay local until that lands behind the PIN.
Roadmap
Tighter home-agent / HA hooks on the tablet, local HTTPS so an installable shell is allowed, and more modules that earn a rail button. Success is the kitchen slate staying on this URL.
On the counter
A LAN PADD: LCARS-inspired tablet UI from a small Fastify host, with enough real modules to live on a counter.
references