<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Merdas369</title>
    <description>The latest articles on DEV Community by Merdas369 (@merdas369).</description>
    <link>https://dev.to/merdas369</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3962549%2Ff0f9e2d5-2f13-4dee-89d9-8f1d631e37a4.png</url>
      <title>DEV Community: Merdas369</title>
      <link>https://dev.to/merdas369</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/merdas369"/>
    <language>en</language>
    <item>
      <title>🚀 Why I Love Building Modern Web Apps with Django + HTMX + Alpine.js</title>
      <dc:creator>Merdas369</dc:creator>
      <pubDate>Sun, 07 Jun 2026 07:26:06 +0000</pubDate>
      <link>https://dev.to/merdas369/why-i-love-building-modern-web-apps-with-django-htmx-alpinejs-26mo</link>
      <guid>https://dev.to/merdas369/why-i-love-building-modern-web-apps-with-django-htmx-alpinejs-26mo</guid>
      <description>&lt;p&gt;Web development has become very powerful, but also very complicated.&lt;/p&gt;

&lt;p&gt;Today many projects start with a frontend framework, API endpoints, state management, client routing, build tools, and many packages before even building the real product 😅&lt;/p&gt;

&lt;p&gt;Sometimes I ask myself:&lt;/p&gt;

&lt;p&gt;"Do I really need all of this just to create a fast and interactive website?"&lt;/p&gt;

&lt;p&gt;For me, the answer is often no.&lt;/p&gt;

&lt;p&gt;Recently I have been building projects with Django + HTMX + Alpine.js, and this stack feels refreshingly simple. It lets me create modern applications quickly without carrying the complexity of a large SPA.&lt;/p&gt;




&lt;p&gt;⚡ Development becomes much faster&lt;/p&gt;

&lt;p&gt;The biggest thing I noticed is speed.&lt;/p&gt;

&lt;p&gt;Not website speed only.&lt;/p&gt;

&lt;p&gt;Developer speed.&lt;/p&gt;

&lt;p&gt;Instead of creating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend project&lt;/li&gt;
&lt;li&gt;Backend project&lt;/li&gt;
&lt;li&gt;API endpoints&lt;/li&gt;
&lt;li&gt;Authentication logic in multiple places&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;Data synchronization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I can work inside one application.&lt;/p&gt;

&lt;p&gt;Django handles the backend.&lt;/p&gt;

&lt;p&gt;HTMX handles dynamic requests.&lt;/p&gt;

&lt;p&gt;Alpine.js handles small frontend interactions.&lt;/p&gt;

&lt;p&gt;Everything works together naturally.&lt;/p&gt;

&lt;p&gt;Less setup.&lt;/p&gt;

&lt;p&gt;Less code.&lt;/p&gt;

&lt;p&gt;Less headaches 😄&lt;/p&gt;




&lt;p&gt;🎯 HTMX makes HTML fun again&lt;/p&gt;

&lt;p&gt;HTMX feels almost magical.&lt;/p&gt;

&lt;p&gt;You can create interactions directly inside HTML.&lt;/p&gt;

&lt;p&gt;Instead of writing many JavaScript functions, fetching data manually, and updating elements yourself, you simply add attributes.&lt;/p&gt;

&lt;p&gt;Something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt;
    &lt;span class="na"&gt;hx-post=&lt;/span&gt;&lt;span class="s"&gt;"/like-post/"&lt;/span&gt;
    &lt;span class="na"&gt;hx-target=&lt;/span&gt;&lt;span class="s"&gt;"#likes"&lt;/span&gt;
    &lt;span class="na"&gt;hx-swap=&lt;/span&gt;&lt;span class="s"&gt;"innerHTML"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    ❤️ Like
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is it.&lt;/p&gt;

&lt;p&gt;Click the button.&lt;/p&gt;

&lt;p&gt;A request is sent.&lt;/p&gt;

&lt;p&gt;The server responds.&lt;/p&gt;

&lt;p&gt;The page updates automatically.&lt;/p&gt;

&lt;p&gt;No large JavaScript files.&lt;/p&gt;

&lt;p&gt;No complex state management.&lt;/p&gt;

&lt;p&gt;No API calls written manually.&lt;/p&gt;

&lt;p&gt;HTMX turns HTML into something much more powerful.&lt;/p&gt;




&lt;p&gt;✨ Alpine.js keeps things simple&lt;/p&gt;

&lt;p&gt;Sometimes we still need small interactions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opening modals&lt;/li&gt;
&lt;li&gt;Dropdown menus&lt;/li&gt;
&lt;li&gt;Tabs&lt;/li&gt;
&lt;li&gt;Toggles&lt;/li&gt;
&lt;li&gt;Showing and hiding elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For these situations, Alpine.js is perfect.&lt;/p&gt;

&lt;p&gt;You can add behavior directly in HTML.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;x-data=&lt;/span&gt;&lt;span class="s"&gt;"{ open: false }"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click=&lt;/span&gt;&lt;span class="s"&gt;"open=!open"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        Menu
    &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;x-show=&lt;/span&gt;&lt;span class="s"&gt;"open"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        Content here
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Very small.&lt;/p&gt;

&lt;p&gt;Very readable.&lt;/p&gt;

&lt;p&gt;Very easy.&lt;/p&gt;

&lt;p&gt;Alpine.js feels like adding superpowers to HTML without building an entire frontend application.&lt;/p&gt;




&lt;p&gt;🔒 Django already gives great security&lt;/p&gt;

&lt;p&gt;Security is something people sometimes forget during development.&lt;/p&gt;

&lt;p&gt;One thing I like about Django is that many security features already exist out of the box.&lt;/p&gt;

&lt;p&gt;Django helps with:&lt;/p&gt;

&lt;p&gt;✅ CSRF protection&lt;/p&gt;

&lt;p&gt;✅ SQL injection protection&lt;/p&gt;

&lt;p&gt;✅ Password hashing&lt;/p&gt;

&lt;p&gt;✅ Authentication system&lt;/p&gt;

&lt;p&gt;✅ Session management&lt;/p&gt;

&lt;p&gt;✅ Security middleware&lt;/p&gt;

&lt;p&gt;Instead of installing many packages and configuring everything manually, Django already gives strong foundations.&lt;/p&gt;

&lt;p&gt;This means I spend more time building features and less time worrying about basic security.&lt;/p&gt;




&lt;p&gt;🌍 Modern apps without SPA complexity&lt;/p&gt;

&lt;p&gt;Many people think modern applications must be SPAs.&lt;/p&gt;

&lt;p&gt;But modern user experience is not only about using huge frontend frameworks.&lt;/p&gt;

&lt;p&gt;Users want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast pages&lt;/li&gt;
&lt;li&gt;Smooth interactions&lt;/li&gt;
&lt;li&gt;Responsive interfaces&lt;/li&gt;
&lt;li&gt;Good user experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Django + HTMX + Alpine.js can provide all of that.&lt;/p&gt;

&lt;p&gt;You can build:&lt;/p&gt;

&lt;p&gt;📋 Dashboards&lt;/p&gt;

&lt;p&gt;🛒 E-commerce websites&lt;/p&gt;

&lt;p&gt;💬 Chat systems&lt;/p&gt;

&lt;p&gt;📊 Admin panels&lt;/p&gt;

&lt;p&gt;📝 Blog platforms&lt;/p&gt;

&lt;p&gt;🚀 SaaS applications&lt;/p&gt;

&lt;p&gt;And you can do this without creating API layers for everything.&lt;/p&gt;

&lt;p&gt;Without complex frontend architecture.&lt;/p&gt;

&lt;p&gt;Without sending large amounts of JavaScript to the browser.&lt;/p&gt;




&lt;p&gt;❤️ Why I enjoy this stack&lt;/p&gt;

&lt;p&gt;For me, this stack feels closer to what web development was always supposed to be:&lt;/p&gt;

&lt;p&gt;Build things quickly.&lt;/p&gt;

&lt;p&gt;Keep things simple.&lt;/p&gt;

&lt;p&gt;Ship products faster.&lt;/p&gt;

&lt;p&gt;Focus on features instead of fighting tooling.&lt;/p&gt;

&lt;p&gt;Sometimes simpler really is better.&lt;/p&gt;

&lt;p&gt;Maybe we don't need to make every website more complicated than it needs to be 😄&lt;/p&gt;

&lt;p&gt;What stack are you enjoying these days?&lt;/p&gt;

</description>
      <category>django</category>
      <category>productivity</category>
      <category>python</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
