<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab" -->

---
title: Removing React.js from the codebase and adapting HTMX...
description: The Misago forum project is moving away from its current hybrid architecture where pages are rendered twice — once by Django templates and again by React.js —...
canonical: https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Removing React.js from the codebase and adapting HTMX for UI interactivity | daily.dev
og:description: The Misago forum project is moving away from its current hybrid architecture where pages are rendered twice — once by Django templates and again by React.js —...
og:url: https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab
og:image: https://api.daily.dev/og/posts/PhHZbmMaB.png
og:image:alt: Removing React.js from the codebase and adapting HTMX for UI interactivity
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Removing React.js from the codebase and adapting HTMX for UI interactivity

**[Hacker News](https://daily.dev/sources/hn)** · 4 min read · 2 upvotes · 1 comments

## Summary

The Misago forum project is moving away from its current hybrid architecture where pages are rendered twice — once by Django templates and again by React.js — toward a simpler server-rendered approach using HTMX. The current setup causes duplication of templates, API endpoints, translations, and plugin logic, while also hurting performance on slower devices. HTMX allows specific page regions to be dynamically updated with server-rendered HTML fragments on user interaction, eliminating the need for JSON serialization, dedicated APIs, and React components. The author draws parallels to jQuery's $.get() and Rails Turbolinks, arguing this simpler model is well-suited for forum software where interactivity is isolated to specific page areas.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://misago-project.org/t/removing-reactjs-from-the-codebase-and-adapting-htmx-for-ui-interactivity/1267>

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 67 comments across hackernews (as of 2026-07-27).

**TL;DR:** The community is sharply divided: HTMX advocates argue it's simpler, faster for server-rendered CRUD apps, and a natural fit for hypermedia-driven development, while skeptics (led by one very active commenter) dismiss it as a rehash of Angular 1.0 that ignores two decades of frontend learnings and will fail at scale.

**Sentiment:** 35% positive · 30% mixed · 35% skeptical

**The case for**

- HTMX is simpler and more maintainable for typical CRUD/server-rendered apps, with straightforward HTML fragment caching.
- Server-side rendering with HTMX can yield significantly better Lighthouse/performance scores than React SPAs, especially on low-end mobile devices.
- HTMX can support SPA-like interactivity including PWAs, SSE-based live updates, and even real-time messaging apps without heavy client-side JS.
- The core ideas behind HTMX are being proposed for standardization into the HTML spec via the Triptych Project.

**The pushback**

- HTMX is seen by some as a second attempt at Angular 1.0's attribute-driven approach, which historically struggled with complex, high-frequency UIs and state management.
- State synchronization (e.g., chat messages, notifications) is fundamentally hard and is where React-like reconciliation loops provide systematic value that HTMX lacks.
- Generating HTML on the server for every interaction adds backend cost at scale (>10k req/s), unlike a cached JS bundle served from a CDN.
- Applications often start simple and grow; choosing HTMX may create painful migration costs as complexity increases.

**By community**

- hackernews (heated): A prolonged, heated debate between one persistent React defender and multiple HTMX proponents, with no clear consensus and both sides making substantive but often talking-past-each-other arguments.

**Hottest debate:** Whether HTMX is fundamentally analogous to Angular 1.0 and will fail at scale due to poor state management, or whether it is a genuinely different and appropriate tool for the majority of web apps that aren't highly interactive SPAs.

**Open questions**

- How has the actual migration to HTMX (referenced as happening ~3 years ago) panned out in practice — what were the measured performance and maintainability outcomes?
- At what traffic/complexity threshold does HTMX's server-side HTML generation become a net cost compared to a CDN-cached JS bundle?
- Can HTMX realistically handle complex real-time state synchronization (notifications, chat) without devolving into the same problems as Angular 1.0?

**Highlights**

> > The only properly dynamic SPA-like feature in a forum I can think of is a WYSIWYG editor, but that you can build as a web component. Maybe a flexible highlight and quote system would be a bit difficult in pure HTMX (think of the comment functionality in Medium posts). So you'd want to build a few things in client side JS. But the main experience could very well be built with HTMX. That's how interactivity has always worked. Server-side render everything + ship interactivity via js on top of it. I feel like most of the web developers forgot that React/Vue/etc solve a specific problem: single-page application. This is a very narrow and specific problem: navigating from page to page not causing full page reloads. But the web has changed since SPAs were needed in major ways: 1. the average device and connection is insanely faster than 10-15 years ago. Receiving and rendering content is not the problem it once was in the age of 2g connections and limited hardware mobile devices. Even the very low end phone from few years ago has nowadays 0 problems loading and parsing few hundred kbs of html and js. 2. Web technologies moved at all levels. Server technologies, cloud ones, browser ones. React and company are solving problems that barely belong to the modern web. In short: today you can have an app-like, spa-like experience even out of fully server-side rendered applications. While also benefitting from shipping much less code to the client. There's a very minimal amount of websites and applications out there that benefit, and aren't crippled by these rendering libraries: those that vastly leverage offline capabilities of the platform and want to keep working regardless of internet being available. I'm talking the notions and linears. But bar from those, still working with this React slop is just not good for the user. Even multi billion companies hiring leetcode ninjas can't get acceptable user experience and performance out of those libraries, and it's not a coincidence: they keep forcing the wrong tool for the wrong problem. They keep living in 2018 and at the end of the day the only excuse for those react/angular+tailwind slop is that there's an entire generation of developers that doesn't know anything else and has long lost any proper engineering skill (if there is any) in finding the right tool for the problem. This is a familiarity issue, not sound technical decisions. It's the "you can't go wrong with oracle/mysql/ibm", but actually you can, and it shows. What's worse: it's incredibly cheap to experiment different solutions and approaches via LLMs in 2026, but people keep slopping the same monstrosities.
> — [epolanski on hackernews · 3 comments](https://news.ycombinator.com/item?id=49070083)

> Angular being basically the same HTMX is nonsense and you should know better. Say you have a huge Google Ads budget burning up on those landing pages.  Make one version with React and one with HTMX.  Open Lighthouse and see performance difference.  First page renders are much slower with React.  Page load is slower and this makes a huge difference in mainland USA where people are still on 3G speeds on their budget phones. "High traffic" might be the simplified view here and it took me a few page memos to explain it to my lead but the gist is that React is slower, takes longer to load and most of what it is used for is easily done with plain HTML and sprinkles of JS as needed.  Unless you're streaming sound or video like you do on Facebook pages it's really not the right tool for the job in a majority of cases.
> — [xutopia on hackernews · 1 comments](https://news.ycombinator.com/item?id=49069721)

> You need to read things in the context, Chicken. But I will answer your main questions since your comment seems to be in good faith. Just like angular 1 choked on complex, high-frequency UIs, HTMX is going to follow the same faith. Github uses a similar approach to HTMX and you will find that even for such a simple system, their notification indicator elements on the same page are often out of sync. The reasons for this is that State Management is hard, which is why the reconciliation loop of React-like frameworks and shadow-dom does away with pushing complex state management to user application and handles at systematically. Of course, this doesn't mean htmx is useless, for a specific case of web apps, it is good enough, but the problem is that often times, you start with "specific cases" and your application grows overtime. So when you consider that and the cost of doing htmx vs React or any react-like framework, picking htmx is only reasonable if it is the only option you're comfortable with and rarely on merit.
> — [asdfsa32 on hackernews](https://news.ycombinator.com/item?id=49069477)

> > Hypermedia is what to web apps what XML is to programming languages. I have no idea what this means. The World Wide Web itself is quite literally hypermedia. The fact that a lot of front-end frameworks appear hell bent on ignoring this fact doesn't make it any less true. > Again, the reason we have finally stabilised on JSX is because you can't really "Declare" away HTML or sophisticated data and event management... You may have stabilised on JSX, "we" have not. React is one way of building web applications. It's appropriate for a certain subset of highly interactive SPAs, and completely inappropriate for many other things.
> — [monooso on hackernews · 1 comments](https://news.ycombinator.com/item?id=49069578)

> > In fact, the complexity of Chat Messages and Notifications synchronisation is one of the prime reasons why React exists. Which makes it even more ironic that in the 10 years since React was announced in 2013 and when I quit Facebook, they never managed to fix the original state synchronization bug that they demonstrated in the original React announcement for more than a few months at a time at best. I'm sure technically it wasn't a singular bug over the years and the causes were complex, but React did fuck all in relation to the unread message counter being correct.
> — [Zanfa on hackernews](https://news.ycombinator.com/item?id=49070069)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49067301) · 36 points · 67 comments

## Community discussion

Top comments from developers on daily.dev.

**@rizzdev** · 0 upvotes

> Server html with islands already demonstrates the shrinking payload

## Similar posts on daily.dev

- [React, HTMX, and TanStack/Start](https://daily.dev/posts/react-htmx-and-tanstack-start-1gdiqpqny) · swizec.com · 33 upvotes · 0 comments
- [Please Just Fucking Try HTMX](https://daily.dev/posts/please-just-fucking-try-htmx-1mpfjamcy) · Hacker News · 253 upvotes · 45 comments
- [Please Just Fucking Try HTMX](https://daily.dev/posts/please-just-fucking-try-htmx-ncu8zbk1v) · Lobsters · 21 upvotes · 3 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#javascript](https://daily.dev/tags/javascript), [#react](https://daily.dev/tags/react), [#django](https://daily.dev/tags/django), [#htmx](https://daily.dev/tags/htmx)

[View this post on daily.dev](https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Removing React.js from the codebase and adapting HTMX for UI interactivity","url":"https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab"},"datePublished":"2026-07-27T13:02:26.158Z","dateModified":"2026-07-27T15:02:19.416Z","description":"The Misago forum project is moving away from its current hybrid architecture where pages are rendered twice — once by Django templates and again by React.js —...","image":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","thumbnailUrl":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"webdev,javascript,react,django,htmx","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Removing React.js from the codebase and adapting HTMX for UI interactivity"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/removing-react-js-from-the-codebase-and-adapting-htmx-for-ui-interactivity-phhzbmmab","comment":[{"@type":"Comment","text":"Server html with islands already demonstrates the shrinking payload","datePublished":"2026-08-01T04:44:28.681Z","url":"https://daily.dev/posts/PhHZbmMaB#c-dLRgHndQB","author":{"@type":"Person","name":"Andrew","url":"https://daily.dev/rizzdev","image":"https://media.daily.dev/image/upload/s--35vRfXAA--/f_auto/v1785413727/avatars/avatar_fQ7ttCKtPuu6tDvcgQXv5?_a=BAMAMicg0"}}]}
```

