5 Open source SaaS startersMay 3, 2021
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.
- 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
Build your own SaaS business with SaaS boilerplate. Productive stack: React, Material-UI, Next, MobX, WebSockets, Express, Node.js , Mongoose, MongoDB. Written with TypeScript
- 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.
- 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.
- Express Server
- Server Configuration & Environment Store
- MySQL Server
- i18n Translation File Support
- Dropdown Alerts
- AVA Test System
- JS Validation
- Google Analytics
- Session Storage
- React Router
- User Authentication
- Error Reporting
- JSON Web Tokens
- Polyfills & IE Support
- Email Sending
- Sentry error logging
- Papertrail logging
- API Rate Limiting
Accounts & billing workflows every SaaS needs DjaoDjin builds the infrastructure, so you can focus on your product.
- Landing pages - Homepage, pricing
- Account profiles
- Billing - Stripe
- Access control policies
- Vue.js Frontend
Full Stack FastAPI and PostgreSQL - Base Project Generator
- 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.
- Vuetify for beautiful material design components.
- 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
- 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 packages everything web apps need into reusable, modular software. It runs separately to your application so you have two web servers instead of one
- single website or interface for your users
- Dashboard requires NodeJS
- Payment integration with Stripe
- User management
- Various hosting backends