awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
turbolinks avatar

turbolinks/turbolinksArchived

0
View on GitHub↗
12,591 stars·609 forks·TypeScript·MIT·11 views

Turbolinks

Turbolinks is a JavaScript library that accelerates HTML page transitions by replacing the page body via network requests instead of performing full browser refreshes. It functions as a client-side navigation manager that intercepts link clicks and controls the page visit lifecycle to simulate a single-page application experience.

The library synchronizes the browser URL and history stack with partial page updates and utilizes a caching mechanism to store visited page states. This allow for instant previews and restoration of state when navigating backward or forward. It also includes a tool for transferring specific UI elements across transitions by matching identifiers to maintain element persistence.

The project covers navigation lifecycle management, including the ability to intercept visits and configure custom headers. It provides a customizable progress bar for asynchronous loads and monitors asset versioning to trigger full page reloads when scripts or styles are updated. Navigation scope can be configured to restrict partial updates to specific root paths or origins.

Features

  • Partial Page Refreshers - Replaces the page body via XHR network requests instead of performing full browser refreshes.
  • Navigation Acceleration - Accelerates page navigation by replacing the page body using network requests and browser history.
  • Single Page Applications - Simulates the speed of a single page app by replacing the page body instead of performing full browser refreshes.
  • Persistent UI Components - Keeps specific UI elements active across navigation by matching identifiers and transferring them to the subsequent page.
  • Browser History Management - Synchronizes the browser URL and history stack with partial page updates to maintain standard navigation behavior.
  • Navigation Hooks - Provides a sequence of lifecycle hooks from visit to render, allowing developers to intercept or modify navigation.
  • Client-Side Page Caching - Stores copies of visited pages to provide instant previews during navigation and restore state when moving backward or forward.
  • Navigable Lifecycles - Triggers sequential events from click to render, allowing the interception of visits and post-load script execution.
  • Navigation Preview Caching - Stores visited page states to provide instant previews when users navigate backward or forward.
  • Page State Snapshots - Stores a copy of the previous page state to allow instant backward navigation without new network requests.
  • Page Transition Controls - Accelerates navigation by replacing page bodies via network requests instead of full browser refreshes.
  • Client-Side Navigation Management - Intercepts browser clicks to manage custom headers and execute specific scripts during the page loading lifecycle.
  • UI Element Persistence - Matches elements by their ID across page loads to keep specific UI components active and consistent during transitions.
  • Cross-Page Element Persistence - Keeps specific UI elements active across page transitions by matching identifiers and transferring them to new views.
  • UI State Persistence - Keeps specific UI elements active and consistent across different pages to prevent flickering or loss of user state.
  • Version-Triggered Reloads - Triggers full page reloads when asset version mismatches are detected to ensure the latest scripts and styles are loaded.
  • Navigation Scope Controls - Provides configuration to restrict partial page updates to specific root paths or origins.
  • Page Speed Optimizations - Speeds up the transition between pages by caching visited content and managing network requests for body updates.

Star history

Star history chart for turbolinks/turbolinksStar history chart for turbolinks/turbolinks

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does turbolinks/turbolinks do?

Turbolinks is a JavaScript library that accelerates HTML page transitions by replacing the page body via network requests instead of performing full browser refreshes. It functions as a client-side navigation manager that intercepts link clicks and controls the page visit lifecycle to simulate a single-page application experience.

What are the main features of turbolinks/turbolinks?

The main features of turbolinks/turbolinks are: Partial Page Refreshers, Navigation Acceleration, Single Page Applications, Persistent UI Components, Browser History Management, Navigation Hooks, Client-Side Page Caching, Navigable Lifecycles.

What are some open-source alternatives to turbolinks/turbolinks?

Open-source alternatives to turbolinks/turbolinks include: hotwired/turbo — Hotwire Turbo is a server-driven navigation and HTML streaming framework that intercepts link clicks and form… inertiajs/inertia — Inertia is a server-driven frontend framework designed to create monolithic single page applications. It acts as a… barbajs/barba — Barba is a JavaScript page transition library that intercepts browser navigation to swap page content and animate… vuejs/vue-router — Vue.js Client-Side Router is a routing library that maps browser URLs to Vue.js components to enable the creation of… swup/swup — Swup is a page transition library and AJAX page loader designed to create seamless, animated transitions between pages… remix-run/history — This library is a browser history API wrapper and client-side routing state manager. It provides a programmatic…

Open-source alternatives to Turbolinks

Similar open-source projects, ranked by how many features they share with Turbolinks.
  • hotwired/turbohotwired avatar

    hotwired/turbo

    7,343View on GitHub↗

    Hotwire Turbo is a server-driven navigation and HTML streaming framework that intercepts link clicks and form submissions to fetch pages in the background and replace content without full browser reloads. It provides a Turbo Frame component that scopes page regions into independent contexts, enabling partial page updates where only a specific area of the page navigates or loads content. The framework includes a page cache and morph system that stores recently visited pages for instant restoration and applies minimal DOM changes on refresh, preserving scroll position and element state. The fra

    JavaScript
    View on GitHub↗7,343
  • inertiajs/inertiainertiajs avatar

    inertiajs/inertia

    7,708View on GitHub↗

    Inertia is a server-driven frontend framework designed to create monolithic single page applications. It acts as a state synchronization protocol and client-side routing bridge, allowing developers to build interactive experiences using modern JavaScript component libraries while keeping routing and controllers on the server. This approach eliminates the need for a separate REST or GraphQL API layer by passing data from server controllers to frontend components as props via JSON payloads. The framework distinguishes itself by utilizing adapter-based integration to link various backend environ

    TypeScript
    View on GitHub↗7,708
  • barbajs/barbabarbajs avatar

    barbajs/barba

    12,940View on GitHub↗

    Barba is a JavaScript page transition library that intercepts browser navigation to swap page content and animate transitions without a full page refresh. It functions as an AJAX page loader and client-side navigation manager, coordinating the lifecycle of transitions through hooks and custom logic during view changes. The library distinguishes itself as a frontend animation orchestrator that triggers specific visual effects and scripts based on the source and destination of a website page. It employs a rules-based system to resolve which specific animation or transition to execute by matchin

    TypeScript
    View on GitHub↗12,940
  • vuejs/vue-routervuejs avatar

    vuejs/vue-router

    18,898View on GitHub↗

    Vue.js Client-Side Router is a routing library that maps browser URLs to Vue.js components to enable the creation of single-page applications. It functions as a navigation engine that manages browser history and URL state to allow page transitions without full browser reloads. The system utilizes a nested route manager to render hierarchical views that match complex URL structures. It includes navigation guard middleware to intercept, validate, or redirect route transitions before components are rendered. A client-side history handler synchronizes application state with the browser URL using

    JavaScript
    View on GitHub↗18,898
  • See all 30 alternatives to Turbolinks→