Guides
Mono-codebase
While developing Backstack, we discovered an unintended yet powerful capability of our session management system — the ability to serve multiple applications from a single codebase, each with its own API key and configuration.
We coined the term "mono-codebase" to describe this unique pattern.
What is a mono-codebase?
Unlike a monorepo or monolithic architecture, a mono-codebase leverages dynamic session management to run distinct applications that share the same core code but operate independently. This approach dramatically reduces development overhead while maintaining separation between applications.
How it works
The concept is elegantly simple: your codebase is organized into feature blocks, and Backstack's dynamic session management handles everything else. When a request comes in, the session provides a collection of prescribed features drawn from multiple configurations — including application settings, domain rules, and versioning schemas. Your codebase remains clean and focused, only needing to check the session.access
node to determine which feature blocks should be available.
The mono-codebase pattern lets developers focus purely on building features. There's no need to maintain multiple versions of similar functionality or worry about which features belong to which application — the session management layer handles all of that automatically.
Application branding
TODO: Explain how to handle different branding and navigation.