Application collection
This section collects the applications I am the process of building, or ones already in production. They are local-first, run on-premises, and exist to solve real problems in my life. I share the work so it is reproducible and hopefully useful to others.
Why I am doing this
- Privacy and control. I keep my data close and choose how it is used.
- Cost and simplicity. I avoid recurring subscriptions and prefer simple, observable components.
- Learning in public. I document decisions and trade-offs so I can repeat what works.
- Reusability. Each app is small, focused, and built to be maintained over time.
- GitOps for reliability. Operations are driven by version-controlled configuration for easy rollbacks and audits.
- App changes. It really annoys me when app functionality changes, or worse, the application breaks after an update.
Principles
- Local-first by default. Apps run on my own hardware and keep data on-premises.
- Own your data. Databases, backups, and exports are first-class concerns.
- Observable systems. Logs, metrics, and health checks are part of the build, not an afterthought.
- Simple beats clever. Fewer moving parts mean easier recovery when things go wrong.
Applications
School Platform
A homeschool tracking platform for Western Australia with AI-powered learning, Google Calendar integration, and curriculum coverage tracking. Built with Next.js 16, PostgreSQL, and OpenAI. Features AI study unit generation, an interactive Q&A assistant, evidence gallery for moderator meetings, and daily automated backups with Slack notifications.
See: School Platform.
Personal Data Hub
A journaling system for lazy people. Books, shows, health, fitness, and more in a single queryable knowledge base built on Obsidian. Custom scripts, Chrome extensions, and a calendar plugin capture data automatically where possible and make manual capture fast where it cannot.
See: Personal Data Hub.
MCP Task Server
A Model Context Protocol server for task management with multi-agent coordination. Built to solve Cursor's memory limitations with shared context. 43 tools for task management, dependencies, priorities, and role-based coordination with Planner, Worker, and Judge roles.
See: MCP Task Server.
Flow Control
A self-hosted support tool for health and performance that predicts readiness and visualises flow state from real coding signals. Combines Cursor AI usage, GitLab pipelines, Apple Health data, Apple Music listening history, and exercise goals in one place. Features a composite flow score engine, sleep debt tracking, music-flow correlation, AI-powered health insights, Slack alerts, and billing cycle management.
See: Flow Control.
Personal fitness coach
I am building a deeply personal predictive coach that helps me break out of negative stress → fitness → nutrition → weight cycles quicker by providing the right guidance at the right time.
See: Fitness coach.
Personal coaching toolkit (coming soon)
A personal coaching toolkit for session planning, transcripts, and outcomes, designed to run locally with private data by default.
How these pages are organised
Each application follows a similar structure.
- Context and planning. Why the app exists, who it is for, constraints, and assumptions.
- Architecture and ops. Structure of the app, runtime stack, and operational choices.
- Execution and tracking. Progress, decision log, and debug diary.