Skip to content

Developers

ulams is a headless LMS: a Laravel 13 API built from vendored packages, two small Node services (H5P and PDF), an Astro reference frontend with a framework-free SDK and UI catalogue, a React admin panel and a legacy React learner app, all in one Yarn and Turborepo monorepo. Start with the architecture, then set up the stack.

Non-negotiables

  • LMS entities are changed through domain services, never by writing tables directly.
  • Every new endpoint gets a tenant isolation test; learner-facing UI meets WCAG 2.2 AA.
  • Uploaded content is untrusted input; third-party package code runs only on the content origin.
  • H5P stays in its isolated GPL service; no @lumieducation/* imports in MIT code.
  • Do not use or depend on escolalms/recommender.
  • Existing tests and linters stay green; H5P and SCORM behaviour does not change by accident.

Generated reference pages (packages, permissions, settings, environment variables, endpoints, events, artisan commands, scheduled jobs, UI catalogue) are rebuilt from the repository on every docs build. Decisions are in Decisions; contributing rules in Contributing.