api

by staart

staart / api

πŸπŸ› οΈ SaaS backend framework with users, payments, APIs, and more

280 Stars 51 Forks Last release: 3 months ago (v2.21.0) MIT License 3.5K Commits 31 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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 | GitHub Actions Travis CI Circle CI Azure Pipelines | | Dependencies | Dependencies Dev dependencies Vulnerabilities | | Community | Contributors GitHub Type definitions npm package version semantic-release |

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

⚠️ v2 BETA WARNING: The

master
branch and all 2.x releases are currently in beta. For production, use v1.x instead.

⭐ Features

πŸ†• New in beta

  • 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 with
    npm install
  3. Add a
    .env
    file based on config.ts.
  4. Create MariaDB/MySQL tables based on schema.sql
  5. Add your controllers in the
    ./src/controllers
    directory
  6. Generate your
    app.ts
    file using
    staart controllers
  7. Build with
    staart build
    and deploy with
    staart 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

View docs site β†’

View TypeDoc β†’

View API demo β†’

View frontend demo β†’

πŸ‘₯ Contributors

Thanks goes to these wonderful people (emoji key):

Anand Chowdhary
Anand Chowdhary

πŸ’» πŸ“– 🎨
reallinfo
reallinfo

🎨
Cool
Cool

πŸ› πŸ€”
EK
EK

πŸ› πŸ’»
mattp95
mattp95

πŸ› πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

πŸ—οΈ 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 | Build status Docs npm package version | | 🌐 Staart UI | Frontend Vue.js Progressive Web App | Build status Docs npm package version | | πŸ“‘ Staart Site | Static site generator for docs/helpdesk | Build status Docs npm package version | | πŸ“± Staart Native | React Native app for Android and iOS | Build status Docs npm package version | | 🎨 Staart.css | Sass/CSS framework and utilities | Build status Docs npm package version | | πŸ“¦ Staart Packages | Helper functions and utility packages | Build status Custom badge |

πŸ’ Sponsors

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


Oswald Labs

O15Y

Speakup

Netlify

Koj

πŸ“„ License

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.