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.
git clone https://github.com/nuvix-dev/docker.git nuvix
cd nuvix
cp .env.example .env
docker compose up -dOpen http://localhost:3000 and create your first project.
Requirements: Docker + Bun >= 1.3.7
For 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 security@nuvix.in 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 |
