Platform Overview · Key takeaways

1 min read
Foundational8 min read
Rapid 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 (questioner for Erevna, onlinemenu for 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 dloizides namespace, with digest-pinned images pulled from a private registry over WireGuard.
  • Designed for reuse. Shared NuGet/NPM packages and the create-dloizides-app scaffolder 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.

See also