Drupal is a registered trademark of Dries Buytaert

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.

🌐 See it in action 🌐

📗 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.

Activity

Total releases
9
First release
Dec 2024
Latest release
1 month ago
Release cadence
51 days
Stability
0% stable

Release Timeline

Releases

Version Type Release date
2.0.0-alpha13 Pre-release Jan 21, 2026
2.0.0-alpha12 Pre-release Aug 29, 2025
2.0.0-alpha11 Pre-release Aug 19, 2025
2.0.0-alpha10 Pre-release Aug 4, 2025
2.0.0-alpha9 Pre-release Mar 26, 2025
2.0.0-alpha8 Pre-release Mar 22, 2025
2.0.0-alpha7 Pre-release Jan 29, 2025
2.0.0-alpha5 Pre-release Dec 12, 2024
2.0.0-alpha4 Pre-release Dec 5, 2024