Case study / CardMedic
A COVID app, from first line of code to the App Store in eleven days
This is the story of how an NHS anaesthetist's PPE flashcards became an offline, multilingual app in eleven days, in the first weeks of lockdown.
- Client
- CardMedic
- Sector
- Healthcare
- Duration
- 11 days to launch, 13 weeks in all
- What we did
- Product scoping, app and platform build, app store launch

In April 2020, Dr Rachael Grimaldi, an NHS anaesthetist, had a problem nobody had planned for. Staff in masks, visors and gowns couldn't be understood by their patients, and patients who were frightened, hard of hearing or didn't speak English couldn't make themselves understood either.
She had written a set of communication flashcards to help, and put them on a Squarespace site. They spread fast. But a website needs a connection, and plenty of hospital wards, ambulances and care homes don't have a reliable one. She needed an app that worked offline, in more than one language, and she needed it within days rather than months.
Our client work had largely dried up with the first lockdown, so we had the time. We talked it through with her over a couple of long calls, and Phil started building on 13 April.
The challenge
The content already existed and clinicians were already using it. The job was to get it into people's pockets without losing anything on the way, and to do it while the need was at its peak.
That meant three things had to be true on day one. The cards had to work with no signal at all. They had to be readable, and audible, in the patient's language. And Rachael, who was working remotely from the US at the time, had to keep writing and changing cards herself, without waiting for us.
There was a fourth problem we didn't see coming: getting a coronavirus app past Apple and Google in April 2020.
What we did
We scoped the first version down to what a nurse in full PPE would actually reach for: browse or search the cards, show them in the patient's language, play them aloud, and show a photo of your own face, since the patient couldn't see it behind the mask. Everything else waited.
One place for the content, many places to read it
Rather than copy the cards into the app by hand, we built a small content platform behind it. It imported every card from the Squarespace site, kept them organised by category, and handed the whole lot to the app in one go. The app stores the cards on the phone, so once it has opened once it works in a basement, a lift or an ambulance. Rachael could add a card in the afternoon and it would be on people's phones the next time they had signal.
Translation as a workflow, not a one-off job
Machine translation gave every card a first pass in each new language, but nobody wants a machine-translated consent conversation. So the platform treated it as a first draft. Volunteer translators, some of them NHS staff, signed up for their own accounts, corrected the cards in their language, and each card was marked once a human had checked it. When a professional translation agency offered its help, we added a spreadsheet export and import so their linguists could work in the tool they already used. The audio was generated per language from the finished text, with a separate American English voice once the app went to the US.
The trade-off was honesty about quality. A language only went live in the app once its translator was happy, which meant some languages took weeks rather than days.
Getting past the app stores
The iOS build went into review on 24 April and was rejected the same morning. Apple's rules at the time said apps about Covid-19 had to come from a recognised healthcare organisation, not an individual developer. So CardMedic set up its own developer account, we moved the app across and asked for an expedited review. It was approved later that day.
Google rejected the Android version a few days later for the same reason. An appeal, a letter confirming who was behind the app and a new build later, it went live at about seven in the morning on 1 May.
Shipping fast, then tidying up
We'll be honest about the code. Building in eleven days meant shortcuts in the app, and we knew it. Straight after launch a second developer joined to tidy it up, adding proper type checking, linting and automated checks, before we added anything new. That cleanup is what let us keep shipping regular updates through May and June without breaking the version nurses were relying on.
The results
Eleven days from the first commit on 13 April to approval on the App Store on 24 April, with Android following on 1 May.
Around 10,000 downloads within three weeks of launch.
12 languages in the app by July 2020, from Arabic and Punjabi to Polish and Dutch, most of them with read-aloud audio.
A Points of Light award from the Prime Minister for Rachael in May 2020, recognising CardMedic's work for the NHS. That one is hers, but it arrived when the app was less than a fortnight old.
In July 2020 we handed the platform and the app over to the agency CardMedic chose for its next phase. CardMedic has grown a great deal since: it now covers 45 written languages, offers sign language and Easy Read, and is used across NHS acute, ambulance and community settings. None of that is our work, but it started from the version we shipped in April.
Under the hood
The content platform was Laravel, with queued jobs for machine translation through Weglot and text-to-speech audio through SiteSpeaker, a translator role with email verification, spreadsheet export and import for the agency, and PDF downloads for printing cards. The app was React Native on Expo, written in TypeScript, with Redux and redux-persist holding the cards on the device for offline use, i18n for the interface, and Expo's camera and audio modules for the profile photo and read-aloud. Expo let Rachael test Android builds from the US before either store had approved anything.