Loading
Case study
PWA · lead capture · offline-first

Capturing thousands of leads in a no-signal arena - without losing one.

Category
Offline-first PWA
Client
Coconaut (shootout.kawalec.pl)
Years
2026
Role
Solo Full-Stack
Coconaut Shootout Challenge lead-capture app on an iPad - green Coconaut basketball jersey and SHOOTOUT CHALLENGE headline
At a glance

An offline-first lead-capture app for a 3x3 basketball event - every save lands on the iPad first, then syncs to the server whenever the network allows.

2-10k
Leads captured across an event week
10-20
iPads writing to one backend at the same time
<0.5%
Target lead-loss rate, from iPad to server
100%
Offline-capable - every save works with zero signal
01 - The problem

A normal form is a data shredder in a packed arena.

Event lead-capture happens in the worst possible network conditions: a sold-out sports hall, hundreds of phones fighting for the same cell tower, and venue WiFi that folds the moment the doors open. A standard web form that only saves when you hit submit is exactly wrong for this - the request hangs, the hostess can’t wait, she moves to the next person, and the lead is gone before anyone notices.

Now multiply that by 10-20 iPads all collecting at the same time, over an event week, with a target of thousands of leads. “Mostly works” isn’t a strategy - every dropped submission is a real person who consented to be contacted and will never get the follow-up. The cost of a lost lead is asymmetric: it’s not a retry, it’s a permanent miss.

Coconaut needed something that behaves like a native app, not a web page: instant on tap, local-first, and completely indifferent to whether there’s a connection at that exact second. The network should be an optimisation, never a dependency.

02 - The vision

Save first, sync later. - the device is the database, for as long as it has to be.

Three principles drove every decision:

  • Offline-first, always. The save never depends on the network. A lead is written to the iPad the instant the hostess hits “Zapisz”. Reaching the server is a separate, background concern - not a precondition for success.
  • Zero data loss. Between “saved on the iPad” and “stored on the server” there must be no gap a lead can fall through. Duplicate-proof uploads, server-side checks and automatic device backups close every crack, including the browser wiping its own storage.
  • Frictionless for the hostess. One screen, four fields, three RODO consents, a “Zapisz” that always succeeds. No login per lead, no spinner of doom, no “please try again”. The person at the booth never waits on a network.
03 - Who it’s for

Built for everyone who touches a lead between the booth and the CRM.

Coconaut Shootout consent screen on an iPad - RODO consents with green checkmarks and a green Zapisz button
Event hostess

Works the floor on an iPad, often with no signal. Needs a form that saves instantly and never blocks her on the next person in the queue.

Event organizer

Owns the numbers. Wants every lead accounted for and a clean export at the end of the day - not a postmortem about what got lost in the hall.

Marketing / CRM

Consumes the leads afterwards for the mailing. Needs deduplicated emails with explicit RODO consents attached to each one.

Participant

The person at the booth. Gives their data once, accepts the terms, and expects it to “just work” in two taps - signal or no signal.

04 - Technology & the challenge

A modern app, one genuinely hard problem.

Coconaut Shootout is built to behave like a native app on every iPad - it installs to the home screen, opens instantly, and keeps working with no connection at all. Each lead is saved on the device the moment it is entered, and a background process quietly sends it up to the server whenever a signal is available. A small admin panel gives the organizer a live view of what has come in and a clean export at the end of the day.

The hard part was guaranteeing that not a single lead is ever lost. In a packed arena with no reliable network, on ten to twenty devices all collecting at once, the app has to save every entry locally first and treat the connection as a bonus rather than a requirement. Uploads are protected so the same lead can never be recorded twice, and each device backs up its own data to the server every few minutes - so even if a tablet drops out or clears its storage, the leads are already safe.

05 - The workflow

Fill. Save. Sync in the background.

For the hostess it is two taps: type the lead, hit save. Behind that button the app checks the details, stores the lead safely on the device, and immediately tries to send it on. With signal the lead reaches the server in seconds; without it, the lead waits safely on the device and the app keeps retrying on its own - on a timer, when the screen comes back into focus, and the moment the network returns. Nobody at the booth ever has to wait or try again.

Coconaut Shootout lead-capture form on an iPad, flat-lay - name fields, email, RODO consents and a green Zapisz button
06 - Feature highlights

What ships on every iPad.

Each piece exists to make one sentence true in a real arena: capture the lead, never lose it.

Coconaut Shootout lead form on an iPad - name, surname and email fields with green checkmarks
+ Live sync status

A simple green or red indicator tells the hostess at a glance whether everything is uploaded or still waiting on the device. When it reads “Wszystko zsynchronizowane”, it is safe to move on.

+ Automatic device backups

Every few minutes each iPad sends a full copy of its collected leads to the server, keeping the most recent backups per device - so even if a tablet clears its own storage, the leads survive.

07 - Results

Live, offline-proof, zero-loss by design.

Coconaut Shootout runs in production at shootout.kawalec.pl. Built in four days, it turns a hostile-network arena into a reliable lead-capture floor: every save is local-first, every upload is safe against duplicates, every device backs itself up.

Coconaut Shootout PWA on an iPhone - full lead-capture app with SHOOTOUT CHALLENGE hero and the form below
<0.5% loss
Target lead-loss rate from the iPad through to the server.
10-20 iPads
Writing to one backend at once, each with its own offline queue.
4 days
From empty repo to a deployed, offline-ready app.
100% offline
Every lead saves with no signal; sync catches up on its own.

Like what you see?
Let’s build the next one.

From a blank page to a working product - offline-first PWAs, AI, automation, full-stack engineering. Get in touch and let’s talk about your idea.