The largest release so far, and three separate stories: where a workspace lives, how we publish, and what a learning path looks like when you can see its shape.
Every workspace gets its own host
Tenancy is no longer a setting inside one site: it is resolved from the host the request arrived on, so an organization's workspace lives at its own address. A signed-in person moving between tenants is handed across rather than asked to sign in again, organizations can claim a subdomain themselves, and a platform review queue sits behind the claim.
A publication, not a blog page
The platform got an editorial blog and an authoring workspace to feed it: bilingual drafts with autosave, quality scoring against a target shape, an SEO card with a search preview, cover upload, and a copilot that drafts, translates and rewrites in place. The public side is the Journal, with its own editorial layout, filters and search.
A path you can see the shape of
A learning path used to be a list. The learner canvas draws it as the graph it already was — concepts as nodes, prerequisites as edges — and makes it workable: notes and bookmarks per node, actions to study or expand, and an explanation that streams in beside the node it belongs to.
One admin list, everywhere
Every admin list had grown its own rail, its own filter row and its own table. They now share one, so a screen you have never opened behaves like the one you know — and content scope filtering, the redesigned assessment and certificate surfaces, and a command palette that lists every reachable admin page all ride on top of it.
Also in this release
Added
- Tenancy resolves from the request host, and a signed-in person is handed between tenants instead of being asked to sign in again.
- A subdomain claim flow for organizations, with a platform review queue behind it.
- The admin blog workspace and the public journal: bilingual drafts, autosave, quality scoring, SEO, covers, and an authoring copilot.
- The learner path canvas — the concepts of a path as a graph, with edges, notes, bookmarks, node actions, and streamed explanations.
- The command palette now lists every reachable admin page, so navigation stops depending on knowing the sidebar.
- Content scope filtering across the admin, and a redesigned assessment and certificate surface.
- A sign-out route that revokes the session rather than clearing one cookie, and a sign-out that covers every host.
Changed
- Every admin list now sits on one shared rail, filter row, and table, so the surfaces stop each inventing their own.
- The access tabs moved into the sidebar and the tab bar is gone.
- Authorization compares the role type, never its display name — a renamed role cannot change what it can reach.
- The API throttles per person, using a signed forwarded viewer address.
Fixed
- The locale cookie is scoped to the base domain, so a language choice survives the hop onto a tenant host.
- An invitee lands in the workspace they were invited to, and a signed-in caller is handed to the workspace instead of dropped.
- The All filter on the review queue means every status, and the admin console is gated on role type as well as ability.
- Untitled routes no longer leak the scaffold page title.
One email when we publish. Research, product decisions, and what teams report back.