Everything here is real and mine. Most of it runs on a Raspberry Pi at home.
One inbox for every channel I have to answer.
Slack, Gmail, ClickUp, GitLab and Signal in one self-hosted dashboard: reply, draft, react or mark done from one place, with triage rules that learn from what I mark important or spam. OAuth through a static relay page, tokens sealed at rest, Web Push to the phone.
Source on GitHub →
Jev model router for Claude Code
in daily use
Cheap turns on cheap models, the big model when it matters.
Per-turn model routing for Claude Code through one OpenRouter key: a local proxy classifies each request, picks the model and logs every decision. Zero-retention routing by design.
- TypeScript
- OpenRouter
- Claude Code
Source on GitHub →
A real-estate watchdog that reads the ad text.
Scrapes four Czech property portals, normalises ads into PostgreSQL and extracts with an LLM what portals don’t categorise — pets allowed, no commission, brick or panel. Groups the same flat across portals, flags scam patterns and e-mails matching ads within minutes. Prepaid watchdogs through Stripe.
Hibernated on AWS since September 2026.
- Bun
- PostgreSQL
- Drizzle
- SES
- Stripe
- hexagonal
An AI guide to the Karlovy Vary film festival.
Crawls the festival programme, enriches films from TMDB, OMDB and ČSFD, embeds them and answers in chat: what to see tonight, what fits between two screenings, how far the venues are from each other. Per-user and global token budgets keep the bill predictable.
Runs during the festival in July; hibernated between editions.
- Bun
- Mastra
- PostgreSQL
- Next.js
- Crawlee
- Langfuse
Registrations for the kids’ board-game club I run.
Sign-up form behind a self-made dice captcha, a capacity that closes the form itself, attendance per lesson, articles, CSV export, nightly backups. Zero-dependency Node 22 with node:sqlite, in Docker behind a Cloudflare tunnel.
- Node 22
- node:sqlite
- Docker
- Cloudflare
Live site (Czech) →
A community centre’s website its editors can run themselves.
Payload CMS and Next.js for a Prague community and cultural centre: events that fall into the archive by date, a Czech admin, drafts and versions, bilingual with Czech fallback, and roles an editor cannot escalate.
- Payload CMS
- Next.js
- SQLite
- Docker
Demo (Czech) →
A Raspberry Pi that holds everything together.
A Signal assistant with local Czech speech-to-text, Gmail and Calendar tooling, a private family app and this site’s siblings — all in Docker behind one Cloudflare tunnel, with nightly restic backups to S3 and a watchdog that only speaks when a backup goes stale. AWS access bounded by IAM permission boundaries, every call audited.
- Raspberry Pi
- Docker
- systemd
- Cloudflare
- restic
- AWS IAM