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.
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:

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:

🔒 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:

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):

✉️ 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.

❔ 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:

⭐ 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.

✍️ 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.

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:

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

🔮 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.

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.