Build something real.
Local. 72 hours. Yours.
This is a builder's workshop, not a funnel. You'll find a starter kit for shipping local-first apps, a trail journal of what actually worked, and build artifacts from real sessions.
What this is
A zip with env setup, folder structure, working boilerplate, and day-by-day checklists. Paid, one-time.
Short posts about what I built, what failed, and what surprised me. No theory — just build notes.
Screenshots, snippets, and demos from real sessions. Proof that the stuff works before you buy anything.
72-hour paths
View all →Household Inventory Brain
Scan, store, find anything at home
- · SQLite local DB
- · Barcode scan UI
- · Search + filter
Personal Automation Agent
Run scheduled tasks on your machine
- · Cron-style runner
- · Telegram/email alerts
- · Log dashboard
Micro-SaaS Preview
LAN-shareable app for one paying idea
- · Multi-user LAN server
- · Basic auth
- · One core feature
What you'll have shipped locally after 72 hours
- A working local web server running on your own machine
- A SQLite or JSON database with real data
- A UI you built yourself — not from a template
- An artifacts folder with screenshots of what you made
- A terminal workflow you can repeat
Latest artifacts
View all →
Inventory search: live filtering as you type
The search bar in the Household Inventory app. SQLite FTS5 powers it — results appear below 200ms on a Raspberry Pi 4 with ~800 items.
FastAPI + SQLite CRUD boilerplate
A minimal FastAPI app with SQLite via aiosqlite. Includes a working /items endpoint with GET, POST, PATCH, DELETE. No ORM — raw SQL with parameter binding.
Why SQLite FTS5 is enough for local search
I spent an afternoon convinced I needed Elasticsearch for full-text search. Then I tried FTS5. It handles 10,000+ rows instantly, is included in Python's stdlib, and requires zero configuration. Stop sleeping on it.

Automation agent log dashboard
Simple Jinja2 + Tailwind dashboard showing task history, last run time, and success/failure status. Built in about 3 hours on Day 2 of the agent build.

Telegram bot notification from Python agent
Daily briefing message arriving in Telegram from the local automation agent. Took about 40 minutes to set up end-to-end including bot token and chat ID.

App running on phone via LAN share
The recipe manager loading on a phone browser via the local IP. No tunnels, no ngrok, no cloud — just 0.0.0.0 binding and the LAN IP.
Trail journal
All posts →Day 1 of the Inventory Brain: What actually got done
I planned to build a beautiful app. I ended up with a working database, one API endpoint, and a form that submits without breaking. That's it. That's the win.
What 'local first' actually means for a side project
Local first doesn't mean offline-only or anti-cloud. It means your app works on your machine before you spend a dollar on infrastructure. Here's why that constraint is productive.
72 hours: what actually ships vs. what you plan to ship
A post-mortem on my first 72-hour build attempt. What I planned, what I cut, what surprised me, and what I'd do differently.
ready to build?
Start with the kit. Ship in 72 hours.
One payment. No subscription. You get the files, the checklists, and the setup that actually works.
Get the Starter Kit