One platform to publish, schedule and answer questions.
Built first for a university school of business: a public site and admin panel for news, training programs and room reservations, with an AI assistant that knows the organization. The same foundation adapts to other institutions.
Core screens
Illustrative · client names, data and content removed
What's under the hood
Headless CMS & API
Payload CMS · REST · GraphQL
Editors manage content, media and settings in an admin panel. The public site reads everything over an API.
Role-based permissions
named permissions · row-level scoping
Capabilities are named once and granted per role. Each user sees only the records they're allowed to, filtered at query time.
Append-only audit log
logins · changes · denials
Who did what and when, with passwords and tokens redacted. No account — administrators included — can edit or delete an entry.
Conflict-safe scheduling
explicit time zones · concurrency-tested
Terms, weeks and recurring series, blackout rules, and overlap checks that hold even when two people book the same slot at once.
AI assistant
streaming · rate limits · usage tracking
Answers stream in as they're written, from a knowledge base editors maintain. Per-user and global limits keep costs predictable.
Dashboards & bilingual UI
D3 · i18n
Charts and maps rendered from bundled data so they work offline, with the whole interface available in English and Chinese.
Architecture
Two apps behind one TLS edge. Only ports 22, 80 and 443 are open; app servers listen on loopback.
Stack
- Frontend
- Next.jsReactTypeScriptTailwind CSSRadix UID3i18next
- Backend
- Payload CMSNode.jsSQLite / libSQLREST & GraphQL
- AI
- OpenAI-compatible LLM APINDJSON streamingPrompt caching
- Operations
- NginxPM2Let's EncryptufwAWSShell deploys