Web Dev Tools

Non-JS Alternatives

Rails 8, Phoenix LiveView, Django + HTMX, Go, Rust — and why you might learn one.

The "no/low JS" school had a real revival once HTMX, Hotwire, and LiveView matured. Even if you stay on JS for production, learning one of these expands the menu.

Ruby on Rails 8 + Hotwire

  • Hotwire = Turbo (HTML-over-the-wire navigation) + Stimulus (light JS sprinkles).
  • Rails 8 included Solid Queue, Solid Cache, Solid Cable — so you can run Rails on a single Postgres + filesystem with no Redis required.
  • Kamal for deploying Rails to your own boxes with one command.
  • Why care: for CRUD-heavy products, the productivity ceiling is very high with very little JS. bin/rails generate scaffold still produces working software faster than most JS stacks.

Phoenix LiveView (Elixir)

  • WebSocket-driven server rendering — diff is sent over the wire, DOM is patched in place.
  • Real-time, multi-user collaboration is essentially free.
  • Elixir's BEAM runtime handles huge concurrency with tiny memory.
  • Why care: the cleanest demonstration of "server is the source of truth" architecture. You'll think differently about realtime even if you never ship Elixir.

Django + HTMX

  • Django is still one of the most productive backends ever shipped. Pair it with HTMX (or Alpine.js for sprinkles) and you can build modern-feeling apps with almost no JS code.
  • Why care: if your app is mostly forms and lists, you might be over-engineering with React.

Go (chi / Echo / Fiber + templ + HTMX)

  • Single-binary deploys, very low memory, great for self-hosted apps.
  • templ brings type-safe HTML templates to Go.
  • Why care: for small backends, ops cost is essentially zero — copy a binary to a VPS and it runs.

Rust (Axum / Actix + Leptos / Dioxus / Solid)

  • High-performance backends; Leptos and Dioxus bring fine-grained reactivity to Rust on both client and server (Leptos compiles to WASM).
  • Why care: Leptos is the most interesting "isomorphic Rust" stack; production-ready for a handful of teams.

When to use these in production

  • Solo founder / small team where the language and ecosystem fit.
  • A product where complexity is in business logic, not in the UI.
  • Long-lived internal tools where simplicity of ops matters.

When to stay on the JS stack

  • The UI is a serious app (editors, dashboards, multi-step flows with rich client state).
  • You need the JS-ecosystem libraries (Tiptap, Lexical, etc.).
  • You're hiring quickly and need to maximize the candidate pool.

On this page