5 Open source SaaS starters

May 3, 2021

What’s that?

Starting a SaaS business is never easy - and has lots of repeatable parts such as: authentication, billing, user management, and more. I love to focus on what matters, which is the core algorithm/business value behind my SaaS.


The List


SaaS Python base application with Flask, Vue, Bootstrap, Webpack

Features:

  • User authentication
  • Email authentication (with email confirmation)
  • User registration, login, logout
  • Simple user profile page
  • Payment support
  • Fully stripe integration (plans list is automatically generated from your Stripe account)
  • User plans support
  • Payments method support (only credit cards for now, by Stripe)
  • Users can select a plan, change it, cancel, pause, resume
  • User can see all the history of payment-related actions

SaaS Boilerplate - Node.js

Build your own SaaS business with SaaS boilerplate. Productive stack: React, Material-UI, Next, MobX, WebSockets, Express, Node.js , Mongoose, MongoDB. Written with TypeScript

SaaS

Features

  • Server-side rendering for fast initial load and SEO.
  • User authentication with Google, cookie, and session.
  • Production-ready Express server with compression, parser, and helmet.
  • Transactional emails (AWS SES): welcome, team invitation, and payment.
  • Adding email addresses to newsletter lists (Mailchimp): new users, paying users.
  • File upload, load, and deletion (AWS S3) with pre-signed request for: Posts, Team Profile, and User Profile.
  • Team creation, Team Member invitation, and settings for Team and User.

Opinionated architecture:

  • keeping babel and webpack configurations under the hood,
  • striving to minimize number of configurations,
  • withAuth HOC to pass user prop and control user access to pages,
  • withLayout HOC for shared layout and to pass additional data to pages, withStore HOC, developer-friendly state management with MobX,
  • server-side rendering with Material-UI,
  • model-specific components in addition to common components.
  • Universally-available environmental variables at runtime.
  • Server-side environmental variables managed with dotenv.
  • Browser-side environmental variables managed with Next.js and webpack’s process.env substitution (see ./app/.env.blueprint).
  • Custom logger (configure what not to print in production).
  • Useful components for any web app: ActiveLink, AutoComplete, Confirm, Notifier, MenuWithLinks, and more.
  • Analytics with Google Analytics.

Docker CE Integration:

  • spawn MongoDB database for development.
  • stage service stack with lean container images.

Production-ready, scalable architecture:

  • app - user-facing web app with Next/Express server, responsible for rendering pages (either client-side or server-side). app sends requests via API methods and fetch to api server’s Express routes.
  • api - server-only web app with Express server, responsible for processing requests for internal and external APIs. we prepared both apps for easy deployment to now by Zeit.
  • Subscriptions with Stripe:
  • subscribe/unsubscribe Team to plan,
  • update card information,
  • verified Stripe webhook for failed payment for subscription.

Reeve - Web application scaffolding for production environments - Node.js Reeve

Features:

  • Express Server
  • React
  • Redux
  • Server Configuration & Environment Store
  • Webpack
  • Redis
  • MySQL Server
  • SASS
  • Bootstrap
  • i18n Translation File Support
  • React-Tooltips
  • Dropdown Alerts
  • AVA Test System
  • JS Validation
  • Google Analytics
  • Subdomains
  • Session Storage
  • React Router
  • User Authentication
  • Error Reporting
  • JSON Web Tokens
  • Polyfills & IE Support
  • Email Sending
  • Sentry error logging
  • Papertrail logging
  • API Rate Limiting

DjaoDjin - Python,Django

DjaoDjin

Accounts & billing workflows every SaaS needs DjaoDjin builds the infrastructure, so you can focus on your product.

Features

  • Landing pages - Homepage, pricing
  • Account profiles
  • Billing - Stripe
  • Dashboards
  • Access control policies
  • Registrations
  • Authentication
  • Checkout
  • Vue.js Frontend

Full Stack FastAPI and PostgreSQL - Base Project Generator

https://github.com/tiangolo/full-stack-fastapi-postgresql

Features:

  • Full Docker integration (Docker based).
  • Docker Swarm Mode deployment.
  • Docker Compose integration and optimization for local development.
  • Production ready Python web server using Uvicorn and Gunicorn.
  • Python FastAPI backend:
    • Fast: Very high performance, on par with NodeJS and Go (thanks to Starlette and Pydantic).
    • Intuitive: Great editor support. Completion everywhere. Less time debugging.
    • Easy: Designed to be easy to use and learn. Less time reading docs.
    • Short: Minimize code duplication. Multiple features from each parameter declaration.
    • Robust: Get production-ready code. With automatic interactive documentation.
    • Standards-based: Based on (and fully compatible with) the open standards for APIs: OpenAPI and JSON Schema.
    • Many other features including automatic validation, serialization, interactive documentation, authentication with OAuth2 JWT tokens, etc.
  • Secure password hashing by default.
  • JWT token authentication.
  • SQLAlchemy models (independent of Flask extensions, so they can be used with Celery workers directly).
  • Basic starting models for users (modify and remove as you need).
  • Alembic migrations.
  • CORS (Cross Origin Resource Sharing).
  • Celery worker that can import and use models and code from the rest of the backend selectively.
  • REST backend tests based on Pytest, integrated with Docker, so you can test the full API interaction, independent on the database. As it runs in Docker, it can build a new data store from scratch each time (so you can use ElasticSearch, MongoDB, CouchDB, or whatever you want, and just test that the API works).
  • Easy Python integration with Jupyter Kernels for remote or in-Docker development with extensions like Atom Hydrogen or Visual Studio Code Jupyter.
  • Vue frontend:
    • Generated with Vue CLI.
    • JWT Authentication handling.
    • Login view.
    • After login, main dashboard view.
    • Main dashboard with user creation and edition.
    • Self user edition.
    • Vuex.
    • Vue-router.
    • Vuetify for beautiful material design components.
    • TypeScript.
    • Docker server based on Nginx (configured to play nicely with Vue-router).
    • Docker multi-stage building, so you don’t need to save or commit compiled code.
    • Frontend tests ran at build time (can be disabled too).
    • Made as modular as possible, so it works out of the box, but you can re-generate with Vue CLI or create it as you need, and re-use what you want.
    • It’s also easy to remove it if you have an API-only app, check the instructions in the generated README.md.
  • PGAdmin for PostgreSQL database, you can modify it to use PHPMyAdmin and MySQL easily.
  • Flower for Celery jobs monitoring.
  • Load balancing between frontend and backend with Traefik, so you can have both under the same domain, separated by path, but served by different containers.
  • Traefik integration, including Let’s Encrypt HTTPS certificates automatic generation.
  • GitLab CI (continuous integration), including frontend and backend testing.

Dashboard

https://github.com/userdashboard/dashboard

Dashboard packages everything web apps need into reusable, modular software. It runs separately to your application so you have two web servers instead of one

Features:

  • single website or interface for your users
  • Dashboard requires NodeJS
  • Payment integration with Stripe
  • User management
  • Various hosting backends
  • Localization