RefreshLess
RefreshLess enhances Drupal websites by adding JavaScript-based navigation for a smoother, faster user experience. It works by layering this on top of Drupal's existing HTML, allowing sites to function perfectly even if JavaScript is disabled while still offering the feel of a single-page application. This approach also reuses Drupal's built-in features like Twig templates and asset management.
RefreshLess layers JavaScript-based navigation on top of Drupal's existing server-rendered HTML to provide the kind of smooth, fast, and responsive experience users expect. By fully embracing progressive enhancement, you don't need to choose between a web site/web app that continues to work if JavaScript breaks or something that feels like a single page app (SPA) user experience - 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 functioning site/app that falls back to traditional page loads. 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.
- Page transitions (with or without the View Transitions API), morphing, and permanent/persistent elements (think media players, etc.) are now possible.
- Everyone thinks you're super cool.
โจ Press and coverage โจ
We were named module of the week on Talking Drupal episode 514!
๐ See it in action ๐
- Omnipedia
- Playthroughline
- ambientimpact.com
- Your site here perhaps? ๐ฅน
๐ Documentation ๐
We have a documentation site that contains information on installing and using RefreshLess, integrating with it (events, behaviours, etc.), how to get involved with its development, and more.
๐ข Get involved ๐ข
If you want to help out, please see our getting started documentation page. The current focus for 2.x is #3393105: Hotwire Turbo minimum viable implementation.
We also have a ๐ฌ Matrix room if you'd like to drop by to help out, ask questions, and so on.
๐ธ Support this project financially ๐ธ
The modern rewrite of this project has been a lot of work, with a good part of that unpaid. If you'd like to make it easier to continue developing this project, please see our Liberapay page.
โ๏ธ Questions and answers โ๏ธ
Have questions about RefreshLess? We might have answers.
Similar projects
- HTMX module
- Provides Drupal integration for the excellent htmx library; the module is a developer tool that doesn't (currently) aim to apply to the entire existing Drupal front-end but instead focuses on pre-defined blocks to progressively enhance; we would like to eventually support it as an implementation (see #3456344: htmx implementation) in the long term and implement #3480400: Turbo: Compatibility with the HTMX contrib module in the short term.
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 2.0.0-alpha14 | Pre-release | 10โ11 | Drupal 11.4 support; various compatibility and testing fixes. | Aug 11, 2026 | |
| 2.0.0-alpha13 | Pre-release | 10โ11 | FOUC begone! cweagans/composer-patches:^2.0 supported! | Jan 21, 2026 | |
| 2.0.0-alpha12 | Pre-release | 10โ11 | Page transition framework added! | Aug 28, 2025 | |
| 2.0.0-alpha11 | Pre-release | 10โ11 | Cache preloader improvements; more docs. | Aug 19, 2025 | |
| 2.0.0-alpha10 | Pre-release | 10โ11 | Turbo caching fully supported! Preload links for instant navigation! | Aug 4, 2025 | |
| 2.0.0-alpha9 | Pre-release | 10โ11 | Fixed accidental log out w/ core Navigation; fixed a redirect race condition; Turbo 8.0.10 to 8.0.13 upgrade. | Mar 26, 2025 | |
| 2.0.0-alpha8 | Pre-release | 10โ11 | Pager and redirect destination fixes; more docs; misc. internal improvements. | Mar 22, 2025 | |
| 2.0.0-alpha7 | Pre-release | 10โ11 | A ton of documentation + GitLab Pages; fixed Batch UI; many new events. | Jan 28, 2025 | |
| 2.0.0-alpha6 | Pre-release | 10โ11 | Significant internal restructure; buttload of tests added; fixed block layout page. | Jan 15, 2025 | |
| 2.0.0-alpha5 | Pre-release | 10โ11 | Fixed form validation errors not being shown ๐ฌ; increase minimum core to 10.3. | Dec 12, 2024 | |
| 2.0.0-alpha4 | Pre-release | 10โ11 | Almost completely eliminated FOUC; progress bar style update; accessibility improvements. | Dec 5, 2024 | |
| 2.0.0-alpha3 | Pre-release | 10โ11 | Complete rewrite of progress bar; Gin and core Navigation support improvements. | Nov 30, 2024 | |
| 2.0.0-alpha2 | Pre-release | 10โ11 | Ajax dialogs, Gin sidebar, and additive aggregation fixes; support for render delay. | Oct 22, 2024 | |
| 2.0.0-alpha1 | Pre-release | 10โ11 | โก Hotwire Turbo port is here! โก | Oct 15, 2024 |