PerformanceFrontend
The lesson editor is where an instructor writes a lesson: a rich text editor for the body, a place for a video link, file attachments, and a preview showing what a student will see. Instructors spend hours in it. It is, more than anything else we ship, the thing our customers actually work in. And for a few months, it…
SecurityMulti-tenancyArchitecture
We found the same hole twice, in two systems written a year and a half apart by people solving unrelated problems. Neither was a subtle cryptographic mistake. Both were the same se…
DocumentationMulti-tenancyEdge
This site is served at two addresses: Same words, same pages, same build inputs. Only the branding differs — and, less obviously, the path everything is mounted at.
EdgeFrontend
A bulk-enrolment dialog stopped opening. No error, no spinner, nothing — the button simply did not respond. Everything around it worked. It worked in development. It worked against…
ArchitectureMulti-tenancy
An organisation's address serves three separate applications: They are three builds, from three directories, with three bundles. They share a domain, a session and a design system,…
FrontendArchitecture
A learner scored 120 out of 300 on a project. The admin console showed 300%. The instructor console showed 0%. The student's own course card showed 12000%. Nobody had written a bug…
EdgeMulti-tenancyArchitecture
Every organisation on the platform gets its own address and its own branding. The obvious way to build that is to fetch the branding when the app starts. We did, and it was wrong i…