Project structure
api/ Next.js API — thin routes, Drizzle ORM, JWT auth
src/
components/
content/ Generated lessons, registry, catalog map
db/ Drizzle schema and client
lib/
app/ Expo app — React Native 0.81 / React 19
config/ Four config/*.ts files — the single rebrand surface
content/ Raw course material you drop in, per course
docs/ Reference docs (best practices, content pipeline, project map)
config/ is intentionally small and separate from both api/ and app/:
app.config.ts, course.config.ts, design.config.ts, and
entitlements.config.ts are the only files you should need to touch to
rebrand or reconfigure the product. See
Configuration and rebranding.
Generated course content lives under api/src/content/ — lesson modules,
a registry.ts of learning units, and a client-side content map. Never
hand-edit generated output without also updating the source in content/,
or mark the lesson as hand-authored.