The Products · Key takeaways
1 min readKey takeaways
infrastructure**, not one monolith. Auth, storage, notifications, analytics, and the UI kit are shared; the domain logic is per-product.
public/anonymous respondent flow. Its backend is a JSON "dumb store" — flexible (no migrations for new types) but pushing validation/scoring client-side, which is why analytics is its next gap (~65% complete).
billing is backend-enforced by asking the Payment service — the correct way to gate premium so a client can't spoof it.
editable slug), RSVP/view tracking, and CNAME-based custom domains wired up with per-host ingress, automatic TLS, and a Traefik path-rewrite. It's feature-complete.
browser apps that reuse the deploy pipeline, analytics, and shared game libraries (haptics, save-state) — but have no tenant model**.
(Katalogos billing) and flexibility has a cost (Erevna's dumb store trades easy extensibility for harder analytics).
- The platform is **many independent multi-tenant products on shared
- Erevna = surveys/forms with eight question types and validation, plus a
- Katalogos = QR-ready online menus with variants/modifiers and images. Its
- Kefi = event pages with per-event URLs (
/t/{tenantSlug}/{eventSlug}, - Games & tools (Aurora, Morphe, KeyboardPiano, Quotes) are **standalone
- The recurring architectural lesson: trust boundaries belong on the server