SaaS backend framework with users, payments, APIs, and more

Staart API is a Node.js backend starter for SaaS startups written in TypeScript. It has all the features you need to build a SaaS product, like user management and authentication, billing, organizations, GDPR tools, API keys, rate limiting, superadmin impersonation, and more.
| | Status |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Build |     |
| PRs |    |
| Community |   !Type definitions   |
Staart API is build to work with Staart UI, the frontend PWA starter for SaaS startups.
⚠️ v3 BETA WARNING: The master branch and all 3.x releases are currently in beta. For production, use v1.x instead.
- Casbin-powered permission management
- JWT-powered single-use coupon codes
- Redis-powered queues for outbound emails and logs
- Cloud agnostic, no longer specific to AWS
- Staart scripts for building and deploying
- Async JSON response and smart controller injection
- JWT-powered authentication and user management
- TOTP-powered two-factor authentication (2FA)
- OAuth2 login with third-party accounts
- Location-based login verification
- Security event logging and history
- Stripe-powered recurring billing
- Teams with managed user permissions
- CRUD invoices, methods, transactions, etc.
- Rich HTML transactional emails
- GDPR-compliant data export and delete
- API gateway with API keys and rate limiting
- Domain verification with auto-approve members
- OvernightJS-powered decorators and class syntax
- Injection-proof helpers for querying databases
- Data pagination and CRUD utilities for all tables
- Authorization helpers
- Caching and invalidation for common queries
- User impersonation for super-admin
- Easy redirect rules in YAML
- ElasticSearch-powered server and event logs
1. Use this template or fork this repository
1. Install dependencies with npm install
1. Add a .env file based on config.ts.
1. Create MariaDB/MySQL tables based on schema.sql
1. Add your controllers in the ./src/controllers directory
1. Generate your app.ts file using staart controllers
1. Build with staart build and deploy with staart launch
To update your installation of Staart, run the following:
``bash`
staart update api
If you've used the "Use this template" option on GitHub, you might have to force pull from staart/api the first time since the histories wouldn't match. You can use the flag --allow-unrelated-histories` in this case.
- Getting started
- Setting up environment variables
- Creating a controller
- Updating Staart
- Response headers
- Throwing errors
- Authorization
- API key authentication
- Redirects
- Serving static files
- Oswald Labs Platform
- Speakup Developer
- Add your Staart-based project
The Staart ecosystem consists of open-source projects to build your SaaS startup, written in TypeScript.
| Package | | |
| -------------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 🛠️ Staart API | Node.js backend with RESTful APIs |    |
| 🌐 Staart UI | Frontend Vue.js Progressive Web App |    |
| 📑 Staart Site | Static site generator for docs/helpdesk |    |
| 📱 Staart Native | React Native app for Android and iOS |    |
| 🎨 Staart.css | Sass/CSS framework and utilities |    |
| 📦 Staart Packages | Helper functions and utility packages |   |
The development of Staart projects is supported by these wonderful companies. Find us on OpenCollective
Oswald Labs | O15Y | Speakup | Netlify | Koj |
- Code: MIT
- Logo and assets: CC BY 4.0
- GeoLite2: CC BY 4.0
- GeoNames: CC BY 3.0