Andy Ide goes over building a horse SAAS app with Django and Python. It's hosted on a single Linode server.

In this episode of Running in Production, Andy Ide goes over building a
SAAS app for horses with Django and Python. It’s hosted on a single Linode
server and has been running in production since May 2021.

Andy talks about learning Django while building his app, using Django Unicorn,
creating a Django monolith that’s broken up with Django apps, outsourcing
setting up a server, the importance of having a good testing team and more.

Andy was kind enough to give listeners of this podcast 20% off for life if you
use promo code RUNNING20 when signing up, that
includes signing up for free since it carries over to a paid plan.

Topics Include

6:11 – About 60ish users signed up about a month after launching
8:34 – The process of learning Django while building this app
11:29 – Using the Django admin and a bunch of other useful packages
14:34 – Django Unicorn is being used for interactive bits w/o having to write a lot of JS
18:34 – It’s a Django monolithic with a bunch of Django apps
22:27 – How Django Rest Framework is being used for the reporting part of the app
28:46 – The app is mostly Django rendered templates with sprinkles of JS and Unicorn
34:00 – Stripe is handling payments, their API and docs are great
41:02 – (1) $10 / month Linode server hosts everything with 1 CPU core and 2GB of memory
45:25 – Picking the most recent version of Ubuntu and keeping deploys simple
52:05 – Using Cloudflare for DNS and using their paid plan
56:54 – Running tests locally before deploying it
59:12 – Handling backups with Django DB Backup and Linode’s backup service
1:02:12 – Using Sentry for exception reporting, viewing logs and Uptime Robot
1:08:50 – Best tips? Install Sentry and have a good testing team
1:13:37 – Check out HorseRecords on Facebook and Andy’s Django Blog

Links

📄 References

https://en.wikipedia.org/wiki/Stud_farm
https://djangochat.com/
https://djangoandy.com/2021/05/14/integrating-django-rest-framework-and-retool/
https://djangoandy.com/2021/05/02/what-i-learned-in-the-first-2-days-of-launching-my-saas-startup/

⚙️ Tech Stack

































































































































































































































































































































































































django →



























































































































































python →



























































































































































































































































































































































































































































































































cloudflare →















































































































































































































































































































































































































































































































































jquery →





































































































































































































































































































































































































































































































































































































































































































































































































































linode →







































































































































































































































































































































































































nginx →





































































































































































































































































































































































































































































































































postgres →

























































































































































































































































































































































































































































































retool →

























































































































































































































































































sentry →





































































































































































































































































































































































































































































































































































































































































stripe →





































































































































































































































systemd →











































































































































































































































































































































































































































































































































































































































































































































































































































































ubuntu →





















uptime-robot →



























































































































































































































































































































































































































































































🛠 Libraries Used

https://github.com/pennersr/django-allauth
https://github.com/select2/select2
https://www.django-rest-framework.org/
https://github.com/matthewwithanm/django-imagekit
https://github.com/dmpayton/django-admin-honeypot
https://github.com/django-hijack/django-hijack
https://www.django-unicorn.com/
https://github.com/yourlabs/django-autocomplete-light
https://github.com/benoitc/gunicorn
https://github.com/pypa/pipenv
https://github.com/django-dbbackup/django-dbbackup

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.