Four frontends, one address
An organisation's address serves three separate applications:
yourorg.rukialabs.com/ learner
yourorg.rukialabs.com/instructor authoring and grading
yourorg.rukialabs.com/admin administration
They are three builds, from three directories, with three bundles. They share a domain, a session and a design system, and a person moving between them does not sign in again.
Why not one application
The three audiences barely overlap. A learner never opens the grading queue; an administrator rarely takes a course. Built as one application, everyone downloads all three — and the admin console, the heaviest of them, is the one the fewest people open.
Why not three domains
Because of the session. Three domains means the sign-in state has to be shared across origins, and every mechanism for doing that is either a third-party cookie — increasingly not a mechanism at all — or a redirect dance that is visible to the user and fragile in exactly the situations where it matters.
One origin means one cookie jar. The session problem disappears rather than being solved.