atlas news
    
Matt Layman : Python
21  mars     00h00
Post-launch Punchlist - Building SaaS with Python and Django #186
   In this episode, we had a bunch of issues to resolve post launch. I set the code that causes trials to expire, made updates to who receives prompt emails, and added some polish to the sign up process and interface to make it clear what will happen in the flow. After those modifications, we worked...
08  mars     00h00
Do It Live - Building SaaS with Python and Django #185
   In this episode, we deployed all our user setup and Stripe configuration change to the live site and tested the new flows end to end. Along the way, we found a bug in djstripe as well as some final bugs in the JourneyInbox configuration that prevented things from working. This is why you test
07  mars     00h00
Final Pre-live Features - Building SaaS with Python and Django #184
   In this episode, we completed the final features needed to get the site open for others to sign up. This included some dynamic limiting of the number of people allowed to sign up. We also had to add the template styling for the login page.
22  février     00h00
Finish Stripe Integration - Building SaaS with Python and Django #183
   In this episode, we completed the Stripe integration. I added all the necessary test code, incorporated the webhook for handling account activation, and wrote the view that Stripe needed to redirect to on successful signup.
15  février     00h00
Algorithmic Art with Python
   In this talk, we’re going to start from nothing and build out our own tools for making art in Python, no AI needed We’ll show how Python’s expressiveness allows us to describe graphics elegantly and use that to make some unique art programmatically.
08  février     00h00
Stripe Checkout - Building SaaS with Python and Django #182
   In this episode, we did work to get the Stripe checkout session going. We set up Stripe Product and Price objects to get the subscription plan ready and got the Stripe checkout session working mostly end to end
25  janvier     00h00
Payments Gateway - Building SaaS with Python and Django#181
   In this episode, we continued on the Stripe integration. I worked on a new payments gateway interface to access the Stripe APIs needed for creating a check out session. We hit some bumps along the way because of djstripe’s new preference for putting the Stripe keys into the database exclusively.
18  janvier     00h00
Design and Stripe - Building SaaS with Python and Django #180
   In this episode, I started with a plan to work on Stripe checkout, but realized that I needed to come up with a better plan and also improve the base template of the app. We ended up doing more design work than working with Stripe, but we ended the stream with a solid plan of what to do next.
06  janvier     00h00
Fun With Scrapy Link Validation on CI
   Here’s my scenario: I have a static site generator that is building HTML pages for a community project that I’m working on. How can I make sure, automatically, that all the links to other internal pages within the site continue to work In this article, I’ll show you how I managed to do that using...
04  janvier     00h00
Legal and Stripe - Building SaaS with Python and Django #179
   In this episode, we took care of the legal obligations of the site by setting up Terms of Service and a Privacy Policy page. Then we moved on to the next portion of signup, which is to configure Stripe to create customers and prepare, ultimately, to accept subscription payments.
30  décembre     00h00
Python, Markdown, and Tailwind: Best Buds
   You are rendering content with Python and want to show some Markdown, but you style your pages with Tailwind. With Tailwind’s built in reset, how can you style the tags of your rendered HTML that come from Markdown This article shows how that can be done. Specifically, I am assuming that you are...
21  décembre     00h00
Sign Up - Building SaaS with Python and Django #178
   In this episode, we did some work on the sign up template. In the process, we added some base template styling, talked about branding, and considered the other elements that are required before we can turn on sign up for others. I also cover waffle as a feature flag tool.
11  décembre     00h00
Tailwind CSS on Python and Heroku - Building SaaS
   Tailwind CSS is a fantastic tool for making CSS easy to use on your webapps. On the video, I added Tailwind CSS to my Django app and showed how to use it and deploy it to Heroku which required some extra configuration for JavaScript support .
09  décembre     00h00
WhiteNoise For Static Files - Building SaaS
   This video is all about adding the popular WhiteNoise package into my Django app to serve static files e.g., CSS, JavaScript, and images directly from the app. I walk through the process from start to finish and deploy it live to show how things work.
07  décembre     00h00
Operations, WhiteNoise, and Tailwind - Building SaaS with Python and Django #177
   In this episode, I worked through a couple of issues discovered after having the site be operational for real use. From there, we moved onto some fundamental technology and integrated WhiteNoise to handle static files for the application. After adding WhiteNoise, we hooked up Tailwind CSS.
03  décembre     00h00
Saturday stream explorer
   I was looking for new thing to do to improve my stream. This is mostly me goofing off.
01  décembre     00h00
Switch an Existing Python Project To Ruff
   On a recent Building SaaS stream, we switched from using flake , Black, isort, and bandit completely over to a single tool, Ruff. Watch an experienced Pythonista work through many of the options and do a full conversion to this powerful tool
30  novembre     00h00
Message Parsing and Ruff - Building SaaS with Python and Django #176
   In this episode, we finished off the core portion of the application by parsing entries out of the messages sent back by SendGrid. We set up the Heroku Scheduler to start the daily flow of emails to get the system started. After completing that, I set up the project to use Ruff instead of the...
16  novembre     00h00
Parse Inbound Email - Building SaaS with Python and Django #175
   In this episode, we switched to the inbound side and parsed an email to transform it into a journal entry. This caused us to look into the dateutil library and look at Python’s standard email module to use EmailMessage.
02  novembre     00h00
Idempotent Jobs - Building SaaS with Python and Django #174
   In this episode, we cleaned up the email sending job. I had to make some changes based on some discoveries that I made while researching how to track responses and associate the journal entries back to the user. While doing this clean up, we added a new Prompt model to make the email sending job...
19  octobre     00h00
Email Round Trip - Building SaaS with Python and Django #173
   In this episode, we took advantage of having all the DNS configuration complete and tried to find the path to connect the outgoing prompt email to the incoming journal entry from a user. We did this with some old school print debugging and logging on production to see exactly what data is provided...
12  octobre     00h00
Practical AI: HuggingFace Transformers and Diffusers for Beginners
   This presentation provides a straightforward overview of the HuggingFace Transformers and Diffusers libraries. Aimed at those without a deep understanding of AI or ML, we’ll focus on practical, hands on applications. We conclude by setting up a Flask app that generates AI images, demonstrating how...
05  octobre     00h00
DNS Strikes Back - Building SaaS with Python and Django #172
   In this episode, we returned to our DNS configuration from the previous stream and worked on testing email from end to end on the production site. On the stream, we spent a lot of time looking through SendGrid documentation, digging into layers of DNS, and troubleshooting the challenges that can...
28  septembre     00h00
Deploy to Heroku - Building SaaS with Python and Django #171
   In this episode, we did the work to deploy the site to Heroku to make the site live. We configured the production site, fixed some missing settings, and connected to the relevant DNS configuration.
07  septembre     00h00
SendGrid Inbound - Building SaaS with Python and Django #170
   In this episode, we worked on the inbound hook to receive email responses from SendGrid using the service’s Inbound Parse feature. We worked through the configuration and addressed the security concerns with opening up a public webhook.
24  août     00h00
SendGrid Outbound - Building SaaS with Python and Django #169
   In this episode, we took another step closer to deploying the service online. The primary goal was to make sure that email sending works. I spent a lot of time explaining email configuration and showing exactly how to wire up SendGrid to Cloudflare to do Domain Authentication that permits email...
17  août     00h00
Deployment Checklist - Building SaaS with Python and Django #168
   In this episode, I added the deployment checklist and improved the security of the app. Then we moved to work to set up the database to use DATABASE URL and prepare to use Postgres.
10  août     00h00
Practical Business Jinja
   Inspired by the Practical Business Python blog this Python Frederick meetup will cover how to automate document creation using Python docx and Jinja.
03  août     00h00
Launch Preparation - Building SaaS with Python and Django #167
   In this episode, I started working through the set of issues that I previously identified as necessary to complete before launching the service on Heroku. We add history tracking, soft deletion for the user model, and integration with SendGrid.
27  juillet     00h00
Sentry Setup - Building SaaS with Python and Django #166
   In this episode, I finished the email sending job, then determined which issues will be needed before launching the product. Once we crafted the short list, I added an integration with Sentry.
20  juillet     00h00
Email Templates - Building SaaS with Python and Django #165
   In this episode, we added the prompt email that will be the primary way of connecting to users for our email based journaling service. I spent a fair amount of time thinking about copy writing to craft a compelling email that will resonate with users. Also, I made a bunch of silly mistakes and to...
17  juillet     00h00
Announcing luatest: A Lua test runner inspired by pytest
   I’m pleased to announce a new test runner for the Lua programming language: luatest. luatest draws deep inspiration from pytest in the Python ecosystem. Why should you care You’re tired of BDD style test runners in Lua for your projects. You want a fast, no nonsense test runner. The internet loves...
29  juin     00h00
Accounts and Email - Building SaaS with Python and Django #164
   In this episode, I planned to do the work of sending email prompts for the journal to users. Along the path, we realized that the Account model was missing, so I stopped to build that out before we could proceed. By the end of the stream, we had a working background job that would send email and...
22  juin     00h00
First Major Model - Building SaaS with Python and Django #163
   In this episode, we got to work on the core modeling for the application. I started by adding some visualization tooling to see the models in the system, then got to modeling of the primary Entry model that will be used throughout the app. Along the way, we set up the Django admin and did some...
17  juin     00h00
Python Upsolver: Simplified Realtime Data Workflows
   One of the powerful things about Python is its ability to connect disparate tools into one common integrated development experience. In this talk, we’ll explore how to create and run a near real time pipeline where we consume events from a Kafka topic and transform the data before landing them in...
08  juin     00h00
Finish Signup and CI - Building SaaS with Python and Django #162
   In this episode, I continued on the signup flows that started in the previous stream. We configured the email backend and verified that the end to end signup flow worked. Then I set up the templates system and added the initial templates for the confirmation email the index view of the whole site....
01  juin     00h00
New SaaS Signup - Building SaaS with Python and Django #161
   In this episode, we dug into the first portion of the journey SaaS. I acquired the domain name of journeyinbox.com for this service. That service is not live yet. We started at the beginning to set up users and sign up features.
18  mai     00h00
New SaaS From Scratch - Building SaaS with Python and Django #160
   In this episode, I started a brand new SaaS project from scratch. This new SaaS, a journal service that will be at journeyinbox.com, will allow users to journal via email and be provided with past posts as a engaging prompt.
27  avril     00h00
Python Exercises and Behind the Scenes - Building SaaS with Python and Django #159
   In this episode, we covered more intro Python exercises from Exercism. Then I did some behind the scenes work to make some improvements to my stream content.
20  avril     00h00
Python Exercism Exercises Template Updates - Building SaaS with Python and Django #158
   In this episode, I went through a few quick exercises on Exercism in the Python track. Then I returned to the features I’m developing that displays course resources connected to tasks in my homeschool app.
14  avril     00h00
Web Dev Panel Discussion
   What is your burning web development question That was the request for April’s event in We had a panel of web developers who were there to discuss web development questions and talk through the future of web development.
30  mars     00h00
Ellen’s Alien Game Display Related Neovim config - Building SaaS with Python and Django #157
   In this episode, I did another Exercism problem in Python that focused on Python classes. After the exercise, I deployed my model change from last stream and discussed deployment strategy. Then we worked on some of the display pieces for the new feature. Once the feature was added, I discussed...
23  mars     00h00
Locomotive Engineer New Model Field - Building SaaS with Python and Django #156
   In this episode, I did another Exercism problem in Python that focused on Python packing and unpacking of arguments. Once the exercise was complete, I started on a new feature with the homeschool app. We added a new model field in preparation for the changes. After that, I removed django stubs...
18  mars     00h00
Locking Down Your Users’ Secrets: Django Sessions 101
   Django is a powerful and popular web framework that makes it easy to build robust and secure web applications. One of the key features of Django is its ability to manage user sessions, which are essential for many web applications. However, you may be wondering if Django sessions are secure. In...
16  mars     00h00
Cater Waiter, Template Bugs, and Type Fixes - Building SaaS with Python and Django #155
   In this episode, I did another Exercism problem in Python that dug into Python sets. Once the exercise was complete, we went back to the issue list. I debugged and fixed a template error, the spent time improving types with my Django app.
15  mars     00h00
Sync or Async? Unpacking the Mysteries of Django Signals
   Django is a popular web framework for Python developers, known for its robustness, flexibility, and security. One of the features that make Django powerful is its signal system. Signals allow developers to trigger certain actions when specific events occur, such as when a model is saved or deleted....
14  mars     00h00
Time Travel with django-simple-history
   If you’re interested in Django development, you might have come across the django simple history package. It’s a great tool that can help you keep track of changes made to your models over time. In this article, we’ll take a closer look at django simple history and how it can benefit your projects....
11  mars     00h00
Learn Django or Ruby on Rails?
   I got a question from a patron on Patreon. The question is a common one, so I thought I’d share it along with my response. Was there a reason why you picked the Django for your web development Did you consider RoR Does it matter which stack I use at the end of the day My primary reason for...
02  mars     00h00
Inventory Management Custom 404 page Go gqlgen - Building SaaS #154
   In this episode, I did another Exercism problem in Python which focused on working with dictionaries. Once the exercise was complete, we worked on the homeschool app and created a custom page so that Django would render something beyond a plain page. After working on Django, I did something...
14  février     00h00
Backend Development 101 with Django REST Framework
   If you’re familiar with Python, you’ve most certainly heard of Django, but may not know what it is used for and why people like it so much. We will first run through a ’backend development ’ crash course, then talk about Django’s take on backend development and what Django REST Framework...