Writing

Things I'm building, breaking, learning.

Side projects, half-formed thoughts, and the occasional rant.

shopmsg: local-first WhatsApp messaging for small shops

Local desktop application for shopkeepers to send customer updates and order notifications directly over WhatsApp. Customer data stays on the machine with zero recurring gateway fees.

projectwhatsapplocal-firstnode

printprep: prepress normalization to PDF/X-1a and FOGRA39

Customer artwork is always broken. PrintPrep automatically normalizes uploads into certified PDF/X-1a:2001 files with FOGRA39 output intent, bleed generation, and CMYK color space checks in Go.

projectgoprepresspdf

voxora: full-duplex voice AI with sub-second latency

Autonomous phone and web voice receptionist for service businesses. Full-duplex 24kHz linear PCM streaming over WebSockets with AssemblyAI voice agents, DTMF synthesis, and real-time audio visualization.

projectvoice-aiwebwebsockets

whisperian: hands-free web reading with synced highlights

A Chrome extension that reads web articles, selected passages, and local PDFs aloud using the Vaani TTS API with word-level visual highlighting. Read with your ears without losing your place.

projectchrome-extensionttsweb

dineqr: QR menus and live table ordering

Guests scan a table QR, browse the menu, and place an order. The kitchen gets a live board. Admin gets AI menu import, tables, and sales — no app download required.

projectwebai

undercover: a party game that stays on one phone

Pass-and-play social deduction for 3–12 people. Secret words, civilians vs undercover, optional Mr. White. Client-only PWA — no accounts, offline after the first load.

projectwebpwa

vtclock: attendance and payroll without the spreadsheet chaos

Shops and field teams still run attendance in chat screenshots. I built a multi-tenant PWA for geofenced check-ins, leave, advance recovery, and printable salary slips.

projectwebpwa

bodyctl: a closed loop for body comp, still being wired up

I lift, I track macros, I order groceries. None of it talks to each other. So I'm building one tool that takes my weight as input and runs the rest. Most of the loop is still under construction.

projectwipfitnessautomation

tg-vaani: a Telegram bot that talks back

A side project that reads my long PDFs to me, but smarter. It rewrites whatever you send into how a friend would actually say it, then reads that part out loud.

projecttelegramtts

tyron catlog: a one-night build for a friend's shop

A friend who runs an online clothing shop wanted to skip the photo shoots. He couldn't find a tool that did this. I built one for him in a night.

projectwebai

docling-web: a web UI for the library that won't let you use it

Docling is a great PDF to Markdown library. Using it directly is the kind of pain that makes you give up. So I wrapped it in a web UI, packed it in a single Docker image, and pushed it public.

projectwebdockertools

skillctl: managing AI skills without losing the plot

A local CLI to aggregate, import, and sync reusable AI skills from GitHub and existing agent setups. One library, less mess.

projectcliai-agents

uno tracker: because nobody can do mental math while losing

We play a lot of UNO. Scoring on paper kept ending in arguments. So I made a small app that runs the math, syncs across phones, and lets people watch live.

projectwebpwa