Web Dev Tools

PWA / Offline / Service Workers

Make your web app installable, offline-capable, and push-enabled.

In 2026 PWAs are first-class on Android (Play Store via TWA), Chromebooks, Windows (Microsoft Store via PWA Builder), and progressively better on iOS (Add-to-Home-Screen has gotten meaningfully better in iOS 18+, but you still don't get Web Push without explicit user install).

Service worker / PWA frameworks

  • Serwist — modern Workbox successor; first-class Next.js / Vite support; the default for new projects.
  • Workbox (Google) — the foundation; still maintained and excellent for vanilla setups.
  • Vite PWA plugin (vite-plugin-pwa) — Workbox-powered Vite integration; the default in Vite-based stacks (SvelteKit, Astro, Solid).
  • next-pwa — older Workbox wrapper for Next.js; many projects have migrated to Serwist.
  • @remix-pwa/sw — service-worker tooling for React Router 7.

Manifests / install prompts

  • web-app-manifest spec — author by hand, or use:
  • PWA Asset Generator — generates icons / splash screens / favicons from a single SVG.
  • realfavicongenerator.net — favicon + manifest packs.
  • @vite-pwa/assets-generator — Vite-friendly icon pipeline.
  • PWA Builder — Microsoft-run free service that audits your manifest and packages for Play Store / App Store / Microsoft Store.

Local storage / offline data

  • Dexie.js — IndexedDB wrapper; the default. Has a sync addon (Dexie Cloud).
  • idb — minimal IndexedDB wrapper from Jake Archibald; no opinions, just types.
  • localForage — older; key-value over IndexedDB / WebSQL.
  • RxDB — reactive offline-first DB; pluggable storage; sync adapters for many backends.
  • Watermelon DB — RN-first but works on web.
  • PGlite — Postgres compiled to WASM; runs in the browser. Pair with ElectricSQL or PowerSync for sync.
  • SQLite WASM (@sqlite.org/sqlite-wasm, wa-sqlite) — full SQLite in the browser via OPFS.

Sync engines (offline-first)

  • Replicache, Zero (Rocicorp) — sync engines.
  • PowerSync, ElectricSQL — Postgres ↔ SQLite sync.
  • Triplit, InstantDB — full DB + sync layer.
  • Yjs / Automerge — CRDTs (great if multi-device is also multi-user).

Push

  • Web Push API — standard; use web-push npm or your hosting platform's wrapper.
  • OneSignal — cross-platform push (web + iOS via wrapper + Android), generous free tier.
  • Firebase Cloud Messaging — works for web push too.

When PWA isn't enough

If you need iOS push, Bluetooth, NFC, biometrics, or background location, you'll need a native shell — see Mobile Packaging.

Pick this if…

  • Default new project that should be installable: Serwist (Next.js) or Vite PWA (Vite-based).
  • Just need offline reads + writes that sync later: Dexie + a small sync layer.
  • Need real offline-first multi-device: PowerSync, ElectricSQL, Replicache, or Zero.
  • Need Postgres queries offline: PGlite + ElectricSQL.
  • Push notifications, cross-platform: OneSignal.

On this page