Make Ruby on Rails work offline

InstantPWA hosts a fallback service worker and manifest for Ruby on Rails, so pages you've already visited keep working offline without you writing cache logic yourself. Add the snippet to app/views/layouts/application.html.erb via application.html.erb <head> and the worker registers automatically on first visit.

Steps

  1. 1

    Open app/views/layouts/application.html.erb

    Go to application.html.erb <head>.

  2. 2

    Paste the InstantPWA snippet

    Drop the one-line async script tag in the Ruby on Rails head section — no build step or dependency install.

  3. 3

    Let the service worker register

    No manifest.json or sw.js to write — InstantPWA serves both and scopes the worker to your site's root.

  4. 4

    Test offline mode

    Visit a page once, then use DevTools → Network → Offline (or airplane mode on a phone) and reload to confirm cached pages still render.

  5. 5

    Verify on a phone

    Open your live Ruby on Rails URL on a mobile device (not the editor preview) to confirm the popup renders.

Constraints to know

  • Turbo Drive keeps the <head> element persistent across page-to-page navigation, so the snippet initializes once per session rather than re-running on every Turbo visit — this is a feature, not a bug, but means you should test with a full page load first.
  • The script tag doesn't need to be pinned in config/importmap.rb since it's a plain external <script>, not an ES module import.

FAQ

Do I need to write my own service worker?+

No — InstantPWA hosts a fallback manifest and service worker automatically if your site doesn't already ship one.

What happens to pages I haven't visited yet?+

They won't be available offline until visited at least once — InstantPWA caches on-visit rather than pre-caching your entire site.

Does offline mode change how Ruby on Rails serves pages normally?+

No — the service worker only intercepts requests when the browser is offline; online visits behave exactly as before.

Ready to set this up on Ruby on Rails?

1,000 free impressions. No credit card.

Get started