
- Role:
Founder & Full-Stack Engineer
- Period:
06/2025 — 01/2026
- Stack:
Go, PostgreSQL / PostGIS, Flutter (iOS, Android, Web), Next.js, WebSocket, Docker, Hetzner
- URL:
api.after.zone
AFTER — Friends & Events Platform
Founder and sole engineer of AFTER: find what's on near you, make a plan with your people and meet up. A Go backend aggregates events from licence-free sources worldwide, and Flutter clients for iOS, Android and Web add group chat and live location sharing between friends. Built since June 2026, 350+ commits, running on Hetzner.
Highlights
- Multi-source ingestion: Go scrapers for Eventbrite, Songkick, Luma, viralagenda, Goabase, Psytrance Portal and Shotgun, mapping seven source data models into one schema with TTL stale-while-revalidate caching in SQLite or PostgreSQL / PostGIS — 58,000+ events across 3,100+ cities.
- Public API: JSON and GeoJSON endpoints at api.after.zone with city, category, source, date-range and full-text filters, geo queries, user event submission with cover uploads and a CORS-friendly image proxy.
- Real-time layer: WebSocket hub for per-event public rooms, private invite-code groups, presence and live-location sharing that is never persisted — in-memory with a 2-minute staleness sweep and a 3-hour cap; anonymous token identity, no tracking cookies.
- Flutter app (iOS / Android / Web): feed, MapLibre map and groups tabs, filters, event detail, deep-link invite landing pages and an in-app update banner tied to each release.
- Ops & AI tooling: Next.js ops console, live scrape-run dashboards, chat admin, a kepler.gl map of the whole feed, and an MCP server (
scrape_status) so Claude monitors ingestion directly. - Delivery: test-gated pipeline (
go build+go test) producing linux/amd64 Docker images shipped to Hetzner behind nginx, with health-check smoke tests after every deploy.
Stack: Go, SQLite, PostgreSQL / PostGIS, WebSocket, Flutter / Dart, MapLibre, Next.js, kepler.gl, Docker, nginx, Hetzner, MCP.