RefreshLess is a drop-in alternative to single page apps (SPAs) or decoupled approaches which reuses Drupal's existing server-rendered HTML while layering 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 or decoupled site:
- 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 just a 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.
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.
Classic Drupal Ajax framework implementation
This is the classic RefreshLess implementation using Drupal's Ajax framework from the 8.x-1.x branch created by Wim Leers and contributors. See modules/refreshless_ajax/readme.md
.
Note that this is minimally maintained and not guaranteed to continue functioning at this time as all development is focused on the Turbo implementation.
Project information
- Module categories: Developer Tools, Performance, Site Structure
- 5 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.