MedZo
A marketing site that wins over Australian clinicians and books consults.
- Role
- Product / Front-end Engineer
- Year
- 2026
- Status
- Live
- Stack
- Astro · Sanity · GitHub Actions

Impact
The results, in brief.
- 3.2× more consult enquiries in the first 90 days.
- Copy changes go live same day, with no developer.
- Mobile first and accessible, respecting each visitor’s reduced-motion setting.
My role
As MedZo's product and front-end engineer, I designed and built the site clinicians see and the setup the team publishes from.
Worked with the MedZo team
What I owned
- Architecture, UI/UX design & CI/CD, end to end
- Astro front end, with a page per service
- Sanity CMS content model and migration
- Extensive documentation for knowledge transfer
Calls I made
- Static pages: fast to load, nothing to secure
- Security checks on every push, and a rate-limited enquiry form
- CMS for changing content, so no developer queue
How it’s built
The main parts of the system, in the order work flows through them.
Sanity Studio
Editors publish the sections that change often, like services and photos. Publishing fires a webhook that starts a rebuild.
Pull requests
Every code change, written with Claude Code and Codex, goes through a pull request with automated security and quality checks. Merging to main starts the same rebuild.
GitHub Actions build
Astro reads Sanity once, straight from the API, combines it with the copy kept in code, and renders every route, including one page per service, to static HTML.
Static hosting
The built files upload over an encrypted connection and are served as static files by the host.
The browser
Pages arrive as plain HTML. Images load from Sanity's image CDN, and the contact form posts to a rate-limited hosted form service, which emails the team.
Why it’s built this way
The choices that shaped it, and the reason behind each one.
Static pages, not a server
Clinicians judge a practice by how fast and polished its site feels. Pre-built pages load quickly, are easy for search engines to read, and leave no server or database to maintain or secure.
Content that changes often lives in the CMS
The larger sections the team updates regularly, like services and photos, sit in Sanity, so they change them without waiting on a developer. Copy that rarely changes stays in code.
Content modelled before the CMS
Copy started in typed content files, shaped like the CMS fields to come. When Sanity arrived, the sections that change moved over by swapping the data source, with no pages rewritten.
Enquiries go straight to email
A hosted form service delivers every submission to the team's inbox, keeping the site fully static. Submissions are rate-limited to block spam floods, and the form also works as a plain HTML post, so every genuine enquiry gets through.
Mobile first, accessible and calm by default
A healthcare audience includes people of every age and ability, on every kind of device. Pages were built mobile first, work with a keyboard and screen reader, and respect the reduced-motion setting on a visitor's device.
Let’s connect
I am always open to discussing new projects, creative ideas, or opportunities to be part of your visions. Just reach out!