Paul Jeffers · 2025
Paul Jeffers Photography
Migrating a high-end Melbourne photography portfolio from Squarespace to a headless Astro architecture — achieving perfect Lighthouse scores and eliminating ~$540 AUD per year in platform costs.
Role
Designer & Full-Stack Developer
Year
2025
Stack
Astro v5 · TinaCMS · Cloudinary · Tailwind CSS v4 · Alpine.js · Vercel
Project Details
Client
Paul Jeffers
Industry
Photography
Location
Melbourne, VIC
Type
Website Redesign & Migration
Previous Platform
Squarespace
Tech Stack
The Challenge
Moving Beyond Squarespace
Paul Jeffers runs a high-end Melbourne photography practice spanning editorial, corporate, and portrait work. His portfolio, hosted on Squarespace, was struggling to keep pace with the demands of an image-heavy, SEO-sensitive business.
Performance Degradation
Squarespace's one-size-fits-all rendering led to slow loading times and poor Core Web Vitals for a high-resolution image portfolio.
High Recurring Costs
A professional-tier Squarespace subscription ran ~$45 AUD/month — a significant overhead for a sole operator.
Unoptimised Asset Delivery
High-res images were not being served in modern formats or resized dynamically, hurting mobile and desktop experiences alike.
Limited Customisation
Squarespace's proprietary template system blocked the fine-tuned aesthetic control required for a premium photography brand.
Performance
Lighthouse: Old vs. New
A laser focus on Core Web Vitals from day one meant the new site achieved perfect scores across all four Lighthouse categories upon its first production deployment.
Core Web Vitals (Desktop)
LCP
1.1s
Excellent
FCP
0.8s
Fast
TBT
10ms
Minimal
CLS
0.002
Near zero
Speed Index
1.9s
Fast
Solutions
How We Solved It
Advanced Image Optimisation via Cloudinary
By integrating Cloudinary into the TinaCMS schema, we fundamentally changed how assets are managed. Custom utilities pull images with specific URL transformations (converting to WebP/AVIF, resizing on-the-fly) — a massive leap over Squarespace's static image handling.
Lightweight Interactivity — Zero JS by Default
Rather than shipping bulky React payloads for a homepage carousel, we used Astro's selective hydration combined with isolated Alpine.js reactivity and CSS transitions. The result: a six-second fading carousel with zero heavy bundle scripts.
Visual Headless Content Workflow
Strict TinaCMS content schemas were built for editorial galleries, corporate events, and documentary stories. Paul can now create visually rich narratives pairing text and high-resolution galleries without any developer assistance — changes commit directly to Git as Markdown frontmatter.
Component Refactoring & Streamlined UX
The codebase was refactored to use modern, reusable Astro components and consolidated generic layouts. A smooth navigation flow clearly separates Editorial, Stories, and Corporate work with premium typography that foregrounds the photography itself.
Cost Analysis
The Real Financial Impact
Moving off Squarespace wasn't just a performance win — it fundamentally changed the economics of running Paul's online presence.
| Expense | Squarespace | New Stack |
|---|---|---|
| Hosting & Platform | Paid subscription | $0 |
| CMS | Included in fee | $0 (Open source) |
| Media / CDN | Included (unoptimised) | $0 (Free tier) |
| Monthly total | ~$45 AUD | ~$0 AUD |
| Yearly total | ~$540 AUD | ~$0 AUD |
| 5-Year lifecycle | ~$2,700 AUD | ~$0 AUD |
Unlike proprietary platforms where costs increase annually, this headless architecture means Paul owns his data and code — enabling free hosting on global edge networks.
Result
A Portfolio Built for the Long Haul
The migration has redefined the Paul Jeffers web experience. The site loads instantly, achieves 100/100 across all Google Lighthouse audits, handles image optimisation automatically via Cloudinary, and completely removes server bottlenecks.
Under the hood, the transition dramatically reduces repository bloat while providing a future-proof infrastructure natively hooked up to visual Markdown editing — perfect for continuous, effortless content publishing.
- 100/100 across all four Google Lighthouse categories on first production deploy.
- ~$540 AUD/year eliminated in platform costs, ~$2,700 over five years.
- Zero-developer content publishing via visual TinaCMS editing committed directly to Git.