• Build (and deploy) a real SaaS app in 8 weeks using Python and Flask with this self-paced, online course.

    How The Course Works

    Fullstack Flask is a self-paced, 8-week, online course where you will build a real-world SaaS application in Python

    Remote

    Take the course anywhere

    Self-paced

    Take the course anytime

    Structured

    Learn in a cohesive fashion

    Community

    Learn with other students

     

    Everything you need to build a real SaaS application

    Fullstack Flask goes beyond other courses in covering every detail required for a production application.

    Here are ten things you will be able to do when you take the course:

    1. Build the backend and frontend in Python with Flask
    2. Persist data with PostgreSQL
    3. 100% Test Coverage
    4. Handle real payments with Stripe.
    5. Setup and run delayed jobs queues
    6. Send emails to your users
    7. Build user authentication
    8. Learn how to deploy the entire architecture to production
    9. Tune the performance of the server and queries
    10. Build the foundation for your income-generating SaaS side-project or company

    Our students work at

    👋 Hey there! I'm Sumukh, the author of this course

    I work at AngelList and previously helped teach Python and Flask at U.C. Berkeley to thousands of students. I've helped a lot of people learn Flask but along the way I noticed a problem with the tutorials and books that people were using.

    The problem was that tutorials would skip the actual problems you would encounter as a full-stack developer trying to deploy a maintainable and scalable application in production.

    To solve this this problem, I decided to create this course: A guide that doesn't just cover the basics, but one that teaches how to solve all of the problems you will run into when developing a web application using Flask.

    It's the guide I wish I had when I was getting started, and I think you're going to love it.

    What We Will Build

    In Fullstack Flask I will teach you how to use the full power and expressiveness of Python to build a fully functional income-generating web app from scratch using Flask.

    Introducing Yumroad

    In this course, we'll build Yumroad: a service for selling digital products online

    Real-world architecture

    We're not going to build a simple web-server and be done with it - no way. Instead, we're going to build out the full architecture of a real-world app. That means, databases, delayed jobs, sending emails, monitoring performance, and a whole lot more.

    Payment Forms and Webhooks

    We'll implement custom payment forms -- and implement the server hooks to make them work

    Stripe Integration

    We'll integrate with Stripe to handle payments for our digital products

    Send emails

    Our applications often have to email users and in this course, we'll show you how to do it

    Work with APIs

    We'll work with third party APIs to get real world data and bring it into our application.

    Fullstack Flask vs. Other Courses

    Fullstack Flask can help you save time, money, and frustration vs. going with other courses.

    Fullstack Flask

    Other Courses

    Expert Instructors

    Sumukh works at AngelList building production applications - he also taught Python at U.C. Berkeley. (and newline has tens of thousands of happy students)Who knows. Often unreliable, inexperienced teachers

    Comprehensive Scope

    This course goes beyond the frontend and teaches error handling, performance, sending emails, delayed jobs, and debugging.Teaches on backend and frontend at a superficial level

    Depth

    Covers all of the details including structure, organization, tooling, and deployment.Leaves you wanting more, wondering how to build a "real" application.

    Community

    Support from classmates and teachers in our Discord communityOn your own

    Time Commitment

    Build a complete revenue generating app in 8 weeksWithout a linear path you can waste months and get nowhere

    Satisfaction guaranteed

    Satisfaction guaranteed - full refund if you're unhappyStingy refund policies, if any

    Why this course is different?
    Production Ready Features

    Fullstack Flask covers the code for the backend and the frontend, but goes way beyond into production-level details that are often ignored by other courses. Here's a few examples:

    Error Handling

    Errors happen, but they don't have to take down your app (or go unnoticed!) . In this course, we'll show you what the pros do: handle their errors using an error handling service like Sentry

    Delayed Job Queues

    You don't want to handle long-running requests in your main web server. Instead, pros setup "delayed jobs", which are worker processes that can perform long-running tasks in your app. We cover how to set these up (and deploy them!) in the course

    Debugger

    It would be great if our code ran perfectly the first time, but sometimes we need to debug. In the course, we'll show you how to use the debugger in Python - in your browser!

    100% Test Coverage

    Tests are a must in any pro application. The app in Fullstack Flask has 100% test coverage and we show you how to write the tests

    Use the SQLAlchemy ORM

    SQLAlchemy is an ORM what is super powerful. In the course we'll show you how to use this ORM - and it's related devtools

    Deploy the whole thing

    The app has an architecture that is more than just a web-server. With a database and delayed jobs, there are several moving pieces - and we show you how to deploy them all in this course

    Includes: Ignite A Batteries-Included SaaS App in a Box

     

    Included in your enrollment is the code, lessons, and a license to Ignite which is a SaaS App in a Box that you can use for your own projects. ($200 value)

    Ignite is a scaffold for starting new Flask applications. It takes care of the boilerplate code (like User Registration, OAuth, Teams, and Billing), allowing you to focus on building your application. Ignite is built upon best practices for modern Flask applications.

    Batteries Included

    Authentication? Check. OAuth? Check. Teams? Check. Plus, an API, Emails, Admin, Recurring Billing and more.

    Dashboards

    Includes an admin dashboard for controlling data and reporting sales

    Team Management

    Manage teams, invites, and roles

    Payments

    Handle real payments with Stripe - including recurring billing for subscription services

    Social Auth

    Login and register with Google, Twitter, Facebook, and more

    GDPR Compliance

    Allow users to export their data for GDPR

    With Ignite you'll be able to spin up a production, revenue generating SaaS in no time.

    (Included in your Fullstack Flask course enrollment)

    Course Content

    24 modules46 lessons7h 32m total

    Intro

    1 lesson 1m total

    INTRODUCTION

    1:28 minutes

    Building your first Flask Application

    4 lessons 23m total

    LESSON

    5:52 minutes

    Using an API

    Building an stock quote application that uses an external API

    LESSON

    7:54 minutes

    Deploying to Production

    Deploying our Stock Quote application using Heroku

    LESSON

    6:46 minutes

    Rendering Pages

    3 lessons 26m total

    Rendering Pages

    - stock-app (folder) - server.py - requirements.txt - Procfile (optional) - templates (folder) - stock_quote.html (your template)

    LESSON

    11:32 minutes

    LESSON

    14:45 minutes

    LESSON

    Growing our application with Blueprints

    2 lessons 25m total

    Growing our application with Blueprints

    `https://financialmodelingprep.com/api/v3/financials/income-statement/AAPL`

    LESSON

    12:33 minutes

    LESSON

    13:20 minutes

    Application Factories & Configuration

    1 lesson 14m total

    Using an Application Factory

    `FLASK_ENV="development" FLASK_APP="stock_app:create_app" flask run`

    LESSON

    14:53 minutes

    Testing

    2 lessons 26m total

    LESSON

    12:10 minutes

    Part II: Building Larger Flask Applications

    2 lessons 10m total

    LESSON

    2:27 minutes

    LESSON

    7:45 minutes

    Databases & ORMs

    2 lessons 29m total

    Databases & ORMs

    "SQLAlchemy in general just has a much larger featureset and it's the only ORM for Python which allows you to take full advantage of your database and does not stand in your way. It exposes all features of your underlying database if you want and can be heavily fine tuned. ... [The] simple cases [are] not where SQLAlchemy shines. It's the more complex situations which you can't do at all in Django that work nicely in SQLAlchemy.

    LESSON

    12:27 minutes

    Using SQLAlchemy

    `FLASK_ENV=development FLASK_APP="yumroad:create_app" flask shell`

    LESSON

    16:54 minutes

    Building pages using our models

    2 lessons 19m total

    LESSON

    4:41 minutes

    Handling Forms (with WTForms)

    3 lessons 33m total

    LESSON

    8:15 minutes

    Logins

    3 lessons 45m total

    User Registration

    `FLASK_APP="yumroad:create_app" flask shell`

    LESSON

    16:32 minutes

    LESSON

    14:48 minutes

    LESSON

    13:48 minutes

    DB Relationships & Migrations

    3 lessons 32m total

    Implementing Relationships

    Using SQLAlchemy for relationships between models

    LESSON

    15:51 minutes

    LESSON

    11:32 minutes

    Sending emails

    1 lesson 16m total

    LESSON

    16:51 minutes

    Payments

    3 lessons 44m total

    LESSON

    7:33 minutes

    LESSON

    22:21 minutes

    LESSON

    15:02 minutes

    Assets

    1 lesson 21m total

    LESSON

    21:06 minutes

    Part III: Deploying to Production

    Errors

    1 lesson 12m total

    LESSON

    12:03 minutes

    Delayed Jobs

    1 lesson 16m total

    LESSON

    16:10 minutes

    Improving Performance

    1 lesson 20m total

    LESSON

    20:25 minutes

    Deployment

    1 lesson 14m total

    LESSON

    14:19 minutes

    Part IV: Ignite (SaaS Boilerplate)

    1 lesson 2m total

    LESSON

    2:39 minutes

    Using Ignite

    3 lessons 13m total

    LESSON

    3:18 minutes

    LESSON

    5:06 minutes

    LESSON

    5:26 minutes

    Changelog

    2 lessons

    Pricing

    Flexible plans designed for everyone

    Pro

    $299$149
    One-time payment. Lifetime access
    On Sale! 🎉
    The full, 8-week course for an individual student

    Includes

    • Immediate access to the 40+ course lessons
    • Access to our Community
    • Full Completed Code for the Course
    • License to Ignite: SaaS Boilerplate ($200 value)
    • newline satisfaction guarantee

    Enterprise

    $1,495
    One-time payment. Lifetime access
    Team licenses of the Pro package. Perfect for teams of any size with bulk discounts applied for teams of 10 of more students.
    Quantity:

    Everything in the Pro plan and...

    • Bulk discounts for teams of 10+ students
    • Administrative seat configuration

    Questions you might have

    Here are answers to some common questions

    Yes! Flask comes with the basic components to run a web server. Later you can import other libraries and everything you need to scale your web application to where you want to. It's easier to start with Flask because it doesn't throw at you all the components. It's just throwing you a minimal set of things, one at a time.

    The Python Developer's Survey of 2019 ran by the Python Software Foundation showed that Flask is the most popular Web Framework used by Python developers. - Yes! Flask comes with the basic components to run a web server. Later you can import other libraries and everything you need to scale your web application to where you want to. It's easier to start with Flask because it doesn't throw at you all the components. It's just throwing you a minimal set of things, one at a time.

    The sample project we will be developing throughout the course will be an online marketplace like Gumroad. Inside of the marketplace you will be able to create stores, integrate payment processors like Stripe, and much more.

    The entire application you will build throughout the course has 100% code test coverage. What that means is that the test hit every line of code, making sure it works properly.

    When joining the course, you'll be invited to our community Discord where you can chat with fellow students.

    You'll log in to your newline account and progress through the lessons. You'll also be able to download the completed application and videos.

    I teach the concepts of the course in a very simple way, so anyone with a basic understanding of Python can follow along.

    If you're unhappy with the course for any reason, just reach out to us and we'll give you a full refund. No risk involved.