portfolio

Production work & open-source tools

Enterprise WordPress integrations, full-stack platforms, and AI-assisted developer tooling.
Built for real deployment, shipped open source.

Luzzle

Luzzle

Life’s a puzzle. Bring a team. Self-hostable life-task tracker in the Habitica lineage: habits, dailies, todos with streaks and value drift, a shared grocery list, and an append-only team activity feed that fans out across teammates’ browsers via polled TanStack Query with optimistic UI. Server functions everywhere, Drizzle on Postgres 16, Better Auth with hCaptcha and Resend email, invite-code team scoping, shadcn/Tailwind v4 with restrained motion. Shipped as a Docker stack behind Caddy on an Oracle ARM box, CI/CD via GitHub Actions to GHCR.

TypeScriptTanStack StartTanStack QueryDrizzlePostgres 16Better AuthZodshadcn/uiTailwind v4DockerCaddyOracle Cloud
STXTOFR — Swedish roadside facility ETL

STXTOFR

Patron saint of truckers. A middleware ETL pipeline for Swedish roadside infrastructure: pulls rest areas, truck stops, and facility data from a handful of mismatched public sources, normalizes the schemas, geocodes and dedupes, then routes everything through a Baserow human-review layer before shipping versioned JSON DTO bundles over a FastAPI surface. Python workers on a Postgres spine, containerized and scheduled, so the people who actually sleep in their cabs get a single clean dataset instead of seven broken ones.

PythonFastAPIPostgreSQLBaserowGeospatialETLDTO VersioningDocker
Ankode

Ankode

Spaced-repetition drill for software engineering interview prep. React SPA + Hono API with a shared Zod/grading/SRS package across both ends. Static frontend on IBM Cloud Object Storage, API on Cloud Code Engine with GitHub OAuth and HMAC-signed sessions.

ReactHonoTypeScriptZodIBM Cloud
TeamTailor Integrator

TeamTailor Integrator

WordPress plugin that pulls a company's job listings from TeamTailor into their site, kept in sync automatically.

PHPWordPressREST API
HydroRigs

HydroRigs

Terminal monitor for AI tool quotas and cooldowns. Shows which rigs are ready, which are cooling down, and surfaces alerts via Waybar.

PythonTUICLIWaybar
Linea Web

Linea Web

AI-powered Linear issue resolution — runs entirely in the browser. Zero backend.

TypeScriptAI / Gemini
Habsiad

Habsiad

Your Obsidian ⚡ Habitica bridge. Syncs tasks & stats, enriches daily notes, and surfaces streak insights.

TypeScriptObsidianAPI
Linian

Linian

Transforms [TEAM-465] shortcodes into rich, status-aware links inside Obsidian notes.

TypeScriptObsidianLinear
Lyncs

Lyncs

Terminal music sync for DAPs. Side-by-side comparison, FAT32 filename sanitization, and batch transfer with progress.

LuaTUI
blog.dotmavriq
META

blog.dotmavriq

This site. Astro SSG with monospace ASCII art, Pretext editorial text flow, animated cloud backgrounds, and neubrutalist design.

TypeScriptAstro