Jonathan Adly talks about building a gift giving service with Django and Python. It's hosted on Heroku.

In this episode of Running in Production, Jonathan Adly goes over building a
gift giving service with Django and Python. It’s hosted on Heroku’s hobby tier
and has been up and running since November 2020.

Jonathan talks about shipping his first app, using Celery for background jobs,
handling non-standard payment patterns with Stripe, not getting caught up with
what everyone is saying to use for tech choices and trying to develop features
based on using the app as a customer.

Topics Include

3:55 – With no prior programming experience an MVP was shipped in 6 part time months
6:25 – Motivation for choosing Django and Python
9:02 – Gift selection involves using a 3rd party API to provide this feature
10:02 – A lot of work is done with Celery, such as scheduling future gifts
12:09 – It’s mostly using Django templates with sprinkles of vanilla JavaScript
13:44 – Dealing with non-standard payment use cases with Stripe was a challenge
17:34 – It really is vanilla JavaScript with Halfmoon for the CSS
18:32 – A few Python and Django libraries that helped move things along
20:28 – PostgreSQL is the main database and Docker is being used too
23:52 – Switching from SendGrid to AWS’ SES for sending emails out
25:10 – Why Heroku was picked to host the application and using it with Docker
28:31 – Using Sentry for error reporting and Uptime Robot for health checks
30:57 – The deployment process from development to production
32:18 – How Stripe is being tested in development and database backups
36:14 – Best tips? Keep things simple and develop your app through your customer’s eyes
39:37 – You can find Jonathan on Twitter and check out https://joyful.gifts

Links

📄 References

https://openai.com/
https://www.gethalfmoon.com/docs/introduction/
https://diveintodocker.com

⚙️ Tech Stack

































































































































































































































































































































































































django →



























































































































































python →



















































































































































































































































































































































































































































































docker →



















































































































































































































































































































































































































































































































































































































heroku →



































































































































































































































































































































































































































































































































































































namecheap →

















































































































































































































































































































































































































































































































































































































































postgres →

























































































































































































































































































































































































































































































































































redis →

























































































































































































































sentry →



































































































































































































































































































































































ses →



































































































































































































































































































































































































































































































































































































































































































































































































stripe →



































































































































uptime-robot →



























































































































































































































































































































































































































































































🛠 Libraries Used

https://github.com/dj-stripe/dj-stripe
https://github.com/pennersr/django-allauth
https://github.com/python-pillow/Pillow
https://github.com/furious-luke/django-address
https://gunicorn.org/

Support the Show

This episode does not have a sponsor and this podcast is a labor of love. If
you want to support the show, the best way to do it is to purchase one of my
courses or suggest one to a friend.


Dive into Docker is a video course that takes you from not knowing what Docker is
to being able to confidently use Docker and Docker Compose for your own apps.
Long gone are the days of "but it works on my machine!". A bunch of follow
along labs are included.


Build a SAAS App with Flask is a video course where we build a real
world SAAS app that accepts payments, has a custom admin, includes high test
coverage and goes over how to implement and apply 50+ common web app features.
There's over 20+ hours of video.

Twitter Mentions