Skip to content
← All help

Operator

Keeping courses & content current

Full runbook: OPERATING.md in the repo. The essentials:

The golden rule

Code alone doesn't change what learners see, courses render from the database. After you change a course, migrate (if the schema changed) then re-run its seed:

pnpm db:migrate:prod
pnpm seed:<the affected seed>

Which seed owns what

  • seed:courses, civics (incl. all state-civics), the AI ladders, Hoodoo, Ed.L.D., cyber, and most authored courses.
  • seed:languages, Spanish / French / Portuguese / Italian.
  • seed:langchain, the 3 LangGraph courses.
  • seed:health, NASM / ECS / Read-Your-Body. seed:speedway, ElementaryMBA.
  • seed:faa, FAA Part 107. seed:bvc:real, Better Vice Club. seed:map, the maps.

Every seed is idempotent (upserts by slug), so re-running is always safe. On a fresh database, run seed:tenants first, then the content seeds.

Editing without a seed

Lesson text, glossary, sources, and quick-recall prompts can be edited in-app on the Curriculum tab at /teach/<courseId>, those save straight to the database, no seed needed.

Learner reports

pnpm reports:list (or /admin/reports) shows what learners filed via "Report a problem".