Projects
Recent side projects, built with AI-assisted development.
Pact
Web app
Group habit challenges with a live leaderboard. Friends join a group with a six-character PIN and compete on five daily habits.
- The group votes on five shared habits, or each member picks their own five.
- A done habit is a point and a perfect day adds a bonus; the table updates live.
- Spot-checks and timed habits keep the honor system honest.
- React
- Vite
- Supabase
- PWA
IronLog
Web app
A private, offline-first weightlifting tracker that installs to your home screen. Every workout is stored on the device, and cloud backup stays off until you turn it on.
- Logs sets, reps, weight and RPE, with a rest timer, supersets and a plate calculator.
- Spots PRs by weight, volume and estimated 1RM, and charts strength and body weight over time.
- Plans add weight as you progress and deload by 10% after two failed sessions in a row.
- No account, ads or telemetry. Back up to a JSON file, or move your data to another phone by QR code.
- React
- Vite
- IndexedDB
- Supabase
- PWA
explainer-engine
Explainer pipeline
An automated pipeline that researches, scripts, narrates and renders 40 to 60 second true-crime explainers, only about cases a court has closed, such as a conviction or a guilty plea, never an open investigation.
- JSON-driven Remotion compositions render vertical 1080x1920 video.
- Scripts are written from a pinned Wikipedia article and checked claim by claim before rendering.
- Narration is generated with ElevenLabs and timed word by word to the picture.
- Remotion
- TypeScript
- ElevenLabs
- YouTube Data API
shorts-engine
Video pipeline
A self-hosted pipeline that turns long-form video, such as podcasts, interviews and streams, into vertical 9:16 shorts with word-timed captions.
- Transcribes with Whisper, detects the active speaker and frames the shot around their face.
- Cuts between wide and close shots on speaker changes and emphasis, like a hand-edited clip.
- An autopilot finds new uploads from tracked channels and publishes on a fixed daily schedule.
- Python
- faster-whisper
- OpenCV
- FFmpeg