Introduction
NNO is a platform orchestration layer for building and deploying multi-tenant SaaS applications on Cloudflare infrastructure.
Introduction to NNO
NNO (Neutrino) is a platform orchestration layer that provisions Cloudflare infrastructure, manages multi-tenant isolation, and delivers a pluggable feature runtime — so you can build and ship multi-tenant SaaS applications without stitching together infrastructure from scratch. You subscribe to NNO, define your feature set, and NNO handles Workers, D1 databases, R2 storage, KV namespaces, auth, and DNS on your behalf.
Why NNO
Building a multi-tenant SaaS on Cloudflare involves a lot of repeated work: provisioning per-tenant resources, wiring up auth, managing feature flags, keeping DNS sane, and writing the same console shell every time. NNO eliminates that by providing:
- Managed multi-tenancy — each platform gets isolated Cloudflare resources named by convention and tracked in a central registry. You do not manage CF API calls or resource naming yourself.
- Cloudflare-native by default — Workers for backend logic, Pages for frontend, D1 for relational data, R2 for object storage, KV for caching. No third-party infrastructure required.
- Feature SDK and auto-discovery — pluggable React packages (
@neutrino-io/feature-*) are auto-discovered at build time viavirtual:feature-registry. Adding a feature is a package install, not a code change. - Stack-based deployment — group related features into a Stack that shares a single D1, R2, and KV namespace. One activation command provisions everything.
Architecture at a Glance
NNO is organized into four layers:
┌─────────────────────────────────────────────────────┐
│ NNO Core │
│ Gateway · Registry · IAM · Provisioning · Billing │
│ The meta-platform that manages everything below. │
└───────────────────────┬─────────────────────────────┘
│ provisions
┌───────────────────────▼─────────────────────────────┐
│ Your Platform │
│ One platform = one product / client. │
│ Gets its own Workers, D1, R2, KV, and DNS. │
└───────────────────────┬─────────────────────────────┘
│ partitions into
┌───────────────────────▼─────────────────────────────┐
│ Tenants │
│ Logical isolation within a platform — teams, │
│ customers, regions, or business units. │
└───────────────────────┬─────────────────────────────┘
│ runs
┌───────────────────────▼─────────────────────────────┐
│ Console Shell + Feature Packages + Stacks │
│ React shell on CF Pages. Features bundled at │
│ build time. Stacks group features with shared CF │
│ resources. Auth via Better Auth on CF Workers. │
└─────────────────────────────────────────────────────┘Platform — the top-level environment for your product. NNO provisions a default stack automatically at onboarding, which hosts the auth Worker.
Tenant — a logical partition inside your platform. Each tenant gets its own provisioned resource set. Tenants can nest as sub-tenants.
Stacks — named, versioned groups of features that share Cloudflare resources (one D1, one R2, one KV). The preferred way to activate multiple related features together. See Stacks.
Features — pluggable React packages (@neutrino-io/feature-*) that each export a featureManifest. Install the package, set enabled: true in your config, and the Vite plugin auto-discovers it on the next build. No manual registration needed.
Key Concepts
| Concept | What it is |
|---|---|
| Platform | Your top-level NNO environment. One per product. |
| Tenant | Logical isolation within your platform. |
| Stack | A named group of features sharing Cloudflare resources (D1, R2, KV). |
| Feature | A pluggable @neutrino-io/feature-* package with UI and optional backend Worker. |
| Console Shell | The thin React 19 app that statically bundles your activated features and deploys to CF Pages. |
| Default Stack | Auto-created at onboarding. Hosts the auth Worker at auth.svc.default.<platformId>.nno.app. |
Who This Is For
NNO is for developers building multi-tenant SaaS applications who want to ship on Cloudflare without managing the underlying infrastructure directly. You should be comfortable with:
- TypeScript and React
- Cloudflare Workers and Pages (conceptually — NNO manages the CF API calls)
- Node.js package management with pnpm
You do not need to write Cloudflare API clients, manage resource naming, or build your own auth layer — NNO handles all of that.
What You'll Learn in This Section
This Getting Started section walks you through:
- Quick Start — install the CLI, create a project, run it locally, and deploy to Cloudflare in under 10 minutes.
After that, the guides cover:
- Platform Setup — configure package access, environment variables, and connect to the NNO backend
- Feature Development — author a custom feature package with routes, sidebar navigation, and the
featureManifestexport - Stacks — group features and share Cloudflare resources across them
- Authentication — how Better Auth integrates with your platform's auth Worker