Jannis Fedoruk-Betschki Avatar
Jannis Fedoruk-Betschki
Hey, I’m Jannis (he/him). I am a university drop-out who ended up as a #softwareDeveloper by accident. I’m interested in #sidehustles, cooking, and making websites less of a black hole for everybody. I also run magicpages.co, a Ghost CMS hosting service. Deactivated my Twitter in May 2022.

@moonmehta this genuinly made me giggle 🀭

@DavidDarnes thanks for the mention Dave! Happy to answer any questions that might pop up @redzimskidev

Magic Pages now has a 99.9% uptime guarantee on all monthly and yearly Pro plans πŸŽ‰

According to my research, no other managed #GhostCMS hosting solution offers that, apart from certain enterprise plans.

πŸ”— Details on this policy: https://www.magicpages.co/legal/sla/

Screenshot of Magic Pages's pricing table, featuring a red square around the bullet point labelled

35 degrees today - so, chilling at the lake, writing up some new "features" for Magic Pages πŸ‘€

Something I started doing a few weeks ago: Document Everything.

Even though all the code I write is internal and only I will see it (no plans on changing that), writing detailed README's makes it super easy to pick things up in a few months time.

Too many times I had to read through hundreds of lines of code again just to figure out how to use things I wrote myself πŸ™ƒ

Screenshot of a readme file in a code editor, featuring the following text: # Infrastructure Setup GuideThis README provides a detailed guide on setting up the Magic Pages infrastructure using Kubernetes on Hetzner Cloud with Helm for package management.## Prerequisites- Access to the Magic Pages Hetzner Cloud account.- `kubectl` installed and configured on your local machine.- `helm` installed and configured on your local machine.## Step-by-Step Guide### 1. Create a Kubernetes Cluster on Hetzner CloudFirst, create a Kubernetes cluster on Hetzner Cloud using the Hetzner k3s utility. Ensure you have the `hetzner-k3s` command-line tool installed.

Had a ~1 hour downtime at Magic Pages.

The initial issue was quick to repair – but DNS is a bitch, and every layer I fixed uncovered two more 🫠

All fixed now – customer websites are back online βœ…

I am absolutely amazed by the people running their #blogs on Magic Pages.

Honestly, I could spend hours just reading through their posts and ideas.

Beekeeping, space exploration, leadership, moving abroad, political activism,…and so much more.

The internet is more than tech blogs and SEO-optimised SaaS content funnels – and I love being a part of that πŸ™Œ

@vitobotta yes, been lurking for the last few weeks – looking forward to v2.0!

Time to give back. Magic Pages is doing pretty well – growing in a healthy manner every single month.

While that brings a ton of technical challenges, it also means that there is some cash to give back to the open source community that helps solve them.

While I have already sponsored the Ghost team themselves, I have now also added a monthly sponsorship for @vitobotta's `hetzner-k3s` project, which will soon power all Magic Pages Ghost websites πŸŽ‰

@moonmehta thank you, Jatan! Glad to have you on board πŸ™

@hank @DavidDarnes makes complete sense - thank you for sharing your perspective on that 😊

@Kye haha thank you for providing evidence to my early decision against AI chat bots/help centers on Magic Pages πŸ˜‚

I've had the exact same experience with every LLM chat so far. Great for obvious questions. Horrible for anything more in-depth 🫠

@DavidDarnes @hank absolutely!

Take WordPress, for example. If wordpress.com was the only option to host the CMS, it wouldn't be as successful as it is now.

Still a long way for Ghost to get there, but more hosting options always means more opportunities for Ghost itself.

@DavidDarnes @hank@mastodon.designy the goal has never been to steal business from Ghost(Pro), but to create more opportunities for people.

And that's going great. The biggest group of new customers are, in fact, self-hosters who are too fed up with managing their servers, but not annoyed enough to pay the 25$/month plan.

Yes, there was the occasional migration from Ghost(Pro), but I truly believe that the sum of my actions with Magic Pages strengthens the Ghost community, rather than the opposite

@DavidDarnes @hank I think you both have excellent points here.

Is Magic Pages just undercutting Ghost(Pro)? Depends on the perspective. Most people come for the pricing but stay because of the support.

In my eyes, the question can also be turned around: what justifies a 25$/month plan just to upload custom themes? That makes it completely unaffordable for most small bloggers, who still want to use custom themes.

And that opens a market opportunity. Competition is always great, in my eyes.

@Kye whoopsie, just saw this now. Super happy to read that all of this was part of the decision making 😊

@gexos glad you’re enjoying Magic Pages 😊

It's been 74 days since I decided to add monthly and yearly plans to Magic Pages.

The last 3 days I have soft-launched these plans to select test users, and now they are ready for everybody!

Special thanks goes to @moonmehta who has provided constant feedback over the last few weeks. Thanks to him, Magic Pages now also supports over 30 different local currencies and regionally adapted pricing.

πŸ”— to the new pricing overview: https://magicpages.co/#pricing

#ghostcms #buildinpublic

@darren @mastodonmigration unfortunately not. There are ways to make it happens, but not natively:

https://github.com/SBajonczak/ghostblog_activitypub

@Retreival9096 @mastodonmigration as others said, most of their income comes from the hosted Ghost(Pro) subscriptions.

Apart from that, people and organisations are also donating, since the Ghost Foundation is a non-profit.

They are also pretty transparent about their revenue: https://ghost.org/open

Don't we all need a little confetti in our lives?

Didn’t think this would be in my list for 2024, but developing the Magic Pages setup process in a sleeper pod night train to Hamburg is pretty fun πŸš‚

What do socialist apartment buildings and Ghost CMS websites on Magic Pages have in common?

Well, not that much any more πŸ˜‚

Here's a quick nerd-out that tries to break down a tech concept into an easier metaphor – while explaining how Magic Pages became a lot more efficient by reducing simplicity.

https://jannis.io/posts/nerd-out-simplicity-vs-efficiency/
#buildinpublic #indiehackers

The emotional roller coaster with launching the new Magic Pages customer portal & pricing πŸ™ƒπŸŽ’

I thought I verified everything with the new payment processor…but no πŸ˜‚

Ugh…I need a holiday after I am done with this…

#buildinpublic

Here we go – the first new Magic Pages customer portal out in the wild.

This will make #GhostCMS hosting even more accessible now.

A single login.
Monthly and yearly prices.
Customer support straight from your Ghost Admin.

I am really, really, really excited about this πŸ˜±πŸŽ‰

Need to set up the production prices tomorrow and then roll it out to existing customers slowly.

#buildinpublic #indiehackers #bootstrapping

Yesterday, I thought I could finally test what I've been working on for 6 weeks.

Turns out, I've built a wall. And crashed right into it. That's the downside of solo-developing. Fewer checks and balances.

But good news – while falling asleep, I actually come up with a solution πŸ™Œ

https://jannis.io/posts/hitting-a-wall/

#buildinpublic #indiehacker #bootstrapping

So, one of my servers if offline for nearly 24 hours now.

All the company I rent it from says is that they are doing β€œemergency maintenance” πŸ™ƒ

Thankfully, only one of the servers I use for a private fun project.

But this would be nightmare if it was one of the Magic Pages servers.

So, what do we learn from that? Always keep backups handy, so you can spin up a server somewhere else.

I woke up today with a few thoughts on the recent development of my side business – and how it really is a bit of a full-circle moment for me.

Spoiler: me dropping out of university might be one of the biggest assets for my business right now πŸ™ƒ

https://jannis.io/posts/finding-my-business-groove/

#blogging

My goal for January: launch a new customer portal & monthly/yearly prices for Magic Pages πŸš€

The biggest chunk of work is done – but now all the small bits and pieces need to be dealt with.

According to my to-do list, I am half way there – just doesn't feel like it yet πŸ™ƒπŸ˜‚

#buildinpublic #ghostcms #indiedev #indiehackers

Screenshot of a markdown document with a todo list: # Current Todos before launching:- [X] Paddle integration- [X] Domain Change Backend Functionality- [X] Trial Start Backend Functionality- [X] Trial Check/End Backend Functionality- [ ] Trial Upgrade Success Backend Functionality- [X] Email Limit Check Backend Functionality- [ ] Ghost Core Adaption for Customer Portal  - [X] Customer Portal  - [ ] Automatic User Registration & Login- [ ] Website Trial Start Page Update- [ ] Website Pricing Page Update- [ ] Website Feature Component Update- [ ] Website FAQs Update- [ ] Website Help Center Update- [ ] Send Email to existing customers

Yes Ellen, I always trust designers & developers that use Comic Sans.

Yesterday, my wife and I walked past Vienna's Apple Store.

The place I wanted to work at so badly. But declining a job there changed the whole life of our young adult life.

I put my thoughts and reflections together in a very personal blog post πŸ‘‡

https://jannis.io/posts/how-saying-no-to-apple-changed-everything/

#blogging #vienna #apple

@zahil deactivating my Twitter account was the best decision for my mental health I took in 2023 πŸ™ˆ

Struggled with exactly the same things you describe

@moonmehta keeping my fingers crossed this gets sorted soon 🀞

@moonmehta appreciate that, thank you Jatan πŸ™

Not gonna lie, waking up to a new testimonial like that just made my day 😁

#buildinpublic #indiehackers #ghostcms

Testimonial saying

Something like this is on top of my wish list for Ghost 6.0 πŸ™ƒ

RE: https://mastodon.online/@mastodonmigration/111733312506415141

There is one thing I really don't understand:

Competitors mystery shopping your services with fake email addresses.

How do you think you'll gain access to the service you want to test? πŸ€”

Can someone enlighten me, please?

@zahil that was the push I needed to start thinking about adding Magic Pages 😁

Still a few weeks until launching a new customer portal, but adding it to Uneed is on the launch plan now πŸŽ‰

"But, how can this be sustainable?"

That is the number one question I got in the past year of running Magic Pages.

Well, it's probably more sustainable and profitable than what you ever imagined.

And yet, it was the biggest show-stopper for growth.

I wrote my first in-depth post on my new blog, writing down all my thoughts on this topic, in the hope that it can shed some light on the economics of lifetime deals for other #saasfounders πŸ‘‡

https://jannis.io/posts/lifetime-offers-a-year-in-review/

#buildinpublic #indiehackers

@manton Had an equally weird morning yesterday.

I had to log into a critical app for my day job yesterday and I needed a 2FA token.

I opened the Google Authenticator app – and it was empty. No tokens there.

I still have no idea what happened, but now I know why backup codes exist πŸ™ƒ

@domhabersack I love it! I think it's a great "filter" to find the right clients. Those who don't like the messaging are probably not the right fit anyway.

Currently writing the January newsletter for all Magic Pages customers, and I am low-key very, very proud for coming up with that analogy to explain a content delivery network πŸ™ƒ

Newsletter will be in your inbox later on today, if you're a Magic Pages customer.

(or, if you want more tech analogies from Jannis, you can also sign up here: magicpages.co/roadmap)

🌐 Content Delivery Network for all!
Imagine you are running a newspaper. One of the fancy international ones. Your head office is in Frankfurt, in Germany. But some of your readers are located in Canada, New Zealand, or South Africa.
You could post a copy of your newspaper to them. If you pay a delivery company a ton of money, it might even be there within a day. But the thing is, the news you just shared is old by that time. You already have a new issue.
So, what if you had a printing press in Cape Town? And Auckland? And Calgary? You just email them the news, and they print them. Whoa. Game changer, right?
Well, that is exactly what has happened with Magic Pages in the last month.

@allentown love the idea about it – but I hate how most people implement it.

An MVP should not be an excuse to ship a buggy or subpar product under the guise of "testing the market".

Before creating an MVP, we need to make sure we understand what exactly what insights we're trying to get

@moonmehta Love that perspective. I've always had a problem with marketing bros preaching ".com is the only one that matters" πŸ˜‚

A nerdy confession:

Since I was around 13 years old and discovered the fact that you can register domains, I always wanted my first name's .com

Well, unfortunately I was a bit too late for that. The domain has been on sale since 2009 πŸ™ƒ

But yesterday I bought jannis.io – and while that is not the .com, it does feel like a small step in the right direction.

Nerdy 13 year-old me would be proud πŸŽ‰

@akoskm yeah, I am using Ghost for that πŸ˜€

@akoskm yeah, I am rather doing it to just have an outlet. So who cares if blogging will be dead in 2025 again 😁

So, blogging, hm?

The idea has been stuck in my head for a few weeks now. I wanted an outlet that doesn't limit me to 500 characters.

Something where I could just write about things that interest me – away from social media ups and downs.

Good thing I run a business that let's you spin up a blog in about 45 seconds, right? πŸ™ƒ

So yeah, this is my new blog – I won't write there regularly, but I promise it won't be boring tech-stuff πŸ˜‰

https://jannis.fedoruk-betschki.com

#blogging #buildinpublic #ghostcms

@Chrispyapple currently in the same shoes – also want to start a personal blog.

My go-to blogging tool is always Ghost. Though since being on the fediverse, I have also heard great things about write.as.

I think it really depends on what your goal is, since Ghost does not have an ActivityPub integration, but a really good newsletter functionality