Skip to content
This repository has been archived by the owner on Apr 19, 2023. It is now read-only.
/ api Public archive

🏁🛠️ SaaS backend & API framework based on@nestjs

License

Notifications You must be signed in to change notification settings

staart/api

Repository files navigation

Staart API

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 Node CISnyk Vulnerabilities for GitHub RepoDependenciesDev dependencies
PRs Pull Request LabelerPR Generator CIMerge PRs
Community ContributorsGitHubType definitionsnpm package versionsemantic-release

Staart API is build to work withStaart UI,the frontend PWA starter for SaaS startups.

⚠️v3 BETA WARNING:Themasterbranch 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

  1. Use this template or fork this repository
  2. Install dependencies withnpm install
  3. Add a.envfile based onconfig.ts.
  4. Create MariaDB/MySQL tables based onschema.sql
  5. Add your controllers in the./src/controllersdirectory
  6. Generate yourapp.tsfile usingstaart controllers
  7. Build withstaart buildand 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 fromstaart/apithe first time since the histories wouldn't match. You can use the flag--allow-unrelated-historiesin this case.

💻 Docs

View docs site →

View TypeDoc →

View API demo →

View frontend demo →

🏗️ Built with Staart

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 Build statusDocsnpm package version
🌐 Staart UI Frontend Vue.js Progressive Web App Build statusDocsnpm package version
📑 Staart Site Static site generator for docs/helpdesk Build statusDocsnpm package version
📱 Staart Native React Native app for Android and iOS Build statusDocsnpm package version
🎨 Staart.css Sass/CSS framework and utilities Build statusDocsnpm package version
📦 Staart Packages Helper functions and utility packages Build statusCustom badge

💝 Sponsors

The development of Staart projects is supported by these wonderful companies.Find us on OpenCollective


Oswald Labs

O15Y

Speakup

Netlify

Koj

📄 License