Multi-tenant SaaS frontend for residents and community admins.
| Repo | halort-platform-web |
| Stack | Next.js 16 · React 19 · TanStack Query · Eden Treaty · Zustand · RHF + Zod · @halort/web |
| Local | http://localhost:3001 |
| Production | https://app.halort.com · {slug}.halort.com |
Architecture rule
Zero business logic in the UI — all domain operations go through the platform API via Eden Treaty. UI packages come from the design system.
Route groups
| Group | Examples |
|---|---|
(public) | /, /berita, /agenda, /campaign, /kontak |
(auth) | /login, /register, /forgot-password |
(resident) | /dashboard, /iuran, /surat, /kampanye, … |
(admin) | /admin/* |
| Pasar | /pasar, /preloved, /jualan, /jasa, /pasar/iklan |
See Concepts/Roles and Portals · Concepts/Pasar GP2 · Auth · Multi-tenancy.
Tenancy
Host-based tenant + X-Halort-Tenant-Slug. Local fallback: NEXT_PUBLIC_TENANT_SLUG. Requires a running API.
Deploy
GHCR → Argo CD. Wildcard Ingress for tenants; reserved hosts (docs, design, …) are separate Ingress objects.
Features & testing
- Features/Web Features · Features/Feature Map
- Testing/Web Admin Checklist · Testing/Testing Mechanism