My name is Michael Yin, I am a full stack developer who primarily uses Django and modern frontend technologies to build web applications. I am also a tech writer who has published courses and ebooks on Wagtail CMS and Celery on platforms such as testdriven.io and leanpub.com.
Unlike many Django developers who prefer to choose HTMX + Alpine.js as frontend solution, in the past years, I have been using Hotwire (Ruby on Rails official frontend solution) with Django to build web apps, and I am surprised with its productivity.
This experience has motivated me to write a blog post to inspire and assist other Django developers seeking a reliable frontend solution.
If you never used Hotwire with Django before, I strongly recommended you to check this post, you may find it to be a valuable and enjoyable discovery.
After reading it, you will have a better understanding of what Hotwire is, how it functions, and why integrating it with Django can help you expedite the development of your SaaS.
Hi @michael-yin Do you still use Turbo with Django? I really appreciate you promoting this approach and building all those integration packages. I wish more Django developers would look in this direction instead of defaulting to HTMX.
Thanks for sharing your experience! Using Hotwire with Django is an interesting approach — it’s not the most common pairing, but I can see why it would boost productivity. The way Hotwire handles partial updates and real-time interactivity without writing tons of JavaScript is really appealing, especially for SaaS projects where speed and maintainability matter.
I like that your post focuses on helping Django developers understand Hotwire from the ground up. For those of us accustomed to HTMX + Alpine.js, seeing a real-world example with Hotwire can definitely broaden perspective and give ideas for cleaner, more reactive interfaces without the usual JS overhead.
I’m looking forward to reading your blog — it sounds like a practical resource for anyone wanting to speed up development while keeping a Django-first stack.