THE PROJECTS *** SHIPPED *** IN PROGRESS *** ABANDONED (THE HONEST ONE) *** EVERYTHING HERE WAS BUILT BY ONE PERSON AT AN UNREASONABLE HOUR *** NOTHING HERE IS FINISHED *** HOSTED ON MY OWN FORGEJO *** THE PROJECTS *** 

THE PROJECTS

everything here was built by one person at an unreasonable hour

IN BETA (WORKS, MOSTLY)

JobsBoard BETA

A private, multi-user job aggregation and ATS-friendly resume platform, built for personal and family use. Aggregates listings into one place, manages resumes in a format that will not get mangled by a parser. Self-hosted with Docker Compose and PostgreSQL; outbound mail routes through Proton Mail Bridge so nothing leaves the house.

STACK: TypeScript, React, Python, PostgreSQL, Docker Compose, Bash

source  |  32 commits — in beta, started 2026-09

Cruise Price Tracker SHIPPED

Tracks Royal Caribbean add-on prices — beverage, dining, internet, excursions, spa, the Key — for a sailing you have already booked, charts the history, and tells you when to actually pull the trigger. Written because “watch this price forever” is not a feature any booking site offers.

The second attempt. The first one, RCT, is a scaffold I abandoned two weeks earlier: same scraper, same problem, none of the analysis. This one has a buy-timing predictor, 303 tests, and a Discord bot that will argue with you about when to book.

STACK: Python, FastAPI, React, Recharts, SQLite, Discord bot

3,291 lines of Python · 303 tests — last touched 2026-09-28

Sanctum SHIPPED

A contribution to an existing open-source Electron chat client. Twenty-two commits covering the Avia→Sanctum rebrand end to end, a Gitea-backed auto-updater pointed at my own Forgejo instance, the whole CI workflow moved onto a self-hosted runner, tray icon replacement, and a titlebar text overlap fix that had been open for a while.

Not a project I started. A codebase I was trusted with and made work.

STACK: TypeScript, Electron, Forgejo, Gitea releases

source  |  22 commits — last touched 2026-05

F##KRPG — Fabric 1.21.1 RPG Modpack SHIPPED

A Packwiz mirror of a working ModrinthApp profile: 172 mods across a client_pack and server_pack, kept in strict parity (“mod-for-mod and config-for-config”), so the client and the dedicated server cannot drift apart. Then tuned every optimization config for one specific VPS and wrote a ship script for it.

STACK: Python (Packwiz tooling), TOML, shell

source  |  11 commits — last touched 2026-08

SCICRAFT — The Dark Photon Protocol SHIPPED

A Minecraft modpack built around a single sustained idea, with a 284-file TOML config surface and docs. Most of the work is tuning things nobody will notice until they are missing, which is the entire job.

STACK: TOML (mod configs), JavaScript tooling, shell

source  |  last touched 2026-08

IN PROGRESS WIP!!

Custom Server Mods WIP

Small server-side modifications for the modpack, mostly deployment scripts and config patches. It does about 70% of what it promises and the remaining 30% is the part that is hard, which is why it is still 70%.

STACK: shell, YAML

source  |  last touched 2026-08

ABANDONED (THE HONEST ONE)

these are not failures. these are things that taught me what I did not want to build. I keep them listed so I remember not to build them again.

RCT ABANDONED

The first Royal Caribbean tracker. Same scraper, same problem, none of the analysis — and its own README said “Phase 0, scaffold.” Two weeks later I threw it away and rewrote it properly. It still had sixty tests, which is the part I cannot defend.

21 commits · 60 tests · superseded by Cruise Price Tracker

A Duplicate Clone Of My Own Chat Client ABANDONED

I cloned the same Electron chat app twice, under two directory names, pointing at the same remote, and then developed the rebrand in one of them for four months while the other sat there at an older version. The working copy is on the projects list. This one is a scar.

2 clones · 1 remote · 4 months of confusion

The Blog ABANDONED

I have started this four times. The posts exist in drafts. I keep writing documentation instead, which is the same impulse with better odds of being read.

4 drafts, 0 published, 1 very tired person

A Discord Bot For The Server ABANDONED

Written, worked, unused within nine days. The people it was for had all stopped asking. I have since written several MCP servers, which is the same mistake at a larger scale.

last touched long enough ago that the token expired

10 projects listed. 4 shipped, 1 in beta, 1 in progress, 4 abandoned. The maths has never balanced and I have stopped correcting it.

FIND ME ON MY FORGEJO