
Learn how to build a production-ready Flask web app, save hundreds of development hours, manage users, handle recurring payments, and create a custom admin with battle-hardened code.
Learn to handle code errors by checking the error, comparing to the provided source, and using Google and forums for solutions; the course is a living resource with updates.
Define what Flask is and explore the types of websites you can build with Flask. Compare Flask to other web frameworks and examine how major companies use Flask in projects.
Explore Flask, a Python micro framework built on the web server gateway interface, with a templating language and a rich ecosystem of hundreds of extensions for web app development.
Explore what kinds of sites you can build with Flask, from simple landing pages with forms to user registrations and API backends for SPA front ends.
Compare Flask with Rails and other web frameworks, and learn why the best tool for the job varies by skill and context, focusing on maintainable code and your happiness.
See how Pinterest uses Flask to power its API under load, build dozens of endpoints, and deploy API versions, while Twilio and LinkedIn rely on Flask for APIs and tools.
Discover a high-level overview of the SAAS app we will build, including what the app does and its end result. Visualize the architecture with diagrams as we preview the system.
Explore building the Snake Eyes dice game within a Flask-based SaaS app. Learn to implement subscriptions, coin wagering, billing, coupon codes, and a comprehensive admin dashboard.
Learn the Flask-based architecture for a saas app, using unicorn, celery, redis, PostgreSQL, SQLAlchemy, Click, Stripe, and Docker to power development and production.
Set up your workstation by creating a course folder and downloading the project source code to follow along, then install a code editor for the Flask SaaS course.
Create a dedicated folder on your workstation to store all course files, place it in your home directory, and name it as the abbreviation for build the saas with flask.
Download all course materials in a single zip containing source code and notes that evolve with each section; extract into your courses folder to access bundled supplemental resources.
Choose and configure a code editor to open and edit the downloaded source code, explore free editor options, and reference Sublime Text 3 for configuration.
Learn what Docker is and why it's worth using, install Docker, and run a few commands to verify it works before diving into code.
Discover why Docker is worth using and what Docker is, and note that running a simple Flask app requires a system capable of running Python applications.
Learn to install Docker on Linux, macOS, and Windows using official docs, including Docker Desktop and Docker Compose setup, with guidance on scripts and Docker Toolbox options.
Open the Docker QuickStart terminal or Linux terminal to verify Docker version and Docker Compose version, confirming a ready development environment for learning Flask and creating a base Flask app.
Explore Flask basics by setting up a base application, installing dependencies, inspecting the Flask app file, running the app in a browser, and understanding configuration settings.
Explore how dependencies power web apps and how to manage them with pip and a requirements.txt file. Pin exact versions to ensure consistency for flask and other packages.
Explore the Flask app factory pattern by inspecting the main application file, creating a hello world route, and understanding how routes map to the home page using decorators.
Investigate the dockerfile for the saas app. Compare Python 2.7 end-of-life with Python 3.7.5, and learn how Alpine-based docker builds install dependencies, copy code, and run gunicorn.
Run the snake eyes app with Docker Compose, building and starting unicorn, and view the site on port 8000, with live reload and code changes reflected instantly.
Learn how Flask loads configuration settings from config/settings.py and instance/settings.py, with instance overrides, using an example hello variable; understand when to enable debug during development and disable it in production.
Explore flask blueprints, implement one in the application, review the NHT M-L template for a consistent look, and examine Ginger two templates, home page, and more.
Learn how to use Flask blueprints to modularize a Flask app and namespace admin routes. Register blueprints in the app factory, and keep templates and static files organized.
Choose an app look using bootstrap as the foundation, with find awesome for icons and custom assets. Organize static assets in flask's static folder and prepare for mobile responsive design.
Explore ginger two templates, enabling template inheritance, auto escaping to prevent cross-site scripting, and fast precompiled code, while adding custom filters and functions; transfer data from flask to html.
Create a responsive home page in a Flask app by wiring a Jinja2 template to the page blueprint, rendering with render_template, and managing assets via static files and Bootstrap.
Add privacy policy and terms pages in a Flask saas app using a reusable template and jinja config for the server name, and finish with docker compose cleanup.
Learn to write tests with flask utilities, overwrite tests with Flast, measure test coverage, detect syntax issues, review package changes, run coverage and static analysis tools on your code base.
Review changes to the requirements.txt by adding pytest, pytest-cov, and flake8; embrace a just-enough tests approach, monitor coverage, and enable Sublime editor live feedback.
Run and fix flask tests with pietist, docker compose build, and test fixtures; configure the app for testing and use function-scoped test clients to verify three passing tests.
Investigate the code test coverage of the Flask SaaS app by running the coverage tool, inspecting missing lines, and reviewing the terms page in views.py within the snake eyes folder.
Run flake8 to perform static analysis on the code base, identify formatting and unused import issues, and learn to fix or ignore warnings while managing docker compose workflows.
Explore the components and purpose of CLIA scripts, review project changes since the last section, examine the CLIA scripts code, and run CLIA commands to see how it works.
discover why a cli script is essential to run project commands, avoid typing flags and paths, and list commands like Snake Eyes test from within the container.
Review newly added files in section 9, including click integration with Flask, a setup.py to build the snake eyes cli as a binary, and the cli and egg-info folders.
Explore how the click library builds a multi-command cli, with quick commands and a path argument, plus tests, coverage, and flaky checks.
Build and run docker compose, execute the snake eyes commands, lint with flake8, explore flask basics, and read click help messages while stopping containers.
Explore how to use custom Flask extensions and review changes in the requirements.txt file. Learn what the debug toolbar extension does and how to add it to your app.
Review the new Flask debug toolbar added to the requirements.txt, a Django debug toolbar port that injects into Jinja templates to reveal render time and database queries.
Learn how the Flask debug toolbar works, how to add and initialize extensions with a clean extension pattern, and view route lists and render times in a running app.
Do you want to create an awesome web application but aren’t sure where to start?
Hi, I’m Nick and for the last year I've been teaching thousands of happy students how to deploy web applications with Docker.
Now I want to teach you how to develop PRODUCTION READY web applications with confidence.
Most learning material out there only teaches you how to build toy examples and throw out lines like “you wouldn’t want to do this in production…”, but then they never tell you the REAL way to do it.
Imagine how awful you’d feel after spending your time and hard earned money but still had to do a ton of research to complete your project. I’ve been there, done that and it’s not fun.
Instead, a large portion of the code base in my course is battle hardened from running in production on multiple projects.
I’ll be at your side explaining my thought process along the way while we build up a multi thousand line application together.
You’re going to walk away with everything you need to feel confident building your own web applications.
"Wow, what an amazing resource you've made. The app source is amazingly concise (clearly years of experience distilled). Honestly, it's the handsomest web app code base I've ever seen. - David N."
"I have been working with Flask for the past 3 years and have been a technical reviewer on the Mastering Flask Packt book, even so, I am learning so much form you! - Pedro B."
You won’t just become a Flask master by taking my course but you’ll also gain the confidence in developing web applications so that you can command the hourly rates you deserve as a software developer.
This could be done through increasing your rates as a freelancer or negotiating a higher salary at your job. In my years working as a consultant and talking to a lot of developers, I discovered that most developers are not confident in their ability to fulfill work that is requested of them.
Some of them are even afraid to bid on or accept contract work.
This is actually a very common problem and is described as “Impostor Syndrome”. I’ve suffered from it for a long time and it has cost me tens of thousands of dollars and now I want to save you the hardship of making the same mistake.
You might be thinking “Nick, how in the world is a course on Flask going to let me raise my rates?” and that’s a great question but before I answer that, let’s just play around with a few numbers:
Wouldn’t you want an extra 30k in your pocket every year? You know, the only real difference between a $30/hour and $60/hour developer is their mindset.
One of them believes they can fulfill the job, while the other struggles to believe in themselves.
How will Build a SAAS App with Flask help you generate more income?
Simple, you’re going to get a battle hardened web application that you can use as a bulletproof base for your next project. You won’t have to sit there second guessing yourself while researching everything on your own.
You’re getting well tested code that’s been running in production. Tons of edge cases have been ironed out, and features were added due to real life needs. Not only that, but I’ll be at your side explaining everything to you while you make your way through the course.
You’re going to see how the application gets built up from a single file, all the way to a 4,000+ line project that spans across dozens of files and folders.
If that’s not enough, I’ll be available to answer any questions you have in the course’s forums and all of my courses come with an unbeatable 30 day guarantee that’s 100% RISK FREE. If you don’t love the course then I insist you get a 100% refund – no questions asked.
"Definitely delivers on hours and sanity saved! Comprehensive and well worth it. - B.C."