SERVER ARCHITECTURE FOR THE ANGULAR ERA
Give your server structure.
Strata turns controllers and routes into clear, declarative layers—without taking ownership of the H3 runtime you already trust.
A thinner layer, a clearer boundary.
Built for the stack you already use
INTENT, NOT INDIRECTION
Just enough framework.
Strata is deliberately narrow: a common language for your server, while the runtime, routing model and escape hatches remain familiar.
Describe routes alongside the code that owns them. Metadata stays inspectable through a small public API.
No replacement server, no hidden transport. Register directly on H3—or on Nitro's router in Analog.
Server controllers live under src/server, keeping implementation details outside the client graph.
THE WHOLE IDEA IN ONE FILE
Recognizable from the first route.
import { Controller, Get } from "@strata/core";
@Controller("/users")
export class UsersController {
@Get()
findAll() {
return [{ id: "1", name: "Ada" }];
}
}Controllers are ordinary classes. Decorators create portable metadata; they don't obscure your code with a second application model.
02Attach to a runtime when ready.
Bring this class to H3 directly, or use the Analog adapter from a Nitro plugin.
See the Analog integrationANALOG, WITHOUT A DETOUR
Native to the Nitro seam.
The Analog adapter registers controllers where Nitro expects them: in a server plugin, on the router it already owns.
import { registerControllers } from "@strata/analog";
import { defineNitroPlugin } from "nitropack/runtime";
import { UsersController } from "../strata/users.controller";
export default defineNitroPlugin((nitroApp) => {
registerControllers(nitroApp.router, [UsersController]);
});CLEAR LAYERS, CLEAR OWNERSHIP
Strata never replaces your server.
It reads controller metadata and registers routes on the instance you pass in. Native routes keep working. Your framework continues to own the lifecycle.
- H3 remains the HTTP runtime
- Nitro remains the Analog integration point
- Your direct routes remain untouched
EARLY, OPEN, AND DELIBERATE
Build the next layer with us.
Strata is experimental today. The design work is public, the boundaries are explicit, and contributions are welcome.