All projects

Case Studies / Full-Stack AI Product

Luna

Luna is an AI assistant app for my phone. It helps me manage tasks, my calendar, email, and coding work from one place. When it works on code, it shows each proposed change and waits for my approval before anything runs.

Verified delivery

Live
Self-hosted on my homelab
500+
Commits, built solo
160+
Test files across server and web app
Luna desktop home with an approval card, beside the phone Money screen
Exhibit A · Interface captureDesktop home with a change waiting for approval, and the phone Money view. Captured from a local run with synthetic data.

01 / Challenge

The workflow before the system

I wanted to handle tasks, my calendar, email, and coding work from my phone, and AI help with code is only useful if nothing changes without my say.

02 / Approach

How I designed the response

I built a phone-first web app with a Bun + Hono backend and one SQLite database. The AI runs behind it, and every action it proposes appears as a card in the chat with an Approve button, so nothing happens until I confirm.

  • Chat with the AI from my phone, with replies streaming in
  • Approve button before any proposed change runs
  • Tasks and notes the assistant remembers, which I can see and edit
  • Calendar and email in the same app
  • Money tracking on a payday cycle
  • Push notifications, and it installs on the phone like an app
  • Phone-first layout with a desktop view

03 / Outcome

Live on my homelab. Built solo across 500+ commits, with 160+ test files covering the server and web app.

Exhibits B–E / Screens

Phone first, with a desktop view.

Captured from a local run with synthetic data. The chat uses the built-in test mode instead of a real AI model.

Luna phone chat with a pending approval card for a three-file code change
Exhibit BChat: Luna proposes a code change and waits for approval.
Luna phone home screen with one pending approval and two todos due today
Exhibit CHome: what needs you today, in one screen.
Luna phone money screen showing money free until payday and spending by category
Exhibit DMoney: what is free until payday.
Luna desktop todo list grouped by day beside an open repeating todo
Exhibit EDesktop: todo list beside the open item.

04 / Workflow

Before

  • Coding work needed a laptop
  • No clear record of what the AI changed
  • Tasks, calendar, and email in separate apps

With the system

  1. Open Luna on the phone and start or continue a chat
  2. See what the AI is doing as cards in the chat
  3. Approve or decline each proposed change
  4. Check tasks, calendar, email, and money in the same app
  5. Get a push notification when something needs me

05 / Engineering proof

Architecture

  • React 19 + Vite + Tailwind web app that installs on the phone (PWA)
  • Bun + Hono server with Drizzle ORM on one SQLite file
  • Different AI engines can plug in behind the same chat
  • Web Push notifications; runs as a container on my homelab

Verified evidence

  • Live on my homelab
  • 500+ commits and 160+ test files
  • Screens captured from a local run with synthetic data

06 / Judgment

Tradeoffs

  • One process and one SQLite file instead of microservices: simpler to run and back up
  • Private repository: it holds personal integrations

Why it matters

  • Shows end-to-end product work: UX, API, data model, integrations, and deployment
  • Shows careful use of AI: nothing runs without my approval

What this proves

I can design, build, ship, and keep improving a full-stack product on my own.

Signed · Mohamed Abdelwahab