back to work
2026backend · web · androidSolo·2026 — present·shipping weekly

Lumi.

Personal AI. Runs on your hardware.

lumi.local · waveform_active
lumi ▸ stays on this machine. always.
on-devicebackend · web · android

problem

Every popular assistant ships your prompts, voice recordings, and personal context to someone else's GPUs. For people who want an AI that knows them — calendars, notes, conversations — that's a non-starter.

approach

Built Lumi as four repos that move together. A Python backend on Postgres holds memory and state. A React web client and a Kotlin Android app talk to it over a private tunnel. Voice activation runs on-device — no audio leaves the user's machine. Marketing site on Cloudflare Pages keeps load-times sub-second worldwide.

outcome

Live on my own hardware, shipping weekly. Voice wake-word, chat, memory, and Android client all working. Architecture chosen so a non-technical user could one-day boot it on a $200 mini-PC.

repos
4
stacks
Python · Kotlin · React · Astro
egress at rest
0 bytes

stack rationale

  • Self-hosted PostgresLong-term memory must outlive the model. Postgres handles JSON, vectors, and structured records in one place — no vendor lock-in.
  • Kotlin (not Flutter / RN)Wake-word and audio streaming need native APIs and tight memory control. Kotlin makes both straightforward.
  • Astro for marketingMostly static, zero hydration cost. Cloudflare Pages serves it from the edge. Tiny TTFB, low CO₂.

full stack

  • Python
  • PostgreSQL
  • Docker
  • React
  • Kotlin
  • Astro