March 2025 Update on Magic Pages

Jannis Fedoruk-Betschki
Jannis Fedoruk-Betschki
8 min read

Well, what a month. March 2025 has been another record month here at Magic Pages – and we crossed the 500 customers mark. It only feels like yesterday that I celebrated 400 customers...and 300. Well, in fact even 100.

Looking at the numbers, I can see a clear trend (*knocks on wood*). Growth is accelerating. That is extremely exciting, but also shows a few painpoints. March has therefore been mostly about these – alongside the new advanced search for customers on the Pro plan. So, here's a quick overview of the most important things that happened:

⛓️ More Flexible Cache Invalidation

In preparation of the mentioned advanced search, I had to solve a problem: how do I tell the server powering the search engine that Ghost sites were updated? Basically...how do I let it know that you wrote a new post?

That's important, because a search engine should obviously always show the most up to date information. You don't want to search and only find stuff that's a year old. Ughh...

For one-off implementations (e.g. you use the Magic Pages ghost-typesense package on your self-hosted Ghost site) the least effort would be simple webhooks. But...I do not want to set up 500+ webhooks within Ghost and manage them.

Thinking about this, I had a realisation. Magic Pages already uses something that detects changes that trigger cache invalidation. A small proxy that had one purpose: inform Bunny.net about these invalidations.

So, I took the old proxy and refactored it into a more general solution. Rather than listening for cache invalidation header to only tell Bunny.net about it, the proxy now listens and then just well...sends a webhook.

GitHub - magicpages/ghost-cache-invalidation-proxy
Contribute to magicpages/ghost-cache-invalidation-proxy development by creating an account on GitHub.

This is now part of the Magic Pages infrastructure and successfully powers all customer sites for the last 3 weeks.

🎨 Custom Fonts for Magic Pages Themes

Yeah, it was a bit overdue. In December 2024, Ghost released custom fonts:

Custom fonts
Native support for custom typography with even more control over your brand.

The three Magic Pages themes (Vienna, Berlin, Kyiv) were not updated, since I always pushed it. Other things seemed more important. However, thanks to a very persistent customer, I took another look and realised that I could do the changes while fixing a bug.

So, all three themes now have the ability to use Ghost's custom fonts:

Custom Fonts on Magic Pages themes
Back in December 2024, Ghost has introduced custom fonts: Custom fontsNative support for custom typography with even more control over your brand.ChangelogTeam Ghost This was a feature that was well received, but it took some changes from theme developers to make it available across custom themes. Since Magic Pages

🔒 Locking Myself Out of My Server

On 19 March, 2025, there was a small outage. Why? I set up a new backup server and ran an automated script that should add the credentials for the backup server to a storage server.

The storage server houses all the images, themes, files, etc. of your Ghost sites. And in addition to the daily backups of your individual Ghost sites, the entire storage server is also backuped once a day.

This automated script had one fatal flaw though, which I forgot about in the moment (yeah, that's how rarely it is used, because it's running so smoothly that I usually don't have to interfere 🙃). It set a firewall and restricted access to the server based on my home office's IP address.

The only problem: a few months ago I changed ISP and got a new IP address, which was not included in that script. I manually updated it back then. My mistake.

More details about the outage and recovery here:

Post-Mortem on 19/20 March 2025 Outage
Today, from 16:56 UTC to 17:12 UTC, Magic Pages experienced a complete service outage that affected all customer websites. Here’s what happened and how it was resolved. What happened? I was setting up a new backup location for all customer websites and needed to add new credentials to

This directly led to another rabbit hole: migrating the storage server to a more cloud-native solution. I wrote about that on my personal blog (in case you want to take a tech deep-dive):

Not For Scale? How I replaced NFS storage on Magic Pages
As most of you know, I am running Magic Pages, a managed Ghost CMS hosting platform. And if you’ve followed this blog, you might also remember that for about a year or so, the entire hosting is run on Kubernetes. Kubernetes is kind of like an orchestra conductor. But instead

✉️ Email Verification for Trials

Honestly, I am surprised it took me so long to implement this: Email verifications for trials.

In the first half of March, I saw a huge uptick in spam sign ups from some very obvious fake accounts. They rarely set up their Ghost sites – and then they did, they just sent one test newsletter (I see you 😉).

Well, while I am humbled that Magic Pages attracts more and more spam signups...they do take away resources from real customers.

Therefore, trials now need a verified email address.

Email Verification for Trials
Today I’ve rolled out a small improvement to the Magic Pages trial signup process: email verification. This feature adds an important security layer between signing up and provisioning your Ghost blog. Why this change? Recently, Magic Pages has experienced an increase in spam signups with non-existent email addresses. This not

❔ Making CDN Caching Optional

I had a very unusual request a few weeks ago: Can the CDN caching be turned off on the Pro plan? I was confused. Wasn't caching...good?

Well, turns out, there are some very legitimate use cases where you'd want that. That particular user already had their own CDN set up and configured and wanted it to have direct access to the Ghost site, without another caching layer in between.

So, customers on the Pro plan can now deactivate caching in the "Domain" tab of the customer portal:

Make CDN Caching Optional for Pro Plans
As of today, every customer on a Pro plan has the ability to toggle CDN caching on or off. This feature gives you more control over how your content is delivered to your audience and addresses some specific use cases that require bypassing our standard caching layer. Why Add This

⭐ Better Review System

Testimonials and reviews are well...tricky. As a business, I want to curate them. And so far, I have used Famewall to do so. Famewall is a great product by another solo founder, Goutham.

It has worked brilliantly. But lately, I wanted a more integrated solution. Something that makes sure that only verified Magic Pages customers can leave a review. After all, these are the the only reviews that are trustworthy.

I have therefore built my own little review system that is now integrated into the customer portal – something that only Magic Pages customers can access.

If you want to share about your experience with Magic Pages so far, please have a look at the "Support" tab of your customer portal. You'll find a link that there leads to a form:

You have full control on whether the review is just for my eyes, or whether you want it to be published on the Magic Pages website. You can also include a link to your own site as reference.

Integrated Review System for Customer Feedback
This is more of an update for internal processes at Magic Pages, but I still think it is worth sharing. So far, customer reviews (seen on Magic Pages’ website) were collected through an external service, which sometimes raised questions on how these came to be. As of today, you can

✍️ New Blog Posts

And to end this: a few new blog posts! Lately, I found a lot of joy in using customer support chats and turning them into blog posts. That way, I can send a more in-depth answer to the person raising the question, and I have content that might be interesting to others as well.

Here are the last three posts that were created like this:

The first one is a post about email sending domains. It originated from a chat in which a customer (rightfully) pointed out that all of that is super confusing. I agree.

Understanding Email Sending Domains at Magic Pages
I have recently had a conversation with a customer. And they pointed out a key issue. For somebody who has never dealt with email sending infrastructure, it is hella confusing to all of the sudden deal with “sending domains”, “mail from”, or “sending addresses. So, let’s clear things up and

The second one is about working with (theme) developers on Magic Pages. A customer asked if that is possible (yes), and how they could do that. I thought about it...and wrote down my thoughts here:

Working with (Theme) Developers on Magic Pages
As the Ghost community grows, more and more talented developers and designers release amazing themes for different use cases. But sometimes that’s not enough. Sometimes you want that little bit of extra customisation. And while some of us are comfortable with writing code, every now and then Magic Pages customer

And the third one was long over-due, in hindsight. Migrations to Magic Pages:

How to Migrate to Magic Pages (Without Losing Any Data)
One of the most common concerns I hear from publishers considering Magic Pages is about their existing content and subscribers. “How does the migration work?”, “Will I lose any data?”, or “What about my subscribers?”. These are all valid questions – after all, your content and audience are the foundation of

🔮 What's Next?

The next big thing on my agenda is finishing the Typesense-based search. There are still a few things left that need to be ironed out. After that, I am looking to finish some more infrastructure-related things to make sure Magic Pages is ready for the next 500 customers.

As always, I'm just a chat message away if you have questions, feedback, or just want to say hello.

Jannis Fedoruk-Betschki

About Jannis Fedoruk-Betschki

I'm the founder of Magic Pages, providing managed Ghost hosting that makes it easy to focus on your content instead of technical details.

You might also like

Customer Showcase

Websites powered by Magic Pages

See what real publishers have built with Ghost CMS and Magic Pages hosting.

Start Your 14-Day Free Trial

No credit card required • Set up in minutes