Building SaaS with Python and Django

On Wednesdays at 9pm Eastern Time, I develop a Software as a Service (SaaS) on Twitch.

My primary goal is to teach people about the Django web framework and Python.

Django is a big web framework so I share my experience from using the project for 6+ years.

This page contains show notes and links to each stream. Join me live if you’re interested!

  • #Python
  • #Django
  • #Webpack

Webpack and collectstatic in CI - Building SaaS #28

In this episode, we updated Continuous Integration (CI) to run webpack and the Django collectstatic command. This is part of the ongoing effort to simplify deployment by moving work to CI.

  • #Python
  • #Nginx
  • #Shiv

Plug the Shiv App Into Nginx - Building SaaS #27

In this episode, we finally connected the Shiv app into Nginx. This completes the whole process of converting to a Django Shiv and using that to run the site.

  • #Python
  • #Django
  • #Ansible

Connecting Shiv Apps with Ansible - Building SaaS #26

In this episode, we finished connecting the Django Shiv app into Ansible. This required messing with file permissions and copying settings files to their proper place.

  • #Python
  • #Django
  • #Shiv

It's Permissions, Dummy! - Building SaaS #25

In this episode, we got into a static files problem that caused a template to fail to load from the Shiv app.

  • #Python
  • #Django
  • #Shiv

In the Guts of a Shiv App - Building SaaS #24

In this episode, we got our hands dirty with the Django Shiv app that we build to work out issues with finding templates and other settings problems.

  • #Python
  • #Shiv
  • #Ansible

It's Alive! A Django Shiv app - Building SaaS #23

In this episode, we made Ansible pull down the Django Shiv app from S3 during deployment. Then we knocked out some kinks in the process to get the app working.

  • #Python
  • #AWS
  • #Circle CI

Upload to S3 with CircleCI orbs - Building SaaS #22

In this episode, we worked on uploading to S3. We took the Shiv app from previous streams that we built on CircleCI and used their new orbs feature to deliver the app to an S3 bucket for later deployments.

  • #Python
  • #Shiv
  • #Circle CI

Shiv zipapps and CI - Building SaaS #21

In this episode, I took our new Shiv zipapp and fixed a problem with its dependencies. Then we worked on building the Shiv app in the continuous integration (Circle CI) environment.

  • #Python
  • #Django
  • #Shiv

Making a Shiv App - Building SaaS #20

In this episode, we took our Python package from the previous episode and bundled it together with the Python dependencies using a tool called Shiv from LinkedIn.

  • #Python
  • #Django
  • #pip
  • #Packaging

Pip-tools and App Packaging - Building SaaS #19

In this episode, we started by improving our requirements.txt handling with pip-tools. Then we cleaned things up and began turning the app into a Python package.

  • #Python
  • #Django
  • #Forms

Completing Account Deactivation - Building SaaS #18

In this episode, we finished the account deactivation flow. We looked at how to log out and mark an account as inactive. The deactivate customer is presented with a nice deactivated page to let them know there subscription was canceled successfully.

  • #Python
  • #Django
  • #Stripe

Canceling Stripe Subscriptions - Building SaaS #17

In this episode, we continued on the deactivation workflow and worked through canceling a subscription with Stripe.

  • #Python
  • #Django
  • #Feature Flags

Feature Flags in Action - Building SaaS #16

In this episode, we used the feature flag system covered last time to add a new feature! We saw how feature flags make sure that your users don’t see your feature until you’re ready.

  • #Python
  • #Django
  • #Feature Flags

Feature Flags with Django Waffle - Building SaaS #15

In this episode, we added a feature flag system to College Conductor to control when users see new features.

  • #Python
  • #Ansible
  • #Mitogen

Ansible Cranked to 11 - Building SaaS #14

In this episode, we super charged the Ansible deployment of College Conductor. We reduced the time it tasks to deploy from 7 minutes down to 1 minute and 30 seconds by using a tool called Mitogen.

  • #Python
  • #Django
  • #Ansible

Deploying with Ansible - Building SaaS #13

In this episode, I walked through the deployment process to put the updated web application onto the live site.

  • #Python
  • #Django
  • #Automation

Automation aides - Building SaaS #12

In this episode, we completed an automated tool for processing and connecting data quickly. We built an HTML template and walked through how to extract pieces and make connections.

  • #Python
  • #Django
  • #Views

Semi-automated tasks - Building SaaS #11

In this episode, we worked on a tool designed to help with backend manual tasks that would semi-automate the work. By automating some portion of the task, we’re able to make it way faster to complete.