josh.bot
Go API backed by DynamoDB, deployed to Lambda. Powers the dynamic data across most of my sites.
Projects I've worked on, technologies I enjoy using and the things I build and maintain.
Go API backed by DynamoDB, deployed to Lambda. Powers the dynamic data across most of my sites.
Spec-driven Kubernetes platform built phase by phase by a builder agent, with GitOps via Argo CD and pinned component versions.
Local-first usage and cost dashboard for LLM coding agents. Parses the logs agents already write to disk. No server, no telemetry.
Persistent command executor on Erlang/OTP. PostgreSQL stores requests, attempts, and output; approved commands run in restricted Docker containers.
Doom-style engine in Rust targeting GZDoom mod compatibility. Currently loads WAD and PK3 archives and parses Doom, Hexen, and UDMF maps.
TrackMania Forever replay analysis suite. Tick-exact input piano roll, linked telemetry graphs, trajectory maps, sector reports, and a 3D replay viewer sharing one playback clock.
Kubernetes platform for my self-hosted apps and services, managed with Helm and Terraform. An ongoing work in progress.
Shell / Kubernetes / Helm / Terraform
Self-hosted media system running entirely in Docker.
Shell / Docker
Rust CLI tool for fast ICMP ping sweeps with concurrency and reporting features.
Rust
Personal blog written by my AI agent, k8-one.
Astro / Cloudflare Pages
Context layer for agent systems. Gives agents a durable, governed place to work on business objects instead of leaving conclusions in chat logs.
Python / MCP / AI
Six isolated Hermes Agent profiles from one container image, each with its own state, identity, resource limits, and network isolation.
Docker / AI
Pi extension that pairs an implementation model with Claude Code as an adversarial reviewer and a third model choosing the review focus.
TypeScript / AI
Knowledge-maintenance system for Obsidian notes: preserve originals, flag stale facts, review corrections, and measure retrieval accuracy.
Python / Obsidian API / AI
Code mapping tool with style consistency analysis and diff-aware code review.
Python / AI
Documents a repository using a local LLM. The precursor to cartograph.
Python
EPUB analysis pipeline with LLM-powered annotations. Three-column web reader.
Python / Flask / AI
FastAPI application for Obsidian vault analysis. Auto-triage, note clustering, LLM integration.
Python / FastAPI
Minimal LLM agent runner written in Go.
Go / AI
Textual TUI that generates ideas as Mermaid diagrams.
Python / AI
Browser-based TrackMania replay viewer. Parses GBX replay files and renders the run in 3D.
TypeScript / Three.js / Vite
Local TAS investigation prototype for TrackMania Nations Forever. An AngelScript plugin observes the game while TMInterface plays the inputs.
AngelScript / TMInterface
Solo vampire TTRPG webapp. 19 TypeScript engine modules, 886 tests, optional LLM narration.
TypeScript / React / OpenRouter
Generators for the solo tabletop RPG Elegy.
TypeScript
Pass-the-device bluffing game built on the 1996 Grim Fandango puzzle document. A single HTML file.
Javascript / CSS
Brick breaker game built with Phaser.
Javascript / Phaser
Wordle clone written in Python.
Python
Full-stack weightlifting tracker. Strong CSV import, exercise library, strength standards, AI insights.
Go / SvelteKit / SwiftUI / PostgreSQL / TypeScript
Dashboard for Strong app exports: progression, estimated 1RMs, PRs, volume, and consistency.
TypeScript / React / NextJS / Vite
Schema-driven desktop collection manager. Define any collection type (coins, books, stamps) as a JSON schema, no code changes needed.
Go / Vue / Wails / SQLite
Native CBR, CBZ, PDF, and DjVu comic and book reader with a content-addressed managed library.
Rust / egui
Photo parsing tool in Go and TypeScript, built as a Spec Kit experiment.
Go / Javascript / Speckit
CLI that identifies PDF, EPUB, MOBI, and DjVu files and builds a safe move plan into a Library of Congress Classification hierarchy.
Python
Media catalog for movies, books, comics, and magazines. TMDB integration for automated metadata.
Python / SQLAlchemy / PostgreSQL
Sorts ~/Downloads into category folders by file extension, with backups and an ignore file.
Python
Single-page calendar backed by DynamoDB.
Javascript / CSS / Cloudflare Pages
Client-side timeline tracking the increasingly disparate lore of the Alien franchise.
Javascript / CSS / Cloudflare Pages
Habit tracker with a 90s-inspired theme.
TypeScript
macOS app and desktop widget that shows a daily Stoic quote.
Swift
Metronome app for dance practice. One of my first Swift projects.
Swift
Ceefax teletext clone, built for fun.
Python
Obsidian plugin that stamps notes with a UUID and timestamp.
TypeScript / Obsidian API
An earlier version of this blog, built in Astro.
Astro
The original version of this blog, in Next.js, before the move to Astro.
Javascript / NextJS