@staart/api
v4.0.9
Published
SaaS backend framework with users, payments, APIs, and more
Downloads
62
Readme
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 | |
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.
⭐ Features
🆕 New in v2
- 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
🔐 Security
- 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
💳 SaaS
- 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
👩💻 Developer utilities
- 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
🛠 Usage
- Use this template or fork this repository
- Install dependencies with
npm install
- Add a
.env
file based on config.ts. - Create MariaDB/MySQL tables based on schema.sql
- Add your controllers in the
./src/controllers
directory - Generate your
app.ts
file usingstaart controllers
- Build with
staart build
and deploy withstaart launch
Updating Staart
To update your installation of Staart, run the following:
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.
💻 Docs
- Getting started
- Setting up environment variables
- Creating a controller
- Updating Staart
- Response headers
- Throwing errors
- Authorization
- API key authentication
- Redirects
- Serving static files
🏗️ Built with Staart
🏁 Staart Ecosystem
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 | |
💝 Sponsors
The development of Staart projects is supported by these wonderful companies. Find us on OpenCollective