RSS.Social

Matt Layman

follow: @[email protected]

Posts

Python and AI workflow with LangGraph

Enhancing Chatbot State Management with LangGraph

Python AI Agents: Overview to Generative AI and Intro to Agents

Love2D Game Dev

Love2D Pong Clone

Love2D Game Clone

Love2D Vibe Coding

Goodbye JourneyInbox - Building SaaS #218

PySpark 101: Introduction to Big Data with Spark

Onboarding Form and Template - Building SaaS #217

C# and .net Core - What They Offer!

Email Reputation and Onboarding - Building SaaS #216

Deployment Snafus and AI - Building SaaS #215

Easy Python Parallelism using Ray

Better Onboarding - Building SaaS #214

Learning to Löve game development - Designing games with Lua

Finishing Simple Signup - Building SaaS #213

Building SaaS with Python and Django #212.2

Signin Email - Building SaaS #212.1

Simplified Signup - Building SaaS #211

Optimizing SQLite - Building SaaS #210

Bootstrap Kamal On Droplet - Building SaaS #209.1

Docker Image For Kamal - Building SaaS #209.2

Postgres To SQLite - Building SaaS #209.3

1Password and DigitalOcean Droplet - Building SaaS #208

UV and Ruff: Next-gen Python Tooling

Huey Background Worker - Building SaaS #207

Heroku To DigitalOcean - Building SaaS #206

Deploy Your Own Web App With Kamal 2

Epic Debugging, Hilarious Outcome - Building SaaS #205

Postgres to SQLite - Building SaaS #204

Docker Go, JS, Static Files - Building SaaS #203

Cloud Migration Beginning - Building SaaS #202

Kamal On A Droplet - Building SaaS #201

Kamal - Building SaaS #200

No Frills, Just Go: Standard Library Only Web Apps

Layman's Guide to Python Built-in Functions

Golang Middleware and DBs - Building SaaS #199

More Go Standard Library - Building SaaS #198

PDF Text Extraction With Python

Go Standard Library App - Building SaaS #197

An Opinionated Introduction to CI/CD

Activation Email Job - Building SaaS #196

Trial Banner Inclusion Tag - Building SaaS #195

Password Resets and Signal Handling - Building SaaS #194

Boosting AI with Python: Using Click, Jinja2, and GPT Libraries

Polish, Debug Toolbar, Email Signals - Building SaaS #193

About, FAQ, and Home Page - Building SaaS #192

Export Journal Feature - Building SaaS #191

Settings and Billing Portal - Building SaaS #190

Importing Content - Building SaaS #189

Why Django and why not Flask?

Flash messages and content encodings - Building SaaS #188

NATS: Connecting Apps Over a Network Easily

Start Polishing - Building SaaS #187

Post-launch Punchlist - Building SaaS #186

Do It Live - Building SaaS #185

Final Pre-live Features - Building SaaS #184

Finish Stripe Integration - Building SaaS #183

Algorithmic Art with Python

Stripe Checkout - Building SaaS #182

Payments Gateway - Building SaaS #181

Design and Stripe - Building SaaS #180

Fun With Scrapy Link Validation on CI

Legal and Stripe - Building SaaS #179

Python, Markdown, and Tailwind: Best Buds!

Sign Up - Building SaaS #178

Tailwind CSS on Python and Heroku - Building SaaS

WhiteNoise For Static Files - Building SaaS

Operations, WhiteNoise, and Tailwind - Building SaaS #177

Saturday stream explorer

Switch an Existing Python Project To Ruff

Message Parsing and Ruff - Building SaaS #176

Parse Inbound Email - Building SaaS #175

Idempotent Jobs - Building SaaS #174

Email Round Trip - Building SaaS #173

Practical AI: HuggingFace Transformers and Diffusers for Beginners

DNS Strikes Back - Building SaaS #172

Deploy to Heroku - Building SaaS #171

SendGrid Inbound - Building SaaS #170

SendGrid Outbound - Building SaaS #169

Deployment Checklist - Building SaaS #168

Practical Business Jinja

Launch Preparation - Building SaaS #167

Sentry Setup - Building SaaS #166

Email Templates - Building SaaS #165

Announcing luatest: A Lua test runner inspired by pytest

Accounts and Email - Building SaaS #164

First Major Model - Building SaaS #163

Python + Upsolver: Simplified Realtime Data Workflows

Finish Signup and CI - Building SaaS #162

New SaaS Signup - Building SaaS #161

New SaaS From Scratch - Building SaaS #160

Python Exercises and Behind the Scenes - Building SaaS #159

Python Exercism Exercises / Template Updates - Building SaaS #158

Web Dev Panel Discussion

Ellen's Alien Game / Display Related / Neovim config - Building SaaS #157

Locomotive Engineer / New Model Field - Building SaaS #156

Locking Down Your Users' Secrets: Django Sessions 101

Cater Waiter, Template Bugs, and Type Fixes - Building SaaS #155

Sync or Async? Unpacking the Mysteries of Django Signals

Time Travel with django-simple-history

Learn Django or Ruby on Rails?

Inventory Management / Custom 404 page / Go gqlgen - Building SaaS #154

Backend Development 101 with Django REST Framework

Neovim setup / Tisbury Treasure Hunt / django-stubs - Building SaaS #153

Gimme a (Type) Hint in Python

Colossal Coaster and Stripe CSP - Building SaaS #152

Learn Python By Example - Ghost Gobble Arcade Game

Blackjack and Bugs - Building SaaS #151

Learn Python By Example - Currency Exchange

Development Cached Templates - Building SaaS #150

Exercism and PDF Page Numbering - Building SaaS #149

How To Add Sentry - Building SaaS #148

Cryptography in Python

Heroku Stack Upgrade - Building SaaS #147

Episode 17 - Accepting Files

JavaScript FormData - Building SaaS #146

Customer Features - Building SaaS #145

Delete Task UX - Building SaaS #144

flake8-bugbear - Building SaaS #143

Finish Teacher Checklist - Building SaaS #142

Teacher Checklist Editing - Building SaaS #141

Distributed System IDs

Brute Force Development

Huge Software Systems

Finding Your Audience for Technical Docs

Authz dilemmas

Announcing django-denied

Extract a New Open Source Package - Building SaaS #140

Teacher Checklist Model - Building SaaS #139

Teacher Checklist Template - Building SaaS #138

Refactoring and New Features - Building SaaS #137

New App In Project - Building SaaS #136

You Don't Need JavaScript

Debugging Tips And Techniques

Brew Install The World - Building SaaS #135

User Requests - Building SaaS #134

S3 FileField - Building SaaS #133

Great Expectations Data Quality Testing

PDF Courses Report - Building SaaS #132

PDF Attendance Report - Building SaaS #131

Lua Log #9: HTTP Parser

PDF Progress Report - Building SaaS #130

Lua Log #8: HTTP Parsing

Security And Django

Lua Log #7: Routing Requests

PDF Debugging - Building SaaS #129

Lua Log #6: LASGI - ASGI in Lua

Form Features and CSS - Building SaaS #128

Upgrade to Tailwind CSS v3 - Building SaaS #127

Lua Log #5: Callbacks to Coroutines

Episode 16 - Setting Your Sites

Lua Log #4: Build a (Terrible) Package

Admin Interface For PDFs - Building SaaS #126

Lua Log #3: Logging Without Logging

Ordering Existing Models - Building SaaS #125

Lua Log #2: Yak Shaving the Ecosystem

Zip Archive HTTP Response - Building SaaS #124

Go Fast With Django

Lua Log #1: Event Loop Adventures

Most Abstract Function First Is Better

PDF Bundle Report - Building SaaS #123

Goals for 2022

Customer UX Feature - Building SaaS #122

Threat Modeling Jurassic Park with Python

Customer Requests - Building SaaS #121

Scheduling Bugs - Building SaaS #120

Command Your App

Working With django-htmx - Building SaaS #119

Bulk Delete Template - Building SaaS #118

Pandas for Data Analysis

Bulk Delete Form - Building SaaS #117

Bulk Delete View - Building SaaS #116

Finish School Break Filtering - Building SaaS #115

Student Filtering UI - Building SaaS #114

User File Use

Episode 15 - User Session Data

School Break Filters - Building SaaS #113

Team Topologies: a review

Episode 14 - Going Live

Making Sense Of Settings

Episode 13 - Does My Site Work?

Per-visitor Data With Sessions

Deploy A Site Live

Test Your Apps

Episode 12 - Success With Static Files

How To Use Htmx In Django

UX Polish - Building SaaS #90

Are Django and Flask Similar?

Customer Feature - Building SaaS #89

Which Django Version Should I Use?

Customer Requests - Building SaaS #88

Squashing Bugs - Building SaaS #87

Episode 11 - Here, There, Middleware

Testing Email Designs - Building SaaS #86

Serving Static Files

Customer Docs - Building SaaS #85

Refactoring Enrollment - Building SaaS #84

Empty States - Building SaaS #83

Middleware Do You Go?

Customer Feedback - Building SaaS #82

How To Set Up Tailwind CSS In Django On Heroku

Finishing Onboarding - Building SaaS #81

Episode 10 - User Auth

Reordering Models - Building SaaS #80

Make A Hugo Static Blog Inside A Django App

WhiteNoise Shenanigans - Building SaaS #79

Create A Form Template - Building SaaS #78

User Authentication

Sending Invites - Building SaaS #77

Episode 9 - Application Examination

Capped Social Network - Building SaaS #76

Make A Landing Page - Building SaaS #75

Hijack To Help Customers

Check Web App Security With Bandit - Building SaaS #74

Anatomy Of An Application

Dynamically Regrouping QuerySets In Templates - Building SaaS #73

From Concept To Live In Two Weeks With Django

Displaying Breaks - Building SaaS #72

Episode 8 - Administering Your App

Custom Form Validation - Building SaaS #71

Predicting The Future - Building SaaS #70

Administer All The Things

Polishing and Usability - Building SaaS #69

Rendering Calendars - Building SaaS #68

Give Me A Break... Day - Building SaaS #67

Docs, Bugs, and Reports - Building SaaS #66

Handle Default Values - Building SaaS #65

Episode 7 - Models and Managers and Querysets, Oh My!

Enrolling Students - Building SaaS #64

Django Testing Toolbox

The Home Stretch - Building SaaS #63

Episode 6 - Where Does the Data Go?

Hackathon App Part 2 - Building SaaS #62

Store Data With Models

Hackathon App - Building SaaS #61

A View From Start To Finish - Building SaaS #60

Designing A View - Building SaaS #59

Bread and Butter Django - Building SaaS #58

Switch A Django Project To Use Pytest - Building SaaS #57

How To Fix A Bug - Building SaaS #56

Episode 5 - How To Use Forms

Remodeling Data Relationships - Building SaaS #55

User Interaction With Forms

Vim 101: Basics of the Vim Text Editor

User Testing Feedback - Building SaaS #54

More Onboarding Goodness - Building SaaS #53

Consistent Onboarding - Building SaaS #52

Onboarding Forms - Building SaaS #51

Episode 4 - Building User Interfaces

Onboarding Continuity - Building SaaS #50

Templates For User Interfaces

Starting the Onboarding Flow - Building SaaS #49

Onboarding - Building SaaS #48

Episode 3 - Views On Django

How To Style Sign Up - Building SaaS #47

Views On Views

A Week At A Time - Building SaaS #46

Templates and Logic - Building SaaS #45

Django Riffs, a podcast for learning Django

Fast Forms With UpdateView - Building SaaS #44

Episode 2 - Enter With URLs

Episode 1 - Get To Know Django

Use Tailwind On A Template - Building SaaS #43

Add Styles To Templates - Building SaaS #42

URLs Lead The Way

User Accounts With django-allauth - Building SaaS #41

Serverless Python And Why You Should Try It Out

From Browser To Django

Make A Custom User Model - Building SaaS #40

A Failed SaaS Postmortem

django-environ and django-debug-toolbar - Building SaaS #39

New Project, Who Dis? - Building SaaS #38

Python Tears Through Mass Spectrometry Data

Lessons From A Failed SaaS - Building SaaS #37

Godot You Want To Make A Videogame

Configurama - Building SaaS #36

Deploying WhiteNoise - Building SaaS #35

Publish to DEV automatically with GitHub Actions

Bring in the WhiteNoise, Bring in Da Funk - Building SaaS #34

Get Out, Git! - Building SaaS #33

Python alternative to Docker

Python Testing 201 with pytest

wal-e Postgres Backups - Building SaaS #32

Celery In A Shiv App - Building SaaS #31

Quick and dirty mock service with Starlette

Ripping Out Node.js - Building SaaS #30

Add Static Assets to Deployment - Building SaaS #29

On Patreon

Webpack and collectstatic in CI - Building SaaS #28

Plug the Shiv App Into Nginx - Building SaaS #27

Using Git and GitHub to safely store your code

Connecting Shiv Apps with Ansible - Building SaaS #26

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

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

Supercharging Vim: Blazing fast search and global replace

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

Upload to S3 with CircleCI orbs - Building SaaS #22

Strategy for developer weight loss

Shiv zipapps and CI - Building SaaS #21

Teaching a kid to code with Pygame Zero

Making a Shiv App - Building SaaS #20

Completing Account Deactivation on Building SaaS

Pip-tools and App Packaging - Building SaaS #19

Completing Account Deactivation - Building SaaS #18

Canceling Stripe Subscriptions - Building SaaS #17

Feature Flags in Action - Building SaaS #16

Supercharging Vim: Navigate files instantly

Python Testing 101 with pytest

Feature Flags with Django Waffle - Building SaaS #15

Ansible Cranked to 11

Ansible Cranked to 11 - Building SaaS #14

Deploying with Ansible - Building SaaS #13

Building SaaS in January

The Sleepy Developer: How Sleep Affects Your Code

Automation aides - Building SaaS #12

Semi-automated tasks - Building SaaS #11

Admin dashboards - Building SaaS #10

Local web development vs Vagrant vs Docker: What’s right for you?

Finishing third party integration - Building SaaS #9

Connecting third party services - Building SaaS #8

Displaying third party data - Building SaaS #7

Django Tutorial Adventure Part 2

Third party integration modeling - Building SaaS #6

Deciphering Python: How to use Abstract Syntax Trees (AST) to understand code

Updating data models - Building SaaS #5

Using a background scheduler - Building SaaS #4

Building SaaS with Python on Twitch

Multiple Stripe plans - Building SaaS #3

Reporting scraped data - Building SaaS #2

Building SaaS with Python and Django #1

Build Native Mobile Apps with Python (BeeWare)

Consistent Python code with Black

A tale of two site generators

New Job: Doctor on Demand

Full Health Developer Launch

RFNM - Request For New Maintainer

Developer Health Survey

Doing code review

Data science in Python

Supercharging Vim: Instant testing

Supercharging Vim: Using plugins

Scraping the web with Scrapy

Web frameworks shootout

A NES for Christmas

Pipfile and pipenv

HTTPS made simple with Netlify

No nitpicking in code reviews

Using Pipfile for fun and profit

Feature flags and waffles

Pythonic code: leveraging packages

Aphantasia

Pythonic code: using the standard library

Pythonic code: built-in functions

Pythonic code: the property decorator

Pythonic code: the with statement

Pythonic code: the list comprehension

Semantic UI in Ember

The Pragmatic Programmer revisited

12-factor Django apps

Open Graph, X cards, and plugins... Oh My!

Cure for Imposter Syndrome

PostgreSQL text search in Django

Rollbar monitoring of Celery in a Django app

A currentUser service for Ember with JWT

The necessity of software abstraction

2 Critical Python packaging tools

Sideload JSON API resources in Django

Monitor Ember app errors with Rollbar

handroll, sitemaps, and robots.txt

Using Segment with Ember.js

Using Brunch for JavaScript work

Reading through the Python standard library

Ship your requirements.txt

We're all ambidextrous

dotfiles: Hone your software tools

Highlighting new file formats with Pygments

Extending handroll for fun

Oh, my shell? Oh My Zsh

Inject JavaScript with PhantomJS to inspect websites

Connect Python objects to blinker signals

Toying with Statsd and Graphite

A complete guide to i18n in Python

A "simple" D3.js area chart

Laziness is motivating

handroll 1.1 released

handroll: a simple website generator

tappity tap TAP tappy

Advanced Rails

Patterns of Enterprise Application Architecture

Test your packaging

MarkWiki 1.3 released

Ruby on Rails Tutorial

Dreaming in code

MarkWiki 1.2 released... now actually somewhat useful

Java: a bad choice for FOSS

ØMQ: A dynamic book with surprises

Office Zen

When you're feeling all TAPped out

A Layman's walk through Code

Should you cp from copywriters?

It's fun -> ok!

New website and server

Java, Eclipse, and Maven altogether

Pretty Perl and maintainability

JavaScript has “Good Parts”!? Yes, it does.

Perl Testing: A Developer’s Notebook

Into the rabbit hole

Code cleanup with Pylint

Test Driven Development woes

print 'Hello World!'

About

Book Recommendations

Most Popular

Patreon Superheroes

Privacy Policy

What I Use as a Developer