On a high level Turbolinks intercepts link clicks and turns them in to ajax requests. After receiving the response from the server it replaces the body and merges changes into the header.
This turns a traditional Web App into a Single Page App without any server side changes. The browser avoids parsing of assets and together with the Turbolinks inherent page cache this results in a noticable performance boost.
„If you transition from a click to the next screen within 300ms, the user will percieve this as instantanious. Anything below is nearly imperceptible“ — Sam Stephenson (Turbolinks Maintainer)
Not just for the web
The new Version 5 of Turbolinks comes with native bindings for iOS and Android. It allows using server rendered HTML to be embedded directly in your app but it may also be combined with native UI Elements (Navigation is a common case) or extended with native screens where appropriate.
Not just for rails
While Rails popularized and leverages Turbolinks for quite some time, Turbolinks is not bound to Rails at all. It can be used with any Backend Technology. The Changelog has recently blogged about how they rebuilt their Website and how they run Turbolinks on top of a Phoenix Framework stack.
Not without caveats
Turbolinks is (almost) free performance for HTML driven websites. It works with every backend technology and has adapters for iOS and Android platforms. It enables you to build Web Applications that run in your browser and on your mobile phone. With a sufficient fast backend they can be almost indistinguishable from native apps.