CASE STUDY · NEXT.JS PWA · 2025
Knotbook
Offline-first PWA with Stripe billing and real-time sync.
Offline

- Knotbook
- SaaS
- NEXT.JS PWA
- Next.js, TypeScript, Stripe, IndexedDB
- 2025
- Custom web apps & SaaS
The brief
Knotbook needed an app that kept working on flaky connections, with billing and cross-device sync.
What we did
- Built an offline-first Next.js PWA.
- Implemented Stripe billing and entitlements.
- Added conflict-aware real-time sync.
- Shipped installable across desktop and mobile.
How we built it
Local-first storage with a sync layer reconciles changes when connectivity returns, using idempotent operations and a last-writer-wins strategy with conflict surfacing for edge cases.
Wedding planning happens in the worst possible places for a web app. Venue visits with patchy signal, vendor meetings in old buildings with hostile Wi-Fi, dress fittings with phones in airplane mode. A traditional network-first app punishes the user every time, with a spinner here, a failed save there. Knotbook needed to feel the same whether the network was solid, intermittent or absent.



Local-first by default
The app reads and writes against IndexedDB before it ever talks to the server. Every interaction in the UI completes in single-digit milliseconds because nothing is waiting on a round trip. The sync layer runs in the background, batching changes and reconciling them when connectivity returns.
Conflict-aware sync
Multi-device editing is the obvious edge case for any offline-first app. Two laptops, two phones, one bride. The sync layer uses idempotent operations so retries never double-apply a change, and a last-writer-wins strategy for the common case where two devices edit different fields on the same record. Genuine conflicts (same field, different values) surface to the user rather than getting silently overwritten.
Stripe billing and entitlements
Stripe handles the subscriptions, but the app checks entitlements locally from a signed token cached on the device. That means premium features work offline too, until the token expires. Webhooks keep the local entitlement state in sync with Stripe's source of truth.
Installable across desktop and mobile
The PWA installs from the browser on iOS, Android, macOS and Windows without an app store. One codebase, four platforms, no native shell. Updates ship as a deploy, no review queue.
What changed
Knotbook now behaves identically online and offline. Wedding planners working from venues, vendor meetings and homes with poor Wi-Fi see no difference in the app's responsiveness. Billing is reliable, sync is conflict-aware, and the install footprint is small enough that even mid-tier Android phones run the app smoothly.
The result
A resilient app that behaves the same online or offline, with reliable billing.
100%
“Very satisfied and happy with the service provided by DevonicWeb. They exceeded my expectations and made my ideas come to reality, with great communication, and helped guide me to make informed decisions as this is all new to me. Highly recommend them, worth every penny!”
Tech stack
- Next.js
- TypeScript
- Stripe
- IndexedDB
07, START A PROJECT
Want work like this?
Tell us what you're building. We reply within 4 hours during UK business hours.