Case Study - White-label AI training for a regulated profession
A domain-agnostic training platform with embedded AI conversations, enterprise RBAC and review workflows — re-brandable for any organization without touching the core.
- Project
- spectralChat
- Year
- Service
- Platform engineering, AI integration
Overview
A professional-training organization in a regulated French sector needed more than a chat window: structured curricula, enrolment and validation workflows, scientific-director review, and an AI assistant that stays inside the rails of the profession. Off-the-shelf LMS tools couldn't model their hierarchy; generic AI chat couldn't be trusted with it.
We built spectralChat as a white-label platform with a deliberately domain-agnostic core. Learners, sites and areas are abstract concepts in the data model; a display layer maps them to the client's real-world vocabulary. The same core can be re-branded and re-labelled for the next organization without touching the schema.
Access control is the backbone: role-based permissions govern who can author content, who validates it, and who sees what — from individual learners up to organization-wide administrators. AI conversations are embedded into the training flow itself, with rate limiting and guard-rails handled server-side.
What we did
- Product & data-model design
- Next.js on Cloudflare Workers
- Hono + oRPC API
- Drizzle ORM
- Enterprise RBAC (Better-Auth)
- Visual-regression test harness
The hard part was refusing to hard-code the client's world. Because the core stayed domain-agnostic, every feature we shipped for one organization became a feature of the platform.
Engineering notes
The platform runs entirely on Cloudflare's edge. A custom visual-regression harness snapshots every critical screen on every change, which lets a small team refactor aggressively without fear. Auth, rate limiting and billing hooks are first-class parts of the architecture rather than afterthoughts.
spectralChat is our longest-running product codebase and the clearest expression of how we like to build: a strict typed contract between client and server, engineering-discipline docs in the repo, and a release cadence measured in days.