RefreshLess is a drop-in alternative to single page apps (SPAs) which reuses Drupal's existing server-rendered HTML and layers a JavaScript framework on top that provides the kind of modern UX users expect. By fully embracing progressive enhancement, you don't need to choose between a web site/web app that works even with broken JavaScript or a smooth, fast, SPA-like user interface - you can have both.
Compared to an SPA:
- Provides much higher resiliency in unexpected or adverse network or runtime conditions where JavaScript fails to load or execute correctly. In such situations, your users still have a working site. The browser is the most hostile runtime environment after all.
- Reuses Drupal's server-rendered HTML, saving you the development time and cost of re-implementing a whole new front-end, while making use of Drupal's Twig templates, asset library system, caching, security, and so on.
Compared to a plain server-rendered HTML site:
- Navigation feels faster and more fluid because the browser no longer needs to re-initialize all CSS and JavaScript on every page request.
- Everyone thinks you're super cool because your site is an SPA but you secretly know it's even better than an SPA.
📢 Help needed 📢
If you want to help out, please see #3393105: Hotwire Turbo minimum viable implementation for what still needs to be done.
⚡ Hotwire Turbo implementation ⚡
RefreshLess implementation built on the Hotwire Turbo library. See modules/refreshless_turbo/readme.md
. This is the current primary implementation, but other implementations are planned.
Project information
- Module categories: Developer Tools, Performance, Site Structure
- 4 sites report using this module
- Created by Wim Leers on , updated
- Stable releases for this project are covered by the security advisory policy.
There are currently no supported stable releases.