Platform Overview · Key takeaways
1 min readRapid overview
Key takeaways
- One platform, many products. It's a personal "product factory" — surveys (Erevna), menus (Katalogos), event pages (Kefi), browser games, tools, and static pages — all live since 2023 on
dloizides.com. - Microservices over RabbitMQ. .NET services each own one bounded concern, store data in PostgreSQL and files in S3-compatible storage, and stay decoupled by publishing/subscribing to events on RabbitMQ.
- Identity per product. Keycloak provides SSO with a separate realm per product (
questionerfor Erevna,onlinemenufor Katalogos), so users of different products are isolated. - Shared infrastructure, isolated data. Multi-tenancy is pooled: tenants share services and the database, but every tenant row carries a tenant id and queries are auto-filtered.
- Traefik is the front door. It terminates TLS with automatic Let's Encrypt certs, routes by hostname, and applies middleware including custom-domain path rewrites and security headers.
- Self-hosted and reproducible. It runs on self-managed K3s on Hetzner in the
dloizidesnamespace, with digest-pinned images pulled from a private registry over WireGuard. - Designed for reuse. Shared NuGet/NPM packages and the
create-dloizides-appscaffolder are what make one engineer running a whole suite realistic. - AI-assisted. It was largely designed, built, and maintained with Claude Code using multi-agent workflows.