My Private Chemist
Online pharmacy and healthcare platform
Built as a web developer on the in-house team at The ST Groups.
Visit the live site
Context
My Private Chemist is a UK private pharmacy with a blood testing service and a travel clinic. I built it as a web developer on the in-house team at The ST Groups, so this is employer work rather than a client project. The site is a React single-page application backed by its own portal for the pharmacy team.
The problem
A UK private pharmacy offering medicines, blood tests and a travel clinic needed one site where patients could do all three: consult, book and pay.
What I built
Developed the React frontend covering online consultations, a blood test package builder, travel clinic booking, category and product pages, and a Stripe checkout.
Three services, one checkout
Patients can start a weight-loss consultation, a general or travel consultation, or build their own blood test package by picking the tests they want. Clinic appointments are booked through SimplyBook, so the pharmacy keeps using the booking system its staff already work in. Everything ends in a single checkout where card payments go through Stripe's hosted fields, which keeps card details off the pharmacy's servers.
Forms that hold up to clinical use
Consultation forms are built with Formik and validated with Yup, so a patient cannot submit an incomplete medical answer. Patients who already have a prescription from another provider can upload it for the pharmacy to transcribe. Product and category pages share the same components, which keeps a large regulated catalogue consistent as it grows.
The hard part
Presenting a large regulated product catalogue in a way that stays fast to browse and simple to navigate on mobile.
Result
Live pharmacy platform with a clean product ordering experience across desktop and mobile.
Built with
- React
- Component model for interfaces with state, so shared UI is written once and reused across pages.
- Redux Toolkit
- Holds shared client state such as the cart in one store, so every page reads the same values.
- Stripe
- Card payments through Stripe's own hosted fields, so card details never touch the site's servers.
- Ant Design
- Ready-made form, table and modal components for data-heavy screens.

