Our great sponsors
-
html-over-the-wire
HTML over the wire: List of frameworks which receive HTML snippets from the server.
At the heart of Turbo is "HTML over the wire" (for which HOTWire is an acronym), which means the server sending HTML fragments for partial page updates, which (here's the big win) eliminates the need for client-side state management. There are lots of tools taking this approach now.
-
view_component
A framework for building reusable, testable & encapsulated view components in Ruby on Rails.
ViewComponent provides a home for this view-related logic. This post on the Code with Jason blog explains it best. In short, ViewComponent fills a big gap in MVC architecture.
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
turbo
The speed of a single-page web application without having to write any JavaScript (by hotwired)
On to the frontend! Turbo is part of Hotwire, which now ships with Rails. Turbo makes it really easy to give server-rendered pages a snappy SPA feel, where parts of the page are updated instantly instead of a full page reload.
-
Actually, Stimulus is pretty cool because you can compose multiple pre-built behaviors into one Stimulus controller, for a sort of functional approach to component behaviors. The tradeoff is that a growing web of Stimulus controllers (plus HTML data attributes associated with them) can become complex and hard to understand.
-
Besides Turbo, the other part of Hotwire is Stimulus, which typically is used for adding client-side reactivity in situations where you want to sprinkle in some JS. After all, you wouldn't want every user interaction to involve a round trip to the server. So why am I including only Turbo here and not Stimulus?
-
There's not much to say about Rails: it's boring tech, and therefore a good choice for most web apps.
-
For anything but a large app, Roda is well worth considering. It's not the easiest for beginners, due to its philosophy of being bare-bones by default but highly extendable. But it's gradually becoming integrated into Bridgetown, whose batteries-included approach is making Roda much more accessible.
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
Unpoly and HTMX are two of the most intriguing alternatives to Turbo because they are more framework-agnostic and have a flexible, concise syntax. Turbo, on the other hand, seems easier to get started with if you're in Rubyland.
-
Turbo + web components can take you a long way in making your Rails app feel modern, but there are other tools in this space that can complement them. I've already mentioned Stimulus, but there's also StimulusReflex which is like Stimulus but on the server, and CableReady which is somewhat like Turbo Streams but more flexible. Be sure to give these a try if your app is highly interactive, or if you just want to expand your horizons beyond Hotwire.
Related posts
- Sort tables (almost) instantly with Ruby on Rails and StimulusReflex
- ChatGPT Has Submitted a Pull Request to Rails
- I think I messed up my CS degree. I am about to graduate and don't feel like I know anything. What do I do?
- 7 Best Ruby Gems for Ruby on Rails Web Development
- The `Object#with`Method: Save, Set, and Restore the Attribute Value