htmx VS Turbolinks

Compare htmx vs Turbolinks and see what are their differences.

htmx

</> htmx - high power tools for HTML (by bigskysoftware)

Turbolinks

Turbolinks makes navigating your web application faster (by turbolinks)
Our great sponsors
  • Syncfusion - See why our products are consistently getting 4.6 out of 5 stars by your peers.
  • Scout APM - A developer's best friend. Try free for 14-days
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
htmx Turbolinks
120 16
4,668 12,722
6.7% -
9.4 0.9
3 days ago 2 months ago
JavaScript TypeScript
BSD 2-clause "Simplified" License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

htmx

Posts with mentions or reviews of htmx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-16.
  • The JavaScript ecosystem is a hot mess and so is software development in general
    news.ycombinator.com | 2021-10-16
    I work on a dependency-free, build-less library called htmx:

    https://htmx.org

    It's more an extension of HTML than a JS library. It might be a good way to gently introduce more dynamic behavior without blowing out the complexity of your site.

  • Should I ditch using Django
    reddit.com/r/startups | 2021-10-16
    As an additional advice, I would check the Django subreddit and ask what are they doing for their front-end needs (e.g. check this one) -> you don't have to use JS for front-end (e.g. check htmx, unicorn, etc).
  • The Decline of Django
    news.ycombinator.com | 2021-10-15
    I think the case for server-side HTML rendering has never been stronger, and of all Django projects I work on, the ones I enjoy most are those that never got on the SPA bandwagon. From both a developer and user point of view I find them much faster and less painful. There are many cases where you really, really don't need the massive amount of extra complexity involved in designing APIs, adding JS frameworks etc.

    When you need a bit of extra UI goodness, [htmx](https://htmx.org/) is a fantastic solution, and you can still use SPA-type approaches for things that need them.

    You can also benefit from massively faster (and more reliable) functional testing when you are mostly standard HTML - see [django-functest](https://github.com/django-functest/django-functest/) for an example of this.

  • Has anyone written a small framework to support HTMX?
    reddit.com/r/golang | 2021-10-14
    See: https://htmx.org/
  • How Laravel Livewire works (a deep dive)
    news.ycombinator.com | 2021-10-12
    I recently started using htmx (https://htmx.org/) in combination with Django and have become a firm believer of sending HTML 'over the wire' instead of JSON structures that then get used client side.
  • I built a modern website in 2021
    news.ycombinator.com | 2021-10-10
    Curious - why aren’t simpler frameworks like htmx (https://htmx.org/) more common or
  • Ask HN: Why aren’t frameworks like htmx more popular?
    news.ycombinator.com | 2021-10-10
    shifting to htmx [1] or related “simpler” libraries?

    [1] https://htmx.org/

  • The Shocking Immaturity of JavaScript
    news.ycombinator.com | 2021-10-10
    Complexity and instability in the JS ecosystem is a hot button for me, so it's hard not to be drawn into vehement agreement.

    I've been doing a little work recently with htmx[0] and it's a breath of fresh air. But then, I'm at the point in my career where "cool new tech" is much less interesting for its own sake than it used to be when I was younger. I'm drawn for more to elegant, understandable, productive simplicity these days.

    I think that hints at the reason we have these endless debates - not just about JS but about $(your-favourite-tech). Software development is a socio-technical endeavour. We put all the focus on the technical part, and by comparison, rarely consider the social aspect.

    DHH is one of the few I've heard actually refer to this, on the corecursive podcast [1]. In discussing static typing vs dynamic, his point is the latter suits his brain. But that he understands and accepts static typing suits others, and that's fine.

    So I get that, for some, the JS ecosystem is dynamic and interesting; stimulating; exhilarating even. For others, it's an unstable quicksand that gets in the way of doing something useful.

    [0]: https://htmx.org/

    [1]: https://corecursive.com/045-david-heinemeier-hansson-softwar...

  • Action without refreshing the page?
    reddit.com/r/flask | 2021-10-04
  • Do you recommend learning Angular or React for the front end?
    reddit.com/r/java | 2021-10-02
    I have personally found a combination of htmx and Alpine.js to be very effective for my projects. Here's a demo project for using Spring Boot, Thymeleaf and htmx together. Here's a video on using Spring Boot w/htmx. That said, there is currently no job market for this kind of thing, although (crossed-fingers) that will change over the next few years.

Turbolinks

Posts with mentions or reviews of Turbolinks. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-05.
  • Doing the Impossible — Building a Persistent Audio Player in Ruby on Rails
    dev.to | 2021-09-05
    We’ll use Ruby on Rails and Turbo to accomplish this, but we could use Turbo’s predecessor, Turbolinks to achieve the same result, and Rails is only incidental to the finished project. We could just as easily use Turbo with any other "multi-page" framework and deliver the same experience.
  • I've learned a little bit of python. Now what?
    reddit.com/r/Python | 2021-08-15
    Check out StimulusJs and Turbolinks their whole purpose is to add only a tiny bit of js to a server side rendered website, to give a feel similar to that of client-side rendered web pages.
  • Rack mini profiler error in heroku even when gem is removed in gemfile
    reddit.com/r/rails | 2021-07-31
    # frozen_string_literal: true source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '3.0.1' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main' gem 'rails', '~> 6.1.4' # Use postgresql as the database for Active Record gem 'pg', '~> 1.1' # Use Puma as the app server gem 'puma', '~> 5.0' # Use SCSS for stylesheets gem 'sass-rails', '>= 6' # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker gem 'webpacker', '~> 5.0' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.7' # Use Redis adapter to run Action Cable in production # gem 'redis', '~> 4.0' # Use Active Model has_secure_password # gem 'bcrypt', '~> 3.1.7' # Use Active Storage variant # gem 'image_processing', '~> 1.2' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.4', require: false gem 'devise' group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: %i[mri mingw x64_mingw] end group :development do # Access an interactive console on exception pages or by calling 'console' anywhere in the code. gem 'web-console', '>= 4.1.0' # Display performance information such as SQL time and flame graphs for each request in your browser. gem 'listen', '~> 3.3' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' end group :test do # Adds support for Capybara system testing and selenium driver gem 'capybara', '>= 3.26' gem 'selenium-webdriver' # Easy installation and use of web drivers to run system tests with browsers gem 'webdrivers' end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
  • Tink Is Joining Visa
    news.ycombinator.com | 2021-06-24
  • Can I "un-declare" javascript code after removing it from the DOM?
    reddit.com/r/webdev | 2021-06-03
    Nice job solving this problem! This sounds similar to how Inertia works (https://inertiajs.com/how-it-works), or Turbolinks (https://github.com/turbolinks/turbolinks). You could dig through those libraries to see if / how they solved issues with global scope.
  • Using Hotwire Turbo in Rails with legacy JavaScript
    dev.to | 2021-04-23
    since Rails 4, the Turbolinks library has been included but had a bunch of problems at that time (2013), so
  • Working on getting a class project up and going into Heroku, keep running into this, any ideas on what’s going on and what to do?
    reddit.com/r/Heroku | 2021-04-22
    # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
  • htmx and HTML Driven Development
    dev.to | 2021-04-10
    This functionality is somewhat similar to Turbolinks and allows you to use htmx for progressive enhancement.
  • Rails repeats Webpacker packages if I go back one page (OwlCarousel, DataTables)
    reddit.com/r/rails | 2021-04-06
    https://github.com/turbolinks/turbolinks#full-list-of-events
  • HTMX and Flask is really nice!
    reddit.com/r/flask | 2021-02-05
    In fact, without knowing/learning something like React, Svelte, Angular etc ... I can see a combination of libraries such as, TurboLinks, InstantClick and HTMX allowing for an easy bar to reach for building WebApps as a full-stack developer.

What are some alternatives?

When comparing htmx and Turbolinks you can also consider the following projects:

Alpine.js - A rugged, minimal framework for composing JavaScript behavior in your markup.

InstantClick - InstantClick makes following links in your website instant.

react-snap - 👻 Zero-configuration framework-agnostic static prerendering for SPAs

django-unicorn - The magical reactive component framework for Django ✨

lighthouse - Automated auditing, performance metrics, and best practices for the web.

Slide and swipe - :zap: A sliding swipe menu that works with touchSwipe library.

turbo - The speed of a single-page web application without having to write any JavaScript

Slideout - A touch slideout navigation menu for your mobile web apps.

CacheP2P - "More users = More capacity"

svelte-query - Performant and powerful remote data synchronization for Svelte

phoenix_live_view - Rich, real-time user experiences with server-rendered HTML

budibase - Budibase is an open-source low code platform that helps you build internal tools in minutes 🚀