Back to portfolio

Confidential (in review) · 2026

Ophthalmologist Practice

Practice site for an ophthalmology clinic. Calm layout, Astro and Tailwind, PagesCMS for patient-facing articles, SEO from the first draft. In client review.

Ophthalmologist Practice

The Challenge

Patients often research specialists on a phone before they book. This practice wanted a site that feels calm, not salesy, with room for short educational posts their staff can write without calling a dev every time.

Off-the-shelf medical templates usually miss something: either the tone is too loud, or the CMS is too heavy, or SEO is an afterthought. We needed all three in one lean package.

The Solution

The scroll path runs hero, trust, services, articles, then contact. Type is readable, spacing is generous, and the palette stays neutral on purpose.

Astro serves static HTML for almost everything. Tailwind keeps the visual system tight. Treatments and visit expectations get their own sections so anxious visitors aren't guessing. PagesCMS backs eye-health tips and clinic updates. The team can post a few times a month without a handoff ticket. Copy patterns leave room for local relevance without keyword stuffing.

Technical Architecture

Crawlability and Core Web Vitals were treated like features, not polish at the end.

Stack is Astro, Tailwind, PagesCMS, TypeScript. Pages are mostly static. I only left room for islands if we add a small interaction later. Articles compile from Markdown at build time.

Per route we set title and description templates, Open Graph images, and JSON-LD aimed at a medical business entity. Article listing pages and internal links between service sections help discovery. Images got strict alt text discipline because that's easy to slip on rush projects.

My Role & Contributions

I wireframed the narrative first, then built components and breakpoints in Tailwind. PagesCMS collection config and the editorial flow had to work for non-technical staff. Metadata, structured data placeholders, and conservative font and image loading rounded out the build.

Challenges & Learnings

Medical brands punish flashy motion fast. We leaned on typography and copy-led sections instead of animation for "premium" feel. Static generation still reads as competence on mobile, at least in my experience with similar clinic sites.

Impact & Results

Review-ready build, no public launch yet. JS on the critical path stays minimal, which should help mobile scores out of the box. Stakeholders kept asking for clarity and local discoverability. I believe the structure supports both once we're cleared to ship.