// XO (RAD Media Group)
XO — a Gen-Z culture title, taken from site-section to standalone brand
A hyper-feminine culture publication on its own domain — Astro 6, Payload CMS and Cloudflare, with a procedural sticker system and a reading experience that stays fast under all the fun.
Visit the live site// summary
XO began life as a section I built inside culted.com. It's now a standalone publication at itsxo.com — "no e-girl left behind" — rebuilt from scratch on Astro 6, Payload CMS and Cloudflare Workers, with ad infrastructure ready to switch on and a personality most news sites wouldn't dare ship.
What the site is
XO is RAD Media’s hyper-feminine culture title — fashion, beauty, music and art “through a taste-led lens”, written for women and non-cis-het-male Gen-Z readers, with a monthly reach of 25 million. It started as CultedXO, a section I built inside culted.com with custom permalink and sticker plugins on WordPress. It has since become a fully standalone brand on its own domain, and I built that too.
The challenge
Take a publication with a deliberately playful identity — scattered stickers, script typefaces, a scrapbook energy — and ship it as a serious, fast, accessible news platform. The fun had to survive contact with performance budgets, screen readers and a strict Content-Security-Policy.
What I built
The full platform. Astro 6 front end on Cloudflare Workers, Payload CMS headless on its own subdomain backed by Cloudflare D1 and R2, 30-day edge caching with stale-while-revalidate, and Cloudflare Image Resizing serving responsive srcsets at five breakpoints. No client-side framework anywhere on the public site. The entire CultedXO archive came across from culted.com — text, images, SEO fields and custom metadata intact.
The sticker engine. A procedural decoration system that scatters the brand’s stickers across every page — density computed from page height and breakpoint, weighted scale distributions, collision-avoidance so stickers never sit on text, positions persisted between visits. And because decoration should be a choice: an accessible on/off switch, with the whole layer hidden from screen readers.
A brand-first reading experience. The XO logo morphs between pages with native CSS view transitions, articles get a rose reading-progress bar, editor’s picks run in a masked marquee, and share uses the phone’s native share sheet. All vanilla JavaScript, all under the CSP.
Publisher infrastructure. Ad slots at IAB sizes with reserved dimensions (zero layout shift), built ready for Google Ad Manager — the integration is planned but not yet live, so house creative fills the slots for now — plus a commerce module with click-tracking through a custom Payload endpoint, newsletter capture on a first-party API, Google Consent Mode v2 with denied-by-default, full NewsArticle structured data, RSS, author archives and server-side search.
Why it matters
Most “fun” websites are slow, and most fast websites are boring. XO is the proof you don’t have to pick: a site with script fonts and scattered stickers that still ships zero framework JavaScript, serves from the edge as cached HTML, and passes the accessibility checks most sober corporate sites fail. Personality is an engineering problem too.
// keep reading
Other case studies
An online booking system for a Dartmoor dog field
Mutts on the Moor
A booking plugin heavily customised for a dog field — Stripe payments, time slots, and a fresh gate code emailed per booking.
- WordPress
- Elementor Pro
- Custom PHP
- MotoPress Appointments
- +4 more
A 1,200-listing business directory for the W4 community
The Chiswick Directory
A searchable, categorised directory of 1,200+ Chiswick businesses with user accounts and self-service listings.
- WordPress
- Directorist
- Elementor Pro
- User accounts
- +2 more