Back to main

What I'm
Building

Nights-and-weekends software — self-hosted, built for my own family and friends, and headed toward open source. The same engineering standards as the day job, applied to problems small enough to actually finish.

Project 01 · Events In use · open-sourcing *eventually

Party Invite App

Self-hosted invitations and RSVPs, with no corporate platform in the middle.

A web app for running private events end to end. Create a party with a poster, invite guests privately by passcode-protected link — or open registration to let them sign themselves up — then collect RSVPs with adult and child head counts, guest lists, and notes, all managed from an admin console.

Built security-first, because event data is personal: argon2id-hashed passcodes, signed httpOnly sessions, a CSRF token on every mutation, RSVP responses encrypted at rest, login lockout after repeated failures, and a full admin audit log. Role-based admin accounts with granular permissions. Ships as a Docker Compose stack with encrypted backups.

NodeFastifySQLiteTypeScriptAngularMaterialTailwindDocker
  • Private passcode invites & open self-registration
  • RSVP with adult/child counts & guest lists
  • Poster upload — portrait & landscape
  • Granular admin roles & permissions
  • Encrypted-at-rest guest data
  • Email / SMS invite sharing
Project 02 · Household In use · open-sourcing *eventually

Family Status Board

A shared kanban board for the whole household.

A self-hosted task board for family and personal work: shared kanban columns, recurring and scheduled tasks with rotation between family members, per-user accounts and roles, and an installable, mobile-first PWA so it lives on everyone's phone. Points, rewards, approval flows, and streaks turn chores into something the kids actually engage with.

A sibling to the party app, sharing the same conventions — cookie-session plus CSRF auth, encrypted-at-rest PII, in-code forward-only migrations, encrypted SQLite backups, and Gitea CI/CD. Tags, email notifications, and per-user themes round it out. Runs on the Bun runtime end to end.

BunFastifybun:sqliteAngularSignalsMaterialTailwindPWADocker
  • Shared kanban for family & personal tasks
  • Recurring / scheduled tasks with rotation
  • Points, rewards & approval flows
  • Per-user accounts, roles & themes
  • Streaks, tags & email notifications
  • Installable mobile-first PWA
Project 03 · Learning In use · open-sourcing *eventually

Family Music Recaps

Turning weekly lesson notes into real practice material.

Live and in use at home. A single-family app that turns a kid's weekly music-lesson notes into AI-generated practice exercises, complete with real notation, guitar tab, chord diagrams, and audio playback (all via abcjs), across violin, piano, and guitar. Parents administer student profiles and lesson logs; kids log each lesson in their own words and ask for something to practise.

Claude enriches the raw notes into concept tags and kid-friendly memory aids, then writes exercises that build on lesson history instead of repeating it. Music teachers get their own read-mostly accounts by one-time invite link — they see only the students a parent assigned them, and may suggest a rewording rather than edit a child's own words. Anything a child asks that touches pain, posture or instrument setup is routed to a parent instead of answered by a model.

BunFastifybun:sqliteAngularMaterialTailwindabcjsClaude APIDocker
  • Lesson logs in the kid's own words
  • AI exercises with notation, tab & playback
  • Multi-student, multi-instrument profiles
  • Invited teacher accounts, scoped & read-mostly
  • Safety triage routes to a parent, not a model
  • Printable practice packets
Project 04 · Agriculture In UAT · pre-release

Dairy Repro Analytics

Herd reproduction, reconstructed from the raw exports instead of a broken spreadsheet.

Reproduction analytics for a working dairy. It ingests the herd software's raw exports — every dated event, plus the whole-herd inventory going back sixteen years — reconstructs each animal's breeding history from them, and reports heat detection, conception and pregnancy rate over time and across cohorts. It replaces a quarterly workbook whose formulas had drifted: whole rows of #REF!, a quarter of #DIV/0!, and a herd pregnancy rate counting heifer pregnancies against cow-only eligibility.

The arithmetic was never the hard part — the definitions were. Every rate is computed on the 21-day estrus cycle, the actual unit of breeding opportunity, so a month and a quarter answer the same question at different resolutions. Truncated periods are clipped and labelled, recent cycles are marked provisional and refused as a headline, overlapping imports layer rather than double-count, and every figure carries the derivation run and ruleset that produced it. What the data can't support, it says so rather than quietly averaging.

BunFastifybun:sqliteZodAngularSignalsEChartsTabulatorTailwindDocker
  • Every rate on the 21-day cycle basis
  • Event replay from the raw herd exports
  • Data-quality queue, held-back findings explained
  • Cell-by-cell workbook reconciliation
  • Per-animal file: events, services, outcomes
  • Printable & CSV reports, stamped with their basis

These are personal projects, built and self-hosted on my own infrastructure. Open-source releases are planned as they stabilize.