A great starting point to build your SaaS in Flask & Python, with Stripe subscription billing 🚀
MIT License
A fork of Max Halford's flask-boilerplate. I've noticed SaaS bootstraps/boilerplates being sold upwards of $1,000 per year and I think that's fucking ridiculous. This project will be my attempt to make a great starting point for your next big business as easy and efficent as possible.
If you're here because of Siraj's video, welcome!
I did what most people recommend for the application's structure. Basically, everything is contained in the app/
folder.
static/
and templates/
folders. The templates/
folder contains macros, error views and a common layout.views/
folder to separate the user and the website logic, which could be extended to the the admin views.forms/
folder, as the project grows it will be useful to split the WTForms code into separate files.models.py
script contains the SQLAlchemy code, for the while it only contains the logic for a users
table.toolbox/
folder is a personal choice, in it I keep all the other code the application will need.manage.py
. Enter python manage.py -?
to get a list of existing commands.Install the requirements and setup the development environment.
make install && make dev
Create the database.
python manage.py initdb
Run the application.
python manage.py runserver
Navigate to localhost:5000
.
The goal is to keep most of the application's configuration in a single file called config.py
. I added a config_dev.py
and a config_prod.py
who inherit from config_common.py
. The trick is to symlink either of these to config.py
. This is done in by running make dev
or make prod
.
I have included a working Gmail account to confirm user email addresses and reset user passwords, although in production you should't include the file if you push to GitHub because people can see it. The same goes for API keys, you should keep them secret. You can read more about secret configuration files here.
Read this for information on the possible configuration options.
The MIT License (MIT). Please see the license file for more information.