Adventure: a travel tracker
A digital corkboard map of everywhere I've been, lived, and want to go. Search any city, park, or landmark, drop a pin, and the map fills in.
The main design choice is splitting a place from an experience. Each place appears once on the map, with as many visits attached as you like: Tokyo in 2019, again in 2022, "go back" in 2026. Each visit keeps its own dates, notes, and ratings. Search fills in the coordinates, so you never type them.
Supabase handles Postgres and auth, with row-level security. Maps are MapLibre, place search is Geoapify, and it runs on Cloudflare Workers.
Live app (sign-in required)
DealDesk
In development
Back office for creators who do brand deals. Paste the deal and it tells you what you owe, what they owe, when it's due, and what to clarify before you agree.
The core is structured extraction: a Zod schema and a prompt, checked by a standalone eval harness against a fixture corpus after every prompt or schema change. Supabase handles the data with row-level security, and all AI calls stay server-side. It flags "terms to clarify" and stops short of legal advice.
Waypoint
In development
A strategic IT planning tool for MSPs. RMM shows what exists and PSA shows what work is happening. Waypoint answers what a client should do next, why, what blocks it, what it costs, and when.
The engine turns device data into findings, technology debt, initiatives, dependencies, a sequenced roadmap, and a budget forecast. It's pure TypeScript with no runtime dependencies. A validation suite runs mock datasets and fails if expected findings go missing, if sequencing breaks (a refresh jumping ahead of the cleanup that unblocks it), or if any output loses its explanation.
A Next.js web app over PostgreSQL 17 with row-level security on self-hosted Supabase, behind Envoy. Data comes in through an HMAC-signed ingest API, a collector pulls from GitHub today, and it all runs on Docker Compose with no cloud hosting needed. CI runs type checks, lint, pgTAP database tests, image scanning, and a hardening check.
Pia Package Reporter
A browser extension that reports on Pia automation runs over a date range: totals for success, errors, warnings, cancellations, and unique tickets, a per-package breakdown with average run time, and every run with its ticket number. Exports to CSV.
I built it on my own to measure my own automation. The run counts in the Automation section come from it.
It uses the signed-in browser session, so there are no API keys to manage, and it sends nothing anywhere except the user's own Pia instance. Reports keep running in the background when the popup closes, and it backs off when Pia rate-limits it.
Useful-Skillet
My Palo Alto reference library: architecture guides (NGFW sizing and HA, NGFW in Azure, Prisma Access, Prisma SD-WAN), hardening baselines, a BPA review checklist, PAN-OS upgrade runbooks for standalone and HA pairs, and a list of quirks that aren't obvious until they bite.
Repo on GitHub
Sysadmin scripts
PowerShell and Bash for Windows, Microsoft 365, and endpoint work, many written to run unattended under NinjaOne as SYSTEM. Includes agent deployment for SentinelOne and Tenable, mailbox forwarding and delegation reports, MFA status reports, forced Intune enrollment, .NET vulnerability cleanup, and macOS security posture checks.
Repo on GitHub
DiskScope
In development
A Mac app that maps disk usage as a navigable directory tree.
IPScanner
In development
A desktop network scanner. Scans IP ranges, reports hosts and ports, and exports results to CSV.
Repo on GitHub