vibecoder
build log

Portfolio

Projects and artifacts from real sessions. No vaporware — everything listed has at least one working commit.

Projects

Household Inventory Brain

Household Inventory Brain

Local Tool · Nov 1, 2024
In Progress

Local searchable inventory system for tracking household items by room and category. Runs on a Raspberry Pi at home.

SQLite FTS5 for full-text search across ~800 items. HTMX handles search UI without a JavaScript framework. Phone camera barcode scanning via a lightweight JS library. Accessible from any device on the home LAN.

Daily Briefing Agent

Daily Briefing Agent

Automation · Oct 15, 2024
Complete

Scheduled Python script that aggregates weather, calendar events, and system stats — sends a Telegram message every morning.

APScheduler handles cron-like timing. Runs as a systemd service on Linux — restarts on reboot without any manual intervention. Telegram Bot API for delivery. Took about 40 minutes to get the first message working end-to-end.

no screenshot yet

LAN Recipe Manager

Web App · Sep 20, 2024
Experimental

Recipe storage and search app shared on the home network. Paused at v0 — the search needed work and other builds took priority.

Node.js + SQLite + vanilla JS. Basic CRUD for recipes with a simple search. The LAN sharing worked fine using 0.0.0.0 binding. Paused because the search UX wasn't good enough to use regularly — FTS5 is the fix but I haven't circled back.

Artifacts

8 artifacts total — screenshots, snippets, notes, and demos from real sessions.

Screenshots

Inventory search: live filtering as you type
ScreenshotNov 8, 2024

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.

SQLiteHTMXPython
Telegram bot notification from Python agent
ScreenshotOct 22, 2024

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.

PythonTelegramAPScheduler
App running on phone via LAN share
ScreenshotOct 18, 2024

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.

Node.jsLANmobile
Day 1 checklist: what actually gets done
ScreenshotOct 10, 2024

Day 1 checklist: what actually gets done

My completed Day 1 checklist from the inventory build. The goal was a working SQLite schema, one CRUD endpoint, and a form that submits. All three done by hour 6.

processchecklist

Demos

Automation agent log dashboard
DemoOct 25, 2024

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.

PythonJinja2Tailwind

Code Snippets

Code Snippet
Code SnippetNov 5, 2024

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.

FastAPISQLitePython
Code Snippet
Code SnippetSep 30, 2024

One-command Python dev environment setup

The Makefile target I use to set up a Python venv, install deps, and copy .env.example to .env.local in a single `make setup`. No more "it works on my machine" moments.

PythonMakefileDX

Build Notes

Build Note
Build NoteNov 3, 2024

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.

SQLitesearchopinion

Build log is live. Projects are stored in /content/projects.json and artifacts in /content/artifacts.json. No CMS, no database — just JSON files and a git push.