Showcase: A to Z of Cyber — Ghost as the news engine for a family cybersecurity education platform

Hi Ghost community :waving_hand:

I wanted to share a project I’ve been building and the role Ghost plays in it — because it’s a slightly unusual use case and I think it demonstrates how flexible the platform really is.

What I built

atozofcyber.co.uk is a family-friendly cybersecurity education platform built around a children’s book I’ve written called C is for Cyber. The book pairs each letter of the alphabet with a cybersecurity concept and an animal — Ants for Authentication, Elephants for Encryption, Zebras for Zero-Day, and so on. The goal is to give families a shared, calm vocabulary for talking about online safety — no scaremongering, no jargon, just plain English and genuinely beautiful illustrations.

I’m a cybersecurity professional with 20+ years of experience and an ISC2 certification. The site is my way of making that knowledge accessible to the people who need it most — parents and children — rather than keeping it inside the security industry.

The technical setup

The main site is a React 18 + Vite app deployed on Cloudflare Pages. Ghost Pro runs at news.atozofcyber.co.uk and serves two purposes: the news and article section, and the book launch notification signup (one email when the book is available — that’s the explicit promise to subscribers).

The main React site pulls Ghost articles through the Content API for a news preview section on the homepage, via a Cloudflare Pages Function to keep the API key server-side. Ghost handles the editorial workflow, member signups, double opt-in, and the full article experience. Cloudflare handles everything else.

The custom theme

This is the part I’m most pleased with technically. I built a custom Ghost theme from scratch to match the design of the main site — dark navy backgrounds, orange accent (#F97316), the same typography, and a consistent visual identity across both domains. Getting it right required working through a few Ghost-specific quirks, including:

  • Wrapping all post content in {{#post}}...{{/post}} in post.hbs — without this, all post variables return undefined and nothing renders. Worth flagging for anyone hitting mysterious blank post pages.

  • The {{comments}} helper placement for native Ghost commenting

  • Custom tag display logic for the primary tag pill on article cards

  • The {{#is "paged"}} wrapper around pagination to prevent it showing on page 1

The result is a theme that feels like a seamless part of the wider site rather than a bolted-on blog. I’ve set up five primary content categories — Cyber News, Cyber Explained, Cyber Mythbusters, Lessons Learned, and Good Cyber News — each with its own tag colour and tone of voice.

Editorial approach

I publish twice a week: Tuesdays for timely cyber news stories (written for parents, not security professionals) and Fridays for evergreen explainers. Every article follows a structured format ending with a “What does this mean for me?” section and a Human Factor summary table — because I believe technology doesn’t cause harm, people do, and every story should follow that thread back to the human decisions involved.

It’s early days — I launched two weeks ago — but the editorial voice is the thing I’m most committed to getting right. The Ghost editor makes that genuinely enjoyable.

Why Ghost for this project

I evaluated a few options. Ghost won for four reasons: the native member/subscription system handles the book launch notifications without me building anything custom; the Content API lets me pull articles into React cleanly; the editor is genuinely the best writing experience I’ve found; and the privacy posture is right for a site that takes “no tracking, no ads” seriously.

The hybrid architecture (React for the interactive stuff, Ghost for editorial) is the right call for this project. Cloudflare Pages + Ghost Pro runs at around £29/month all-in including domains and email. For a project at this stage, that’s the right balance.

Would love your feedback

The news site is at news.atozofcyber.co.uk if you’d like to see the theme in action. Happy to share any of the theme code for the {{#post}} fix or the tag display logic if it’s useful to anyone — it’s the kind of thing that took me longer to debug than it should have.

Thanks for a platform that made this easy to build well. :shield:

— Robert

As long as you mean the Content API key, you don’t actually need to do this. The Content API key is a publishable key, with read access only to public article content.

1 Like