A mobile app for the UK's largest online pharmacy
Pharmacy2U is the UK's largest online pharmacy, serving millions of NHS patients, but prescription management, eCommerce, and online GP consultations had each been built as separate experiences. Patients were bouncing between apps and websites to get things done. This project brought all three together into a single React Native app, designed and built hands-on from screens through to production code.
The challenge
Pharmacy2U had grown through building out individual services, each solving a real problem but none of them aware the others existed. Prescription management lived in one place, the health and wellness shop in another, online GP consultations somewhere else. Patients who used more than one service had to context-switch between entirely different interfaces, different logins, different design languages. It was functional, but it felt like three separate companies rather than one pharmacy.
The complexity wasn't just a UX problem. Healthcare regulation means every screen, every flow, every piece of copy has compliance implications. Prescription ordering involves NHS data. The online doctor handles sensitive medical consultations. The shop sells pharmacy-only medicines that require clinical checks before purchase. Bringing all of that into a single app meant navigating regulatory requirements across multiple service types whilst keeping the experience simple enough that someone ordering their repeat prescription at a bus stop wouldn't need to think about any of it.
The best of React and React Native
The app uses a hybrid React Native and WebView architecture. The pragmatic choice, not the fashionable one.
Native screens handled everything that needed to feel fast and polished: the home screen, navigation, prescription management, biometric login, push notifications. These are the parts patients interact with most frequently, and they needed to feel responsive and reliable. React Native gave a shared codebase across iOS and Android without sacrificing the platform-native feel that healthcare apps demand. Patients trust apps that feel solid, and in a context where people are managing their medication, that trust matters.
WebViews handled the services where it made sense to reuse existing, well-tested web flows rather than rebuilding them from scratch. The online doctor consultations and the health shop already had robust web implementations with their own regulatory sign-offs. Rebuilding those natively would have meant months of additional development and re-certification for no real patient benefit. Instead, wrapping them in a native shell with seamless navigation meant patients moved between services without realising they'd crossed an architectural boundary.
Unified navigation
so patients don't feel like they're switching between products
Consistent design language
across native and web components
Regulatory-compliant flows
that still feel human and straightforward
Biometric authentication
Face ID and fingerprint login for faster, more secure access
The real engineering challenge was making the seams invisible. Native and web components needed to share authentication state, maintain consistent navigation patterns, and present a unified design language. A patient tapping from their prescription list into the shop and then booking a GP consultation should feel like they're moving through one app, not three stitched together with loading screens and re-authentication prompts.
Migrating 400,000 patients
Building the app was one thing. Getting 400,000 existing patients onto it without disruption was another challenge entirely. These are people who depend on the service for their medication. A botched migration where someone can't order their repeat prescription isn't an inconvenience, it's a safeguarding concern.
The rollout was phased and controlled. Small cohorts of patients were migrated first, with close monitoring of support tickets, app store reviews, and prescription ordering rates at each stage. If something wasn't right, the blast radius was small enough to respond before it became a widespread problem. Each cohort informed the next: onboarding copy was tweaked, edge cases in account migration were caught and fixed, and the support team built up knowledge gradually rather than being overwhelmed on day one.
Feature flags controlled what each cohort could see, so new functionality could be tested with real patients before being rolled out to everyone. This also meant the old app could stay live and functional throughout the transition. No hard cutover, no "please update by Friday or you lose access to your prescriptions" ultimatums. Patients moved across when they were ready, and the experience was waiting for them when they arrived.
Prescription management
The prescription journey was the core of the app and where most of the design effort went. Patients needed to manage their repeat medications, request new prescriptions, and track deliveries, all for themselves and potentially for family members they care for.
The medication list surfaces the information patients actually need: what's due for reorder, what's been dispatched, what's arriving when. Adding or removing medications needed to be quick and forgiving, since medication lists change regularly and patients shouldn't need to call a helpline to update theirs.
Making it feel like one product
Design consistency across native and web components was critical. A shared design language needed to work in both contexts, so buttons, typography, spacing, and interaction patterns stayed consistent whether patients were in a native screen or a wrapped web flow. The design system being built in parallel fed directly into this work, ensuring the app and the web experiences evolved together rather than drifting apart.
Navigation was deliberately simple. Three core services, accessible from the main tab bar, with no nested menus or hidden features. Patients using the app are often managing health concerns, and the last thing they need is an interface that makes them work to find things.
The result
The app sits at 4.8 stars on the App Store with over 57,000 ratings. More importantly, it unified three previously separate patient journeys into something that genuinely feels like a single product. Patients manage their prescriptions, browse the shop, and consult with a doctor without ever feeling like they've left the app.
The hybrid architecture proved its worth: it shipped faster than a fully native rebuild would have allowed, and patients got a better experience sooner. The WebView integrations have held up well, and the native prescription management flows are responsive and reliable.
Download the app on the App Store.
