Projects(side quests with varying completion rates)

A collection of personal projects, mostly built on evenings and weekends. There's an observable Cloudflare addiction running through most of them. All source code is available on GitHub.

After being out of the React world for a while, I wanted a small real project to shake the rust off — that was Wordz, a Wordle clone (source on GitHub).

🔧

tools I keep reaching for

A collection of developer utilities I use regularly — JSON formatter, SQL formatter, Base64 encoder, GUID generator, case converter, hex color picker, image generator, markdown editor, and an Azure Service Bus receiver. Simple, fast, and just a little playful.

React Router v7TypeScriptTailwind CSS v4ViteCloudflare Workers
🎯

mock HTTP responses, instantly

A lightweight API mocking service for testing error handling and timeout logic. Every HTTP status from 100-599 returns instantly, and you can simulate delays up to 30 seconds. No setup, no config. Append any extra path or query string — the response stays the same.

React Router v7TypeScriptTailwind CSS v4ViteCloudflare Workers
📰

you're looking at it

This blog. A statically generated site built with React Router v7 and then stripped of all client-side JavaScript at build time. The result is a fast, accessible, zero-JS site that still gets built with React. Posts are authored in Markdown with syntax highlighting via Highlight.js.

React Router v7TypeScriptTailwind CSS v4ViteCloudflare PagesZero JS
🟩

Wordz

Live

a Wordle-style daily word game

Six guesses, colored feedback, on-screen keyboard — the usual Wordle-shaped deal. I built it as a hands-on way to get back into React after time away, before reaching for bigger stacks again.

ReactTypeScriptCreate React App
🏓

wildcard localhost for local development

A public wildcard DNS zone where every subdomain of boingfwip.com resolves to 127.0.0.1. Use myapp.boingfwip.com or api.boingfwip.com during dev when you need a real hostname — cookie scoping, OAuth redirects that reject localhost, reverse proxies that route by host — without editing hosts files every time.

HTMLCSSJavaScript
💸

satire, not a summons

A spoof website for a fictional debt collection agency — tongue firmly in cheek. I registered the domain almost fifteen years ago; the stars finally aligned to ship the real thing. Built with a lot of help from Cursor.

ViteTypeScriptTailwind CSS v4Cloudflare Pages

In Development(not ready yet, use at your own risk)

These are actively being worked on but aren't ready for general use. They exist, they mostly work, but they might also eat your data.

🧩

Jigsaw

In Development

self-hosted hosting without the licence tax

A self-hosted web hosting control panel built with React Router 7. Create and manage sites from the browser — each one runs in isolated Docker containers with its own Nginx + PHP-FPM stack and optional MariaDB. Traefik handles automatic Let's Encrypt certificates; Keycloak covers login, MFA, and roles. Admins get server metrics and Docker tooling; optional per-site SFTP is one click away.

React Router v7TypeScriptTailwind CSS v4Node.js 22PostgreSQLDrizzle ORMDockerTraefikKeycloak

WearAmp

In Development

Plex on your wrist

An open-source Wear OS app that connects to your self-hosted Plex media server and lets you browse and play your music library straight from your watch. PIN-based Plex authentication, phone-free streaming over WiFi or mobile data, and playback controls from a tiny screen. Currently in internal testing — beta testing is next, and I'll need 12 brave souls to help.

KotlinWear OSPlex APIGradleGitHub Actions
🔗

VeryShort

In Development

because long URLs are soooo last season

A URL shortener with customisable short links and Auth0 authentication. Currently being rewritten — the original was a Ruby app, then a TypeScript Cloudflare Worker, and now it's a .NET Blazor app with Entity Framework and MySQL. Third time's the charm, hopefully.

.NET 9BlazorC#Entity FrameworkMySQLTailwind CSS v4Auth0Docker
📊

Routinee

In Development

track anything that matters

A fully customisable routine and habit tracker with flexible metrics (numbers, text, checkboxes, multiple choice), interactive analytics, and calendar views. Built on Cloudflare Workers with D1 for the database and Auth0 for authentication.

React Router v7TypeScriptTailwind CSS v4ViteCloudflare WorkersCloudflare D1Drizzle ORMAuth0