Projects

Things I've built and kept building.

A selection of work that's either shipped to production or lives in the open. Most of it sits at the boundary between a system and the people who have to operate it.

K8s GitOps Monorepo

Coming Soon

GitOps monorepo structure suitable for managing production (DOKS) and homelab (k0s) deployments with Flux CD, SOPS, K3D + Zod dev loop, an in-cluster builder for the GitHub adverse and a type-safe, LSP friendly TypeScript manifest generator with a CLI and TUI.

KubernetesFluxOpenTofuTypeScript

Personal Website

This site. Astro + SolidJS with a vanilla-extract design system, editorial typography, and Markdown content collections. Zero client-side JS except a theme toggle.

AstroSolidJSvanilla-extractTypeScript

Chalsedony

Active

Qt desktop note-taking application with Joplin-compatible storage, full-text search, keyboard-centric navigation, and live Markdown preview. Installable as a standalone tool via uv.

PythonQtSQLiteMarkdown

Lilium

Coming Soon

A knowledge management platform in TypeScript and solid-js, currently under development and refactor. The spiritual successor to Chalsedony.

TypeScript

Image Upsampler

A CUDA image upscaler CLI. It upsamples an image to a target width (default 3840, i.e. 4K width), preserving aspect ratio. The default backend is AI super-resolution with Real-ESRGAN via spandrel with a GPU bicupic fallback. This is useful for draft CMS content followed by gm convert into webp.

PythonMLAItorch

Cadmus

Archived

A Shell toolkit for knowledge-management workflows. Cut my teeth on shell scripting to wire up TMSU, Recoll, Pandoc, and ripgrep. Keyboard-centric navigation, tag-based organisation, and full-text search across a plain-text vault. Wasn't half bad for pure bash, published on AUR and the repo even 170+ stars.

BashRecollTMSUPandoc

AI Tools

Python CLI for local LLM workflows via Ollama: conversational chat, retrieval-augmented generation, semantic search, and embedding-space visualisation over a personal note corpus.

PythonOllamaFAISSRAG

QR vCard Generator

Cross-platform desktop tool for generating business-contact QR codes. Built with Rust and the egui immediate-mode GUI framework; ships as a single static binary.

Rustegui

Pi Coding Config

Coming Soon

Terminal AI coding config with tools and mcp structured code navigation, JSX structured decoding via Babel, type-checking, and architecture analysis. Built on a Typescript API and CodeGraph index with PageRank-based error triage.

TypeScriptBunSolidJS

Solid Component Library

Coming Soon

Unstyled, SolidJS primitives to make it easier to pick up and go. Storybook with styled variants adapting a common Vanilla Extract design contract, test coverage and components including: Virtualized Data Tables, Tree, Accordion, Calendar, Dialog, DataTable, Carousel, and more.

SolidJSTypeScriptvanilla-extractVitest