Most apps need the same backend building blocks: auth, a database, file storage, and messaging. The usual answer is 4 different vendors, 4 dashboards, and 4 billing pages before you write a single line of product code.
Nuvix replaces all of that. One backend, one API, one permission model. Fully self-hostable, security-first by design, and built to support AI-powered products from day one.
Multi-tenant auth with user accounts, sessions, teams, and role-based access. Security is not a config option; it's the default.
PostgreSQL under the hood. Three schema modes so you pick the right fit for each use case:
| Schema | Best For | What You Get |
|---|---|---|
| Document | Prototyping, MVPs | NoSQL-style flexibility, no SQL needed |
| Managed | Production apps | Auto-generated CRUD + Row-Level Security policies |
| Unmanaged | Custom logic | Raw SQL, full control, no guardrails |
Mix and match across the same project. All three share one unified API.
Permission-aware file system with S3-compatible drivers or local storage. The same permission rules that govern your database govern your files.
Email, SMS, and push notifications through a single API. No need to wire up SendGrid, Twilio, and Firebase separately.
Nuvix gives AI products what they actually need: secure data layers, granular permissions, session management, and file handling for ML pipelines. Store embeddings, manage context, enforce access rules on every request.
The fastest way to get up and running with Nuvix is through the CLI.
curl -fsSL https://raw.githubusercontent.com/nuvix-dev/cli/main/install.sh | bashnuvix local init
nuvix local upOpen http://localhost:3000 and start building!
Requirements: Docker
git clone https://github.com/nuvix-dev/docker.git nuvix
cd nuvix
cp .env.example .env
docker compose up -dFor full self-hosting instructions, see the Self-Hosting Guide.
bun install
bun run dev # Start dev server
bun run test # Run tests
bun run lint # Lint with Biomenuvix/
├── apps/
│ ├── server # Core API server
│ └── platform # Platform services
├── libs/
│ ├── core # Shared core logic
│ ├── pg-meta # PostgreSQL metadata layer
│ └── utils # Common utilities
├── configs/ # Default configurations
├── docs/ # Documentation source
└── scripts/ # Build & deployment scripts
Every request in Nuvix passes through the same permission pipeline, regardless of whether it touches the database, storage, or messaging.
- Managed schemas auto-generate Row-Level Security policies. You don't write them by hand.
- Project isolation keeps tenant data separated at the database level.
- Self-hosted means your data never leaves your infrastructure.
You don't enable security in Nuvix. It's already on.
- Realtime subscriptions
- Edge functions
- TypeScript SDK (stable)
- Python SDK
- Vector / embeddings support
- Multi-region self-hosting guide
Have a feature in mind? Open an issue or bring it up in Discord.
Contributions of all kinds are welcome: code, docs, bug reports, ideas.
- Read the Contributing Guide
- Browse open issues
- Join the Discord
By submitting a pull request, you agree that Nuvix may use, modify, copy, and redistribute the contribution under terms of its choosing.
Found a bug? Open an issue on GitHub with steps to reproduce.
Found a vulnerability? Please do not open a public issue. Email [email protected] instead. We will work with you to patch it before any public disclosure.
| 📖 Documentation | Guides, API reference, tutorials |
| 🖥️ Console | Admin dashboard (separate repo) |
| 💬 Discord | Community, help, discussion |
| 📢 X / Twitter | Updates and announcements |
