The Build a SAAS App with Flask Course

Build a real world web app with Python, Flask and Docker. Learn to accept payments with Stripe and so much more.

4.50 (1766 reviews)
Web Development
10.5 hours
Mar 2022
last update
regular price

What you will learn

See how a large application gets built up in stages

Build complex web applications and websites

Bid for Flask / web development freelance work

Confidence to apply for Flask positions at software companies

Proficiency with server-side development and databases

An awesome Docker based development environment


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."

Here’s just some of what you’ll learn by taking my course:
  • Learn how to use Docker to “Dockerize” a web application
  • Learn what Flask is and how to use its features in your applications
  • Learn how to create a Python 2 and 3 compatible code base
  • Learn how to use PostgreSQL, Redis and Celery with Flask
  • Create a full blown user management system
  • Create a flexible custom admin interface
  • Accept both recurring and microtransaction credit card payments
  • Deal with both HTML template and JSON responses
  • Logging, middleware and error handling
  • Database migrations and internationalization (i18n)

"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."

What makes Flask awesome?
  • Based on one of the most popular computer languages in the world (Python)
  • Minimalistic and easy to get started
  • Lightning fast (Pinterest’s API serves 12+ billion requests / day with Flask)
  • Vibrant community and ecosystem (hundreds of high quality extensions)
  • Profitable for freelancing and consulting
Why is Docker worth using?
  • Saves you from a ton of headaches when setting up development environments
  • Easily move an application across environments or servers
  • Prevents issues such as “well, it worked on my machine!”
  • Makes developing with teams a much more pleasant experience
  • You won’t need expensive hosting to deploy your web applications

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:

  • If you work 20 hours a week for the next year at $30/hour then you would stand to make $31,200.
  • After you double your rate then you would make $62,400 instead.

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."


The Build a SAAS App with Flask Course - Screenshot_01The Build a SAAS App with Flask Course - Screenshot_02The Build a SAAS App with Flask Course - Screenshot_03The Build a SAAS App with Flask Course - Screenshot_04


Welcome to the Course

What Does This Course Cover
Dealing with Issues

Is Flask Right for You?

What Is Flask?
What Kind of Web Sites Can You Build with Flask?
How Does Flask Compare to Other Frameworks?
Massive Companies Who Are Using Flask

Application Overview

Going over the Demo App That We'll Build
Visualizing the Application's Architecture

Preparing to Follow Along

Setting up an Initial Course Folder
Downloading the Course's Material
Installing a Code Editor

Getting Familiar with Docker

Why Is It worth Using Docker?
Installing Docker
Making Sure Docker Works on Your System
Getting Familiar with Docker - Quiz

Creating a Base Flask App

Exploring the App's Package Dependencies
Taking a Look at the Application File
Investigating the Dockerfile
Running the Flask Application
Dealing with Configuration Settings
Creating a Base Flask App - Coding Challenge
Creating a Base Flask App - Quiz

Blueprints and Jinja 2 Templates

Creating Our First Flask Blueprint
Deciding on a Look for Our Application
Understanding Jinja 2 Templates
Creating the Home Page
Adding a Few Additional Pages
Blueprints and Jinja 2 Templates - Coding Challenge
Blueprints and Jinja 2 Templates - Quiz

Testing and Code Quality

Going over the requirements.txt Changes
Getting Comfortable Writing Tests
Investigating Our Code Test Coverage
Performing Static Analysis on the Code Base
Testing Code Quality - Coding Challenge
Testing and Code Quality - Quiz

Creating a CLI Script

Why Do We Need a CLI Script?
Going over New Content Added to the Project
Getting Familiar with Click
Running the Commands We Created
Creating a CLI Script - Coding Challenge
Creating a CLI Script - Quiz

Using Our First Flask Extension

Going over the requirements.txt Changes
Debug Toolbar
Using Our First Flask Extension - Coding Challenge
Using Our First Flask Extension - Quiz

Creating a Contact Form

Going over the requirements.txt Changes
Configuring the App to Send e-mail
Adding the Contact Blueprint
Reviewing the Views
Looking into the Templates and Macros
Handling Forms with Flask-WTForms
Our First Taste of Celery
Running Celery with Docker Compose
Confirming It Works with Tests
Creating a Contact Form - Coding Challenge
Creating a Contact Form - Quiz

Creating a Complete User System

Going over the requirements.txt Changes
Configuring the App to Handle Users
Adding the User Blueprint
Exploring the User Model
Initializing the Database
Logging Users in and Out
Registering New Users
Welcoming New Users
Allowing Users to Update Their Settings
Dealing with Password Resets
Modifications to Previous Blueprints
Confirming It Works with Tests
Creating a Complete User System - Coding Challenge
Creating a Complete User System - Quiz

Creating a Custom Admin Dashboard

Why Are We Not Using Flask-Admin?
Adding the Admin Blueprint
Viewing the Main Dashboard
Listing Users
Editing Users
Generating Fake Users with the CLI
Searching and Sorting Users
Deleting Users
Confirming It Works with Tests
Creating a Custom Admin Dashboard - Coding Challenge
Creating a Custom Admin Dashboard - Quiz

Logging, Middleware and Error Handling

Tracking Response Times for All Requests
Configuring Log Levels
Using Flask's Logger
Integrating Google Analytics
Fixing IP Addresses with Middleware
Custom Error Pages
Handling Exceptions in Production
Logging, Middleware and Error Handling - Coding Challenge
Logging, Middleware and Error Handling - Quiz

Quality of Life CLI Improvements

Creating Secure Tokens
Viewing All Route Endpoints
Breaking down Lines of Code
Quality of Life CLI Improvements - Coding Challenge
Quality of Life CLI Improvements - Quiz

Accepting Recurring Payments

Signing up with Stripe
Going over the requirements.txt Changes
Configuring the App to Handle Payments
Adding the Billing Blueprint
Visualizing the Data Model Relationships
Creating Subscription Plans
Rendering Pricing Tables
Subscribing to a Plan (Front-End)
Subscribing to a Plan (Back-End)
Updating Your Payment Method
Informing Users of Expiring Credit Cards
Updating Your Subscription Plan
Cancelling Your Subscription
Extending the Admin Dashboard
Managing Coupons in the Admin (Front-End)
Managing Coupons in the Admin (Back-End)
Expiring and Subscribing with Coupons
Managing Subscriptions in the Admin
Generating Random Invoices
Reviewing Your Billing Details
Integrating Stripe Webhooks
Confirming It Works with Tests
Sales Charts, Refunds and More
Accepting Recurring Payments - Coding Challenge
Accepting Recurring Payments - Quiz

Building the Snake Eyes Game

Going over the requirements.txt Changes
Configuring the App to Handle Betting
Adding the Betting Blueprint
Exploring the Bet and User Models
Giving Subscribers Coins
Placing Bets (Front-End)
Placing Bets (Back-End)
Generating Random Bets
Viewing Betting History
Modifying the Admin User Details
Coding Exercise Homework Assignments
Confirming It Works with Tests
Building the Snake Eyes Game - Quiz

Processing Microtransactions

Configuring the App for Purchases
Accepting Payments (Front-End)
Accepting Payments (Back-End)
Viewing the New Invoice History
Adding to and Modifying the Custom Admin
Confirming It Works with Tests
Processing Microtransactions - Coding Challenge
Processing Microtransactions - Quiz

Database Migrations

What Is a Database Migration?
Going over the requirements.txt Changes
Configuring Alembic
Creating Our First Migration
Sidetracking with pgAdmin III
Running Our First Migration
Creating and Running a Second Migration
Viewing the History of Your Migrations
Auto-Generating Migration Scripts
Database Migrations - Quiz

Internationalization (i18n)

What Is Internationalization?
Going over the requirements.txt Changes
Configuring the App to Handle i18n
Adding i18n Support to the Application
Updating the User Blueprint to Support i18n
Updating the Billing Blueprint to Support i18n
Generating the Primary messages.pot File
Updating Translations for Multiple Languages
Adding Additional Languages
Confirming It Works with Tests
Internationalization (i18n) - Coding Challenge
Internationalization (i18n) - Quiz

Where to Go Next?

Congrats on Finishing This Course
Deploying Your App to Production


April 27, 2022
This course is only for somebody who understands all the concepts beforehand. probably the key concepts should have been explained in some depth...I won't recommend this for somebody who has basic knowledge of flask or Html
March 9, 2022
This is the sixth section, and I have barely done any flask/python coding, you keep explaining Docker and Docker and more Docker .. and if we want to know what we use it for we need to read your blogs and then see your youtube videos and then read more, so far it feels like you are boosting your blog/youtube views more then teaching us, but I still want to learn so .. I might stick around.
January 31, 2022
The course is interesting and voluminous, but it looks more like an overview, which makes it difficult to understand and leaves gaps. I would like this course to be in real-time coding mode.
January 24, 2022
The course is very good, but in the moment it was made. I have many questions, buy I don't find answers. I left a question many days, and it has no response. I tried by two different ways, but the modules are not updated.
December 2, 2021
December 1, 2021
Nick is great at explaining. The approach of dividing the materials into separate folders, each with a snapshot, works well. The content is great, as far as I can tell, this course generally teaches best practices. Only suggestion: when there is a substantial update, why not replace the lecture with a new one, instead of adding new lectures at the end?
August 3, 2021
Lecturer only shows complete project's code, don't push student to develop projects alongside with him. This is something like look this is my project I will tell you something about it. I was hoping for much more practical approach
May 18, 2021
A bit old-fashioned but very instructive, it has everything you need to develop the necessary knowledge about Flask, extremely well-designed. I like it and I recommend it.
May 7, 2021
Very good course for those are looking for real application. This takes you to another level considering doing all the many tasks. I highly recommend it.
March 27, 2021
This course gives good insights. Its really good if you are bored to code and want to audit it. you can follow it practically also if you want. However, its missing the 'live' coding by the instructor which sometimes is more helpful for students as you can push yourself to follow the instructor and make also mistakes which helps you be better.
March 19, 2021
Great explanations and lots of supporting content. Not only do you learn Flask you also learn about all the supporting tools and techniques to actually build a fully fledged application for the real world. The lecturer has kept the course up to date as well by adding things are software versions are updated so you're getting real actionable knowledge here.
March 17, 2021
I know the author and a huge fan of his work in domain of docker, but the problem with this course is that even though it touches some very good topics and the author has done a lot of good work in preparing the course, but the way the course content is delivered i.e source code is given for all sections at once is very poorly designed for people who like to get their hands on while going through any course. On a upper level it looks as if the author is just going about explaining their own code-base. I am open to suggesting any improvements that i feel from my side. [EDIT] Agreed that live coding this is not feasible for the time scale aspect of this course, maybe only some parts.
January 20, 2021
Well worth the time invested. Nicks play by play as he (re)builds Snakeeyes has brought me to a level of understanding of the Flask ecosystem that I didn't think I could get from a Udemy video. I came for the Stripe integration and stayed for the rest. Well done! BTW, Snakeeyes has been refactored/upgraded for with Flask 1.0+ recently but I don't think you will find it here. But trust me, it's well worth looking for.
January 8, 2021
Incredibly organized and precise! His clear, even speech makes him sound a little less than human, but I've found it very helpful when following along or when the content gets pretty unfamiliar. I'm only on section 6 of 21 and I'm 100% certain this class is exactly what I was looking for. I found a few other Flask courses on Udemy and actually wandered away from them because they were too sloppy or had the feeling of some guy just showing us around his blog. By contrast, this is intelligently designed and has a carefully crafted plan.
July 20, 2018
Nick designed a absolutely beautiful course. Really useful , wonderful. I would suggest to add API , GitLab, if possible some CI/ CD , PostgreSQL auto backups.



The Build a SAAS App with Flask Course - Price chart


The Build a SAAS App with Flask Course - Ratings chart

Enrollment distribution

The Build a SAAS App with Flask Course - Distribution chart

Related Topics

udemy ID
course created date
course indexed date
course submited by