The Magic Pages Podcast

The Magic Pages Podcast

By Magic PagesTechnology
Download on the App Store

The Magic Pages Podcast episodes

  • A very clean Frankenstein

    Jan Persiel is a designer and UI engineer from Hamburg. He backed Ghost on Kickstarter in 2013, and there has been a Ghost site somewhere in his life ever since: his own blog, a brand manual for a client, and now two new projects on Magic Pages. One is AllesOkAI, a German podcast about AI in everyday life that he hosts with Dennis Reimann on the Pod theme. The other is the Casual Friday Club, his cocktail and mocktail site.

    Jan and Jannis compare notes on running a podcast on Ghost. Both ended up scripting most of the work, and both arrived at the same next step: creating the Ghost draft through the Admin API. They talk about themes that hide settings in Twitter fields, why Pod keeps its episode data in code injection, and why Ghost is not an everything CMS. Then Jan explains why his gin catalogue GinGinGin needs a CMS built for structured data, and how the Casual Friday Club splits the work: Statamic serves the site and the recipes, Ghost runs the magazine and the Friday newsletter from a subdirectory, and webhooks keep a single search across both.

    Jannis: Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting, and publishing on Ghost. I'm Jannis, and today I'm here with Jan Persiel, a designer from Hamburg, who has been using Ghost for longer than most people know it exists. Jan runs a much-loved gin blog, and on Ghost, he publishes a cocktail magazine and has just started a podcast. Jan, great to have you here.

    Jan: Hello, Jannis. I'm pleased to be here in this elaborate virtual room with you.

    Jannis: It's very good to have you, Jan.

    Jan: Thank you.

    Jannis: Jan, can you quickly introduce yourself to the people who don't know, who haven't met you at Indiecon and haven't seen you around online? Who are you and what do you do?

    Jan: All right. I try my very best because I usually fail doing that, and my wife always says, I have no idea what you're doing. So I'm trying to summarize it in the best possible way. So I studied graphic design, classical graphic design, and actually, you can tell my age. Luckily, we don't have video, and I'm not supposed to mention anything with a 1900 in front of it, so I won't do that. But back then, I actually started working while studying, and then I figured, oh, there's this thing called the internet, and started actually doing trainings for my co-students for web design, as far as you could call it, design back then, more like table stacking.

    And that kind of got me into this digital area. I just worked in a design agency for three years as an art director for websites. I think the pinnacle in terms of branding was that I was the art director online for the FIFA World Cup with no understanding of football at all. So everyone hated me for that. But that was that part, and then actually, that was a very intense three years with sleeping on cardboard boxes, and I actually founded my own studio.

    So not the typical thing to have better work-life balance to start your own company, but in that situation, it actually was. So yeah, that's how I got into the digital space. I worked with all kinds of things. I always thought, being a designer, that I should learn as much as possible about coding in order to be in the position to do my own projects. And that's what I've done all the time. I've never actually sold anything in terms of code to clients, because that's simply not my offer.

    But yeah, basically brand design work, lots of user interface design work. For the last 12 to 14 years, I've been working heavily in e-commerce, optimizing of large sites. And if you speak German and listen to this, you could probably find some of the things I've done on the UI Engineering podcast, which I ran with my, back then, co-worker Dennis. And actually, Dennis is the person I'm starting this new podcast just now, as you mentioned.

    So I think that's that. And you mentioned my gin blog. That's one of those stupid things where I think I need to document something and then make it accessible to everyone and put it on the web. And then you end up with close to 2,000 bottles in your office. And it becomes a hazard to some extent, but it grows. And here we are.

    Jannis: I'll definitely link to your German UI podcast for those who want to have a listen there. And those stupid things that you want to document. Your gin stuff has definitely shown us some nice sights of Hamburg when you welcomed us there back in September. So I think it was useful, a useful little hobby on the side.

    Jan: Yeah, good to see. At least finally it pays off.

    Jannis: Jan, I think you are one of the, let's say, people that I know that has used Ghost for the longest so far. When was the first time that you encountered Ghost as a content management system? And what were your first impressions back then?

    Jan: My first encounter was on Kickstarter because I'm actually a founding member of the Ghost project. It still sits as one of my early projects in my profile. So that was my first encounter with it. I'm that old that I actually even used WordPress when it was still called cafelog or something like that. So I tried even those things. Actually, I built a couple of WordPress themes back in the day. And actually that's an exception to what I said earlier. I actually sold those to two or three people.

    And then I saw Ghost and I was a user of Posterous back in the day. I don't know whether you've actually seen that. It was a very simple email to website or email to blog service. And I actually used it while working in India, for example, and with lots of my students. I'm actually a trainer as well. And I did a lot of development work and have been training journalists since 19 something. And I like the simplicity of Posterous back then. Just chuck your stuff into an email, send it off. Then have a very simple post and no shenanigans around it. Either it was just audio or video or just an image.

    And then I saw this Kickstarter project called Ghost. And I guess like everyone back then, I was totally happy with the way it presented itself in a super simple way. I think back then we had writing and Markdown on one side and then a preview on the right side, if I recall it properly. And that was one thing I guess what was even cooler was and that was very sneaky and smart at that time. I think there was a dashboard which had a fancy curvy colored thing, and it didn't look like the crappy WordPress dashboard where you had like widgets and it just looked like awful open source. It's not even designed to some extent, but just functionality.

    And that kind of got me. Then I saw, oh great, it works on mobile and it's simple. That was it. And I was kind of sold. Yeah, I loved it. And was actually going back to the Kickstarter site every day and looking at what was happening and very keen to get my hands on it. And I think I actually downloaded it exactly the day when 0.2 or 0.3 came out and installed it.

    Jannis: So since let's say 2013-ish when the Kickstarter was active, have you always used Ghost since or did you also try other things?

    Jan: I think there was probably some Ghost install in use at any point in time. My personal blog, which is really some weird way sandwiched into my regular site. So I have that one, which will be janpersiel.com. That is Ghost and it's actually just SEO functionality. You shouldn't look at that, but it's really just a sub part of my main studio website. And I guess we might even have a pattern here that we might be talking about a little later. Yeah, there was always something. And as I said, having been busy doing WordPress things at certain points in time, I always held on to Ghost whenever I could. There was a time when I actually did a lot of things in ExpressionEngine because that had very nice and clean setups for content and fields were properly designed and you didn't just chuck data and stuff into a page, which I think I told you that this friend of mine, Dennis, had this wonderful saying at one point when I needed something and it wouldn't quite work the way I was doing it.

    And I said, yeah, or I could just put it on WordPress and then be done with it. And there's a plugin for it. And he had this nice sentence where he said, listen, I'll help you. Friends don't let friends use WordPress. And I think that's very close to a good t-shirt print. And yeah, he helped me with that. And there was always that Ghost thing. I even had clients, even back in the day when it was still horrible to install it, but a very simple Ghost back then and even had it with, I remember that was one client. They used it for, we used Ghost basically for a brand manual. And I remember the guys who were, it was basically a hosting company more or less, and they were doing lots of e-commerce, et cetera.

    And they were looking at it and installing it on their systems because we wouldn't just have it at Ghost(Pro), the official Ghost provider back then. And I remember that the guys who installed it, they were furious about it because they were basically doing nothing else but sitting on the terminal all day. And they hated it from the very first second and said, what is this? Why are we doing this? This is weird.

    Jannis: Did they come up with the idea of using Ghost or did you come up with the idea of using Ghost for them?

    Jan: I think it's that far back in the past that I can say it was me.

    Jannis: Okay.

    Jan: I didn't really worry too much about it because the thing we wanted, and that's probably what always kept me around some Ghost install was it was super simple. Once you got people to the point where they understood what Markdown is, which I personally try to bring forward whenever possible, because I think Markdown is a way of having people writing things down, which makes them think. And they're not being distracted. They focus on the main things. They can just have an outline first and then their outline turns into level two headings and then they can add stuff underneath.

    So that's very close to actually the thinking process and it cuts away all the bullshit. So I don't know how clean this podcast is. Pardon my French. Otherwise just bleep it out.

    Jannis: No bleeping here. As long as it's the truth.

    Jan: So that was one thing and that always helped. And in that situation, it was the same things. We wrote very simple Markdown pages, basically in Ghost, had this brand manual inside of it and that way we could all access it at the same time without any complicated building processes or anything like that. And we just placed stuff there. That was it. That helped. Yeah.

    Jannis: It's really interesting because we went through the same thing now at Magic Pages here. We had, so since Sviatoslav joined in February [corrected from “March”] this year and then Mariia joined in April officially, we had the need to have a knowledge base of some sort to document the knowledge that I had in my head that I had in different documents that we just had flying around. And we tried all kinds of tools. We tried at some point a tool called Outline. Then we had a self-hosted AFFiNE instance, like lots of those things that come from the Notion world of things or try to imitate Notion in a certain way. And at some point we got so annoyed and Sviatoslav just suggested and said, why are we not just using a Ghost site, like a private Ghost site?

    We all have access to Ghost. We can install our own search engine there and this can be our documentation. And I was just sitting there for a couple of seconds and thinking, yeah, why not? Because everybody knows how to use it. The issue was always with all those other tools that one person in the team knew how to use it. The others didn't. It didn't work on certain configurations and stuff like this. Even though they were all browser-based, they were slow.

    So now for the last like what, one and a half months or so, we're also just using a Ghost site for that internal documentation, also for like brand documentation, but just processes and everything. And honestly, I think since then we all have the joy back to document our work and to document processes and what we do and stuff we want to share with whoever comes after us in that sense, whoever joins us in a couple of months or years or so.

    So I find it really funny how like those different teams come to the same conclusion at some point and just say it might be a little bit hard to set up, but in the end, once you bring everybody on there and once they start writing, they have the feeling that they can just write the documentation without thinking about things left and everything.

    Jan: It's something you can maybe just put the link into the show notes. There's a last, was it this year or last year? I think this year at the lovely beyond tellerrand conference in Düsseldorf, there was one talk or a presentation of the founder of iA Writer. And he talked about how he's been doing this Markdown editor for Mac for years and what has happened to it in the AI age. There's the, that's actually nasty. And then branding it iA Writer and then the AI age.

    Anyway, there are overlaps. And that was always to me a little bit like using Ghost to some extent because it's so clean, there's not much about it. It's really about the content and focusing. And if someone is really interested in that process, how that program got created and the thoughts behind it, I think there's a lot of overlap when it comes to working in Ghost or as you described it, misusing to some extent, Ghost in order to do things. And we actually, fun fact, when we talked about writing down notes for our new podcast, we were like, yeah, why don't we put this? And essentially I said, let's make it a draft of the episode and write into it.

    It's just Markdown. And we both have access just like you described it and said, yeah, good. One tool less to worry about.

    Jannis: Yeah. Let's actually talk about your podcast. I remember the first time we talked about it was I think the first day at Indiecon where we were setting up our booth and you were there to support us. And at some point we got talking about the fact that you wanted to start a new podcast. And I obviously had our podcast, the Magic Pages podcast as a proof of concept for this new theme that we created like earlier this year, it's called Pod. And the idea was, hey, like we have Ghost, Ghost can do RSS. A podcast is essentially just an RSS feed with a few fancy fields that, yeah, different people, mostly Apple to this extent came up with to populate it.

    And you were looking for a solution to do a podcast. And I remember back then you were skeptical. You weren't quite sure whether you wanted to use Ghost or not, but now you ended up hosting your podcast on Ghost itself. Can you quickly just give us an introduction of what your podcast is and how you ended up in that decision of hosting it with Ghost or hosting it on a Ghost site?

    Jan: Yes. So first of all, as I mentioned, it's like the, a resurrection of what we did before. So our first podcast, the UI Engineering podcast was about developers and designers working together and basically trying to eliminate friction in between two different team or basically what's the English word, Gewerke in German, the different types of people working together. We did conferences on all kinds of things and we had people and interviewed them and got some insights out of it. And we wanted to share what we experienced in bigger projects because we thought there are so many people who don't get the chance to work on large scale projects as we did.

    So we wanted to share our experiences and thought if we share that, it's good for everyone to learn from that. So that was back then. And we had a couple of episodes where we, Dennis and I, we were just like calling each other and talking about stuff because he lives in Bremen and I'm in Hamburg. And we're just chatting. And at some point we said, we're discussing things here. We might as well just hop on some video conferencing thing and just record it. And those were the additional ones. We called them something like, I don't know, it's not kurz und schmerzlos, but the quickies or something like that. And they sometimes actually, they weren't that quick.

    They took quite some time, but they were just sharing things. And yeah, we didn't work on the same projects for quite some time. Dennis was very busy in the Bitcoin spheres for some time. I was still doing the e-commerce world to some extent and branding. And then we got to call each other again and talked about experiences with using AI. And then we said, we're talking again. We should be recording this once again.

    So we basically got the band back together to some extent and started hitting record. And yeah, so the name is AllesOkAI, and OkAI with AI instead of A-Y. So you can find the podcast at allesokai.de and that's obviously hosted on Magic Pages. Where else would we go? And yeah, set it up there. And I remember one of the things that I asked you at the very beginning, because when you said, okay, yeah, we're hosting it obviously on our servers. One of the biggest things I remembered from our podcast back then was that we couldn't just put it on some small virtual machine because back then podcasts were a little bit more of a typical polling things, people really subscribing via RSS.

    And when you published something and our podcast actually got a little bit of traction after some time, you had a pretty heavy load on your servers because basically the moment you published or updated your RSS feed, all of these clients were starting to pull. And that was one of the things where we actually got a CDN hooked up back then, actually Dennis did. And that was one of the things I was wondering about whether that would be even a thing that would be possible and whether it would kill us if we put things on Magic Pages and how the whole thing would actually hold out. Not that I wouldn't trust the service, but I didn't feel like breaching any fair use policies or anything like that.

    The idea of using Ghost was somehow a natural thing because I often look at whether it makes sense because I just feel comfortable using it. It sounds stupid, but after all, I'm just a designer. It's a lot prettier than a lot of the other tools and it just works. So muscle memory, all these kinds of things come into play. So yeah, when you said, no, that shouldn't be a problem. And so far it shouldn't be because I think the numbers are not that crazy yet. We thought, yeah, why not use that?

    But there's a different thing as well. It's not just about setting up episodes quickly. We wanted to actually collect email addresses and not for the sake of collecting them, but we said there's so much that we will be talking about. And there's so much stuff that we might actually want to do potentially in the future, getting people together, maybe doing tutorials and live sessions, et cetera. We should actually give people the chance to subscribe to a newsletter at some point and maybe just offer something to our community and maybe have a couple of not necessarily closed posts, but actually guide people and do summaries and point people towards things that we find.

    For that reason, Ghost was a good choice as well because we got newsletter functionalities for free, basically, and that's why we ended up using it. We've actually drifted away from it to some extent, but we can talk about that in a second. So those were the thinking moments or the things we were thinking about when we chose it.

    Jannis: But let's talk about this. Where did you drift away from it?

    Jan: So we're doing a video version on YouTube, which is basically just recording us in Proton Meet at the moment. And we recorded a new episode yesterday and tried a new tool, which did not work that well. So one of the recordings broke, at least the video ones. And there's a lot of stuff to do when it comes to podcasts. It's not just the editing. It takes a lot of time. It's easy to listen to a podcast, but there's a lot of stuff happening.

    So the very first thing that was great was that you had this podcasting theme ready, right? So we didn't have to do much. I basically created a logo and a little bit of a brand identity. We created little applications to automatically generate our covers, social images that we could share and stuff like that. So build little applications for that. And the Pod theme that you created has a lot of the things one needs to just put the episode on the web, right? And you integrated a lot of the Podcasting 2.0 things in it.

    So wonderful. That's very forward thinking and not like a lot of the Ghost themes out there. And I've used Ghost themes before for podcasts. So for example, my short-lived gin interview podcast, the Gin Show, The Fabulous Gin.Show, sorry, was actually on Ghost for a little while. At least I thought so. And I could never get podcast themes to work on Ghost because basically those weren't podcast themes. They just looked like podcast themes and they basically pretended to be something.

    And then there were like weird workarounds to actually make episodes work and the feeds did not work properly, etc. And feeds are really, it sounds so simple, but feeds can really act up. There's one thing that doesn't work and feeds fail. You get these notifications from Apple and Spotify, and it's like, there's something wrong. And you think that's impossible. I don't know why. And then it ends up that there's one digit short of something and okay, that thing doesn't generate the full length, etc, etc.

    So it was great that it was there. However, you have to use certain things even in the Pod theme, obviously, to make it work as having the episode player there and having all the data in the right slots. And I think that is one of the things where drifting away is the thing that happened. And we're actually thinking about this at the moment. It's the first time sharing this with you and everyone else.

    Jannis: I feel honored.

    Jan: See, maybe we can't even publish this. This just comes up.

    Jannis: No. Whatever you say now will nail you down on it, okay?

    Jan: Yeah, exactly. Okay. So we have this huge script. So Dennis actually compiled a little monster, which does a lot of things. It takes our video recordings. It automatically does the transcripts. It generates certain metadata, etc, etc. And all of that is there. You offer to put in metadata. I don't even know where it is. It says somewhere in the Pod documentation, and then you can put some things in and upload your episode or put the URL there and you get the length, etc. All of that is there already from our monster script, right?

    So why do we need to copy paste it somewhere? So I guess the next thing we will be doing to some extent, and we just had a couple of Signal messages back and forth this morning, was maybe we would just create posts on Ghost automatically from that script as well, and just get all the data in there instead of just copy pasting data from a TXT file that is being generated. So that's obviously the next thing. Now, what everybody does not see in the audio version is that Jannis is looking like, yeah, Captain Obvious. Of course you do.

    But the thing is, see, Dennis doesn't come from the has never used Ghost before, really. And questions like, see, I've uploaded images here. Where's that media manager thing? Where can I see what I've uploaded? And I was like, it's not there. It doesn't exist. It's something you would expect, but it's not there. It might come at some point, but just deal with it for now. If you still know where it is or have a tab open, copy paste the URL. Oh, okay. And not knowing that, he didn't even know that there was an API, or at least wasn't aware of it. So that's why we're moving towards that yet one more automated step.

    Jannis: Yeah, I'm Captain Obvious here. I'm just nodding on this side, because that's exactly how I publish our episodes. Because I…

    Jan: So we don't need a proof of concept anymore. We have it.

    Jannis: You technically have it, and you're on it right now. When people are listening to us talking about this, then we have the proof of concept for the 12th time, yes. No, because I think it's super interesting because I am absolutely sure, and I mentioned that to you before when I invited you for the recording today, I'm absolutely sure that the two of you are the first people outside of Magic Pages or outside of me essentially that is really testing the Pod theme. I know that there are a couple of installations and people have uploaded like one episode of a podcast like here and there, but nobody has actually gone out and said, I'm going to do this regularly now.

    I love the fact that we have the option now that there is a theme in the Ghost ecosystem and people in a year or two or three can come back to this theme and use it. That's the entire reason why I've done it. But it was super valuable to also hear from Dennis specifically, like what didn't go right for you guys. He submitted pull requests on GitHub and through them he found a couple of bugs that, like, I didn't notice because I'm using it differently than you guys were using it. And it's super interesting for me to now hear that you also went through the exact same steps at the exact same episode counts that I went through because the first one or two episodes of our podcast, I uploaded the same way.

    I said, I built this nice tool here. I can put all my data in there, the structured data I need for an episode to basically be populated. And then at the third episode, I remember I got really annoyed with this and I thought if I'm already doing all the processing on my computer, I basically have, so I'll be recording here in a tool that's called Descript, which I'm mainly using because it automatically transcribes our audio.

    And then I can go in and basically edit based on the words that we say instead of having to deal with audio waveforms and everything. That's for my brain at least a lot easier. I know there are other people around that hate that. For me, that's the easiest way to essentially edit a podcast. I see what Jan said, what I said, I can edit it. Then I download the audio file and I run it through a local LLM to transcribe it again, because the transcription of Descript is sometimes really buggy.

    So I transcribe it locally on my computer and that is running through a script. So I say, here is the audio file, transcribe it. Then I have the same as you, something that generates the episode covers. And again, the natural steps similar to you, or the same thing as you experienced, the natural step is to then not say, okay, I want to copy and paste this into my Ghost editor, but to just say, okay, put this into Ghost as a draft for me. And I have it in there.

    And then I look at the draft in my Ghost editor and I go over it and I say, okay, you even managed from the transcript itself to find the links for the show notes, all the things we mentioned. Hopefully they will all be there. Hopefully it will find all the things that we mentioned with weird names that sometimes it might mistranscribe and everything. But this was a game changer for me as well. And I find it really interesting that you came to the same conclusion. And it makes me wonder how we can improve this workflow because actual, let's say, podcast hosting services that do that, they obviously have that process somewhere in there. You drag an episode in there, it automatically transcribes it for you.

    You have everything in there. And we're misusing Ghost here a little bit. Ghost wasn't meant to host podcasts. It can create RSS feeds and we're using that feature. So I will take this as a hint to think about improving the tooling here so that it's even easier for us and for other people to use Ghost for podcasts, to include podcasts into existing sites that we have. Because if let's say two parties in here are using the same theme and come to the same conclusion, I think that's a very strong signal.

    Jan: Yeah. Some people might argue the sample size is a little small, but yeah, at least we have a very strong indication at this very moment. Totally agree. To be honest with you, and I think it's fair to say and mention that as well, I am extremely happy that you basically made this theme available within or to... No, actually it's even publicly available, I think, right? It's not even just limited to Magic Pages. There's a lot of things which simply I didn't have the time to do anything. As you mentioned, you got the pull request from Dennis because he was basically taking care of that while I was doing other things. And there's a lot of stuff that just popped up here and there.

    And I think in order to make this theme a little bit more comfortable in certain situations, there's probably some stuff we will be just chatting about outside of this or beyond this call, and maybe they find their way into that. But I'm really happy to support getting this thing to a level that works because it works already and it's actually a real podcast suitable theme. And as I said, it's the first one I've been using that actually does that. And maybe that's one thing to mention as well. It is something that doesn't misuse Ghost in the weirdest way. And when I'm talking about misuse, I don't know whether I should actually get started, but I'll mention it anyway.

    So I've purchased quite a good portion of Ghost themes myself. I've probably used 10% of them at some point and basically bought a lot of the others and looked at them, studied them and tried to figure out how they work, not really just as a training thing, but actually seeing whether I could make them work for me. And sometimes you see these themes out there, which they look incredible and you think, is that really Ghost?

    What is going on here? There's a lot of stuff. And then you download it and you first you buy it and you download it and then you go into the documentation and maybe sometimes you might go into the documentation beforehand, but I like actually playing around with it. And then you find the way you set up the homepage. And I've actually just looked at the toolset from the last or previous, depending on whenever this airs episode where you talk to Cathy.

    So I need to look deeper into what she's been doing there. But a lot of these themes are misusing so many things. Place something in the Twitter field A and Twitter field B and all of these Open Graph things are being misused in order to reshuffle your home page. You need to put in some pipe character here and then write down exactly the slug of the pages you want to include here and there. This is very creative and that's good. And I've been doing things like that myself, and I hate it. I hate it for one thing, not that I feel guilty that I'm using a form field which has a label that is something else. It's actually one of the bigger beefs I always had with Ghost that there's no let me call it custom field.

    And I'm not talking about these custom things in WordPress where you just open all gates to hell and nothing will work anymore. I'd be happy to have one thing in there and that you could use at some point and make something out of it. I think the limitation within themes themselves and just having these, I think it's 20 fields at the moment, that's great. It makes people think what you want to do and it stops you from building something which is again like some spawning thing from hell that tries to be everything. And I think it actually helps when a theme is focused on something. Variations, that's fine, but you can do variations in a lot smarter ways than a lot of the themes are doing it.

    So coming back to the podcast thing, I like it, that it is a dedicated thing. It's clear, it's not mucking around with any fields that are not supposed to take these kinds of data. And yeah, should you ever share something on, I almost said Twitter, on X, whoever might still be doing that, is then you're not surprised that something weird gets shared, right? Because you've got it in the theme field, supposed to be there for Twitter. That's why I like the Pod theme and I think it needs support just for being clean and doing what it's supposed to do in the places where it's supposed to get these things and not just somewhere because it's a way of doing it the sloppy way.

    Jannis: Yeah, I appreciate that because that was kind of the intention going in as well, that we say we have a need to get different data and we have no way of storing all the XML that you need for a proper podcast feed in that sense. And there were two thoughts I had from that. You can obviously use like a normal HTML card and put it in there as like a JSON or any other form. But what I've started doing, I don't remember when that was, I think it was for a custom project for a client that I did for a theme where we had a similar issue where the client asked, okay, we have custom theme settings, can we extend them? We need more of them. And I said, no, there's a certain reason why we only have 20 of them.

    It's obviously what you mentioned, that's the fact that you want to focus something. You want people to focus on what's important and to make decisions, what is really necessary to change and what is not. Otherwise we'd end up with a WordPress kind of Frankenstein monster that has 500 different settings and you have those everything themes that are so popular with WordPress and not performing at all. And what I started thinking is all I need really is a JSON. It's just a JSON. Where can I put this? If this wasn't a Ghost site, where would I put a JSON? Simple JSON structure. Where would I put it? I wouldn't put it somewhere in the middle of the post or the content.

    I would put it at the end near the footer. And then I realized, wait, we do have code injections, one for the header, one for the footer. So let's just use them. And that's essentially what we're doing with the Pod theme that we say, hey, we have this data that we need that we can generate in the Pod metadata generator, which I'm also linking in the show notes, or you can have it generated by a script like you guys do, like I do for our podcast. And the only thing we need is that this structured data that we have created here is somewhere on the page. Pod, the theme, will pick it up. Ideally you put it in the footer of the page, of the post so that Ghost can render everything first.

    And then it picks it up from the footer and it says, okay, I now know that this is this field. I now need to render this field this way. And yeah, that was pretty much the intention of that. Not reuse any fields, not apply like weird hidden tags, not have a HTML card in the middle of the page that loads all of this, but just to put things where it makes sense, where it's not disturbing and coming from the thought of where would I actually put this if this wasn't a Ghost site. If I would just create this site from scratch by hand, write the HTML, where would I put this? And it wouldn't be in the middle of the page somewhere.

    Jan: Yeah, true. And one thing you mentioned, maybe I'd just chime in on that point. WordPress is like everywhere. And of course, everyone has some, at some point in time, people have somehow interacted with WordPress at some point. And you can go to any company and people will always say, oh, yeah, yeah, I've worked on the website. And what I mean is they've placed things on WordPress very often. And that's the mind they, or the state of mind they have when they approach Ghost and the questions they ask.

    So what you just mentioned, limit these options is something, sometimes it feels annoying to some extent because you need to explain things and people just want more and more things and it gets complicated. And that's why a lot of the sites end up being relaunched and actually fully relaunched because they're not, they're beyond repair, right? Because they're totally screwed up and things are being welded on left and right and cables going from left to right. And it's just a mess. And I had this experience where one of my longtime clients actually got a website, I guess like maybe 13, 14 years ago. And they started off on a WordPress site back then because the guy I actually brought into the game was doing all kinds of things and they agreed on using WordPress back then.

    And then we actually had it on Grav for a while because the WordPress thing didn't work so well and the hosting they had to use wasn't really working with WordPress. Long story short, 10 years go by or maybe even 12. And now they came back to the point where they actually wanted to write something and wanted to have their little law firm website at the same time. And that's actually where Ghost came back in again. And because we're talking about these fields of data and settings for design, that was something where I actually learned a lot about this mentality people have because they came from this weird world of WordPress and having this perception of everything.

    And we agreed that actually a lot of the things would make sense for them to move to Ghost. And so we did. And I said, I'll actually create a theme and I'll do it in a general way, but you guys would be my proof of concept that people can use it. And that's not just whether the content can be moved over or whether the design will fit, et cetera, but how we can improve it and how this process could work. And I think that's something doing this discussion and bringing them in early and showing them prototypes of the first things that could be there helped a lot for them to understand how certain things worked and do work and to actually come to terms with, okay, we're limited.

    And yes, they said, move this thing up and down. The typical homepage thing that I just talked about where it usually would be just one thing, I had to move it up and down in the theme. And then we discussed whether it would make sense and whether it was just their idea or whether it would make sense for everyone. And that helped a lot. And I think this discussion is valuable to lead with clients and to talk to them, with them, of what they actually want to achieve. Cathy said that she's listening to how people are programming their websites, right? And why certain things show up somewhere when she customizes themes.

    I think that's a very valuable thing. And once you've agreed on something, you actually come to the point where you see, there's not that much I want to change every day. Once it's up and running, I might need to tweak certain things because the content type is different or it's from a different category. But beyond that, there's usually very little to touch, to change and to do. And for that reason, I think it's sometimes it just feels like a huge marketing thing to have all these change it around kind of things. I sometimes wish there was just two versions of something instead of having 15 toggles to compensate for just one change.

    Jannis: Yeah. I think that's a very good way of putting how I always present Ghost to a certain extent. When people reach out to us and our support inbox before they start using Ghost and they say, Hey, we currently have a WordPress site or we have a Webflow site or something like this. They ask, this is our use case. Do you think Ghost would be a good fit? And my answer is usually you can make it work with Ghost, especially for something that for publications that publish something regularly.

    I think it's a great fit, but you need to know that Ghost is not an everything CMS, like Webflow or WordPress. But it's also fair if people then say, okay, then it doesn't work for us. But on the other hand, from a developer's end, probably also from a designer's perspective, saying, this is how we intend it to be used. And if we want to be cruel about it, you either take it or leave it. That's probably the intention that the Ghost team had to a certain extent as well to just say, I know that this was one of the intentions of creating Ghost where they said WordPress is developing into this everything CMS. We want to be focused on back then blogging right now into a software for publishers to regularly publish work.

    It can now be a newsletter. It can be just long form content. It can also be short form content now with the social web and ActivityPub integration. But it is focused on one thing, that's publications. It's not event scheduling, even though Cathy has a great tool for making events in your local community visible. It is not something for, let's say, having elaborate think pieces with the fancy New York Times graphic elements where you scroll through investigative stories and you have those elaborate visual storylines going on. No, it's a software for publishers. It's a software for people that publish something. I do like the way you framed it to just say, yeah, sometimes having those limitations gives you maybe an outlook, forcing a decision maybe, and forcing a decision on how certain things should be.

    And in my eyes, having seen sites, really huge sites sometimes go from this nearly unlimited WordPress thing that they had to a Ghost theme and say, okay, how do we actually fit this content that we have built over the last 20 years sometimes into this theme and into this content management system that is Ghost? And how do we make this fit and how do we go forward with our publication process? It's sometimes a very interesting process to look at, both from the outside, but also from the inside to see what decisions are made and where people sit together in a room and then say, actually, we just did this because we could, but nobody actually looked at this data or that data.

    It sometimes goes in both ways that you realize with the limitation that certain things you just use because you could without any intention behind it, so to say.

    Jan: True. And that's actually a point where I could probably talk about this cocktail thing.

    Jannis: Yeah, I was wondering how we can get the segue to that. Talk about your cocktail thing.

    Jan: Actually, it doesn't even need one because we're right in the middle of it. I probably have to explain it. I, as you said early on, I have this gin website or gin blog. And one of the things when I did this back then was that I started it at the probably height of the gin craze. Not really because I wanted to write about it, but because I thought, yeah, I should just note down those tonic and gin combinations. And if I try them and think they are good or not, then why not share it? Okay, that got out of hand. We dealt with that and talked about it.

    But one thing I did, and by the way, that started, I'm not quite sure. It might've started on WordPress because I had a very nice magazine style theme there, which was actually suitable for what I wanted to do. And not the typical thing, oh, it looks wonderful. And you look at this restaurant theme and because it's lunchtime, you think it's the perfect theme for you to do. And then when you meet again the next day in the morning, you think, what have we been smoking to pick this theme? We don't even have the content that fills 10% of what it's supposed to be.

    So now back then, that was great. I got super annoyed with WordPress in the shortest time I could think about again, because I knew what I could have on the clean other side of things. And then my focus shifted a little bit. I started doing less of the blogging kind of style because that somehow moved to Instagram. And I started getting my data about gins and these tonic combinations a little bit more organized and in place and wrote down things and thought, yeah, I can just take a nice pretty picture of a gin tonic and put the bottle there and just talk about it on Instagram until I run into the caption length limits or I do it properly.

    And then I thought, if I do it properly, I should think about this in a way that I might be able to make it an app later on, because I want to have this with me when I check things. And maybe a website is theoretically a way that has the lowest barrier to things, but maybe you don't have network at a bar where they have different gins, et cetera. So that was the thinking. I thought keeping it clean in terms of the right data at the right point would be smart anyway.

    So I moved away from both WordPress and Ghost because neither of them, WordPress could somehow do it to some extent, but then it would be again, it would be some WordPress thing, some kind of data and some sub sub database table, which no one could get out again. And I would have had to program it myself if there wasn't a plugin like that. And I'm not a good, I'm simply not a developer, full stop. I can write HTML and CSS, and I tend to forget every kind of little bit of JavaScript. I start courses every four years and then I don't use it.

    And then I forget everything and I start with the beginner course again. So back then, no AI, no code helper, but I had this loaded thing of data. And today I think on GinGinGin, there's 300 and something bottles of gin catalogued. Some of them just have rudimentary data, like who's doing it. There's always a picture, a high quality one. There's how much alcohol is in there, who's producing it, some basics, but some are really elaborate. Sometimes I take 13 tonics and match that with a gin. I try them, I taste them. I write down what these combinations are like, their taste and aroma wheels, how I call them, where you can basically visually see what the gin tastes like, because that's one of the biggest problems.

    You see something and you judge things just like the book by the cover is the gin and the wine by the label and the bottle. And I tried to figure out a few things, but that's pure data. And that's actually valuable in terms of wanting to access it somewhere. And that could never go into Ghost, for example. So that's why I started looking into something there. And I ended up using Statamic because that felt like a really nice, fast thing. It's PHP based, but it can be run as a flat-file CMS. Der Spiegel, for example, is using it. And actually a lot of companies and publications use it now as well. And the idea there is simple. It's you basically build your templates around what you want and you set up your data first or have it properly structured.

    That's something you can't do. A Ghost post is basically a Markdown blob with the little bits and pieces of like taxonomy and maybe a couple of hidden tags, et cetera. But that's not enough. And some of these gin profiles have close to 100 data fields when you look at one of those, when you look at it, accumulate it. So that's what I use there. And now when I moved on to this cocktail website, I wanted to send this out to people again. It's called the Casual Friday Club.

    So casualfriday.club. And that started off as a publication for a consulting agency. So every Friday I would write something. They would have their consulting topics, which were sometimes a little bit drier. Let's put it that way. And they were happy to get some Friday casual kind of content. So there it was. The Casual Friday Club was born as a thing I would put onto their Mailchimp mailing list back then. So that thing doesn't exist anymore, but I kept the Casual Friday Club alive and thought, okay, that's where I put my mocktails and cocktail things. And I wanted to go back to sending this thing out every Friday, keeping the connection, being a publisher again to some extent, but still having recipe data properly so that search engines and today agents would understand it.

    I was going back and forth first in my head, then with one AI, then with another and pondering what I should do. And at some point I thought, you're crazy. You can't just do too many things again. I was actually limiting myself down from, as you've heard, there's way too many projects I'm doing. And I thought, why don't I take the best of each world and let each tool do their job. Then I researched a little bit and then I found one of these articles on Magic Pages. So, surprise. And it said, oh, you can run your Ghost publication in a subdirectory. And that was the moment where a lot of time got burned about back and forth and eventually building.

    But if you go to casualfriday.club today, which is a website which is being served by Statamic, actually, so if you're listening to this and you're on the homepage, hopefully it's loaded super fast already. You're looking at Statamic, but if you scroll down on the page, then you see that there's certain things which come from the magazine. And Ghost actually sits behind the slash magazine part. So whatever is being served from slash magazine is actually Magic Pages running a Ghost instance and serving both the newsletter every Friday. It serves all the magazine content like tutorials, like how-tos, et cetera, et cetera.

    So there's more coming. There will be bar reviews and stuff. It's basically just a week old now or basically public for a week. And this actually got me into this API thing that we talked about a little earlier for the podcast as well. So what I'm doing is actually Statamic pulls the data from Ghost currently and populates four teasers on the homepage. That's one thing. And then I got to work on this and actually took me two months to get it to where it is with heavy AI usage because I don't really know anything about the Laravel PHP stuff that is going on there, which held me back for years previously. And I had one big problem, which was making me go back and forth while I should do it.

    And that was search. And search is obviously a problem if you have two systems because Statamic could search Statamic and Ghost could search Ghost, at least out of the box. And what is happening now is while I was working on that and with those two little helpers in some data center, giving me code snippets and working on my code now is that I could actually get Ghost to serve all the data over to Statamic and Statamic can now search both sides.

    So just like Ghost handing out the teasers to the homepage, Ghost is actually handing out the data to my Statamic search. And when you search for something, you're actually searching Statamic, but it has all the Ghost data in there. And every single time I update something or publish something in Ghost, it actually gets pushed over to Statamic or pulled over. And I have a unique search, which is the biggest problem I had. And that way, I really, without knowing what I was doing, but spending time going back and forth, I created this system, which is now it is a Frankenstein kind of thing, but at least it's a very clean Frankenstein. It's just one, one thing, one thread that I needed to bring them together.

    And it's a very clean Frankenstein, not, yeah, sewings everywhere, but it's every system is doing what it's good at. And now it's really fun to write stuff again. Now I can actually just focus on the newsletter and I can just write down an article and that's in a nice and clean environment. And if I need to do my recipes, which is like that form to fill out a recipe or to put in bottle data is I think if you want to envision it, think of an Airbus A320neo or something like that and think of every little thing that you see in the cockpit as one input field. That's what this organized data area is like.

    So everything is in the right position. But I just see after having published this now, Google seems to love it already. So it's like really going in and it's picking up certain things. And I see the first AI agents coming in, doing a couple of things and pulling stuff. So, and people can search for it. I can build all kinds of filters later on, which Ghost wouldn't have given me. And as of today, I'm super happy that I've split the organized data part into one system, which is good at doing that and having the publishing and fun part on the other side. That's how this weird thing came to life. And it was a back and forth, and I was even happier to what was possible than what I would have thought it might be.

    Jannis: I think that's the best conclusion from this to say, yeah, different systems have different strengths. And I'm absolutely sure you could have figured out a way how you can get all the recipe data into Ghost. But I think you would have ended up at a point similar to the podcast data to a certain degree where you just say, yeah, we can make it work somehow. But it's a difference whether you add the same data about every podcast episode.

    What is the length of it? How big is the file? Like where is the audio file? Et cetera, et cetera. Or whether you have potentially a hundred fields for a bottle of gin, potentially just two or three, because maybe there isn't more. I don't know gin that much, but that's how I imagine it. You mentioned before that Statamic is pulling Ghost for the update of the search index, or is Ghost actively pushing through a webhook into Statamic?

    Jan: A good question. I have an integration in Ghost and that I have these, I have four actions set and those are, I guess it's probably pushing, isn't it? Because when I publish, when I delete, when I, yeah, the typical actions that would change what is publicly available and that's when it happens. So if it's pushing, I simply forgot. I have, I was just, I had these three repos open and juggling with all kinds of agents to keep them there. But yeah, it's probably that.

    Jannis: It sounds like you were just using the webhooks, yeah. Because that's, that would have been my question if Statamic can pull Ghost, whether they have some kind of integration with using the RSS feed or something. But it makes a lot more sense if you're using basically a custom integration in Ghost to push that because that's also how, if we look at, let's say non-native search integrations for Ghost, Algolia, also the Ghost Typesense search that we have set up on Magic Pages. If you self host this, then you obviously also need to get the updates for posts into that search index somehow. And that's usually done the exact same way with webhooks. As a non-developer, you have found the developer way of doing it. That's what I'm trying to say.

    Jan: I remember that you, when we talked just before this went live, not this episode, but before the site went live, you asked like, so why didn't you use Ghost as a headless system to do all of that? And this was one of the typical ways. And I think the way you describe it, you found it to do it the developer way by chance, basically. I thought, yeah, I could have done it that way if it would have appeared to me at that point. And the mere fact that I actually got, I could have been thinking about it and figuring out that there are certain ways to bring it back and forth. And I knew about the content API, which exists forever, right?

    I think certain functionality is basically, well, that's a core thing there. When you have that many things on your plate and doing things like from the interface, doing the design, updating the branding, working on the structure, getting the code right, juggling with these agents, getting super annoyed of their output and what they're doing. And you're thinking, what the heck are you doing here, guys? Then you are happy when it works in the end. And now it's obvious, yes. And I could have done it that way.

    Jannis: You know, actually I think the typical headless way would have been that Ghost is just there and you're kind of just rendering it. But now thinking about it or listening to you in more detail, because before we've kind of spoke about it in passing and everything and I knew what we were doing and I had a look at it. But now understanding where you come from, I would actually disagree with myself. When was that? Three-ish weeks ago or so, when we met in Hamburg again, where I suggested to do Ghost in a headless way, I would actually disagree with myself back there. I would say the way you're doing it now to actually split them cleanly and not have Ghost as this hidden headless kind of thing that just serves an API is probably the better way because the point of Ghost in that stack for you is to send newsletters, to get the message out there, to publish something.

    And if you had Ghost in a headless way, which basically means it runs in private mode, so to say, and you're just using the API, you could send newsletters and then somebody would click on a link in a newsletter and they end up on a private Ghost site. This is where, yeah, I would have to disagree with myself and the way you've put this together with Statamic doing its thing and Ghost doing its thing on its own, like separately, and then they have this very loose connection in the middle is probably the way it should be done.

    So I love how this came together and it underlines the fact that Ghost is not an everything CMS, that there is a certain way where it's good at, or there are certain bits and pieces where it's really good at, and there are certain parts where it's not good at. And I think as a community, we also need to be that honest with ourselves to just say, not everybody should use Ghost and Ghost isn't meant to be used for everything in the world.

    So I love the conclusion you came there with the Casual Friday Club, and I'm looking forward to seeing how it develops over the next couple of weeks and months and hopefully years.

    Jan: Yeah, me too. I think what we'll do is I'll give you a code because since there will be parts on the Casual Friday Club, so if you are an aspiring home bartender while you're listening to this, or you're not, but you're thinking, maybe I give it a shot, then you're more than happily welcomed at the club, not just on Fridays. We're open 24/7 on the website and Jannis does his job to actually fulfill that 24/7. And there'll be a code for the people who are listening because the first 100 people to subscribe will actually get access to the premium content, which will be coming later on as well. We'll just put this in here. Jannis will put the code in the show notes.

    And then if you feel like it, just subscribe it. There's basically no cost. You're one of the early birds. It's happy hour, so to say. Subscriber happy hour, not just cheap, but for free, freeloading time.

    Jannis: Thank you very much, Jan. We still wanted to talk about privacy, but looking at the clock, I think we have to do episode two at some point to talk about how we feel about data privacy on the web. I really enjoyed our conversation. I always love talking to you and listening to how you shape up your websites, your different projects. I also feel like there are never too many projects. I'm exactly the same as you.

    Jan: Not helping, Jannis. Not helping.

    Jannis: It's not a self-help club here. It's a podcast, okay?

    Jan: Okay. Good. All right. Okay. Okay.

    Jannis: So thank you for taking the time on a Friday, on a casual Friday. And yeah, I've enjoyed this. What is it? On the recording, it says one hour 17. I'll probably cut that down a little bit, but I think it will be a very nice episode that we will release on next Thursday, hopefully, so that people can start into Friday and then get inspiration for the weekend from your blogs. So thank you for coming on, Jan.

    Jan: Jannis, it's been a pleasure, and I'd be happy to come back to talk privacy because I think that's a huge issue, and we need to talk about that at some point. And there's another big topic I'll just put on our little notepad for that whenever it is episode, and that would be accessibility. And I think we should talk about that as well because it's yet another one of those topics, which I'm really not just interested in.

    I think we need more accessibility, and we need to talk about it. And the state of what accessibility in Ghost is up to at the moment. And yeah, well, I think we'll find more to chat about in that episode for sure. I'm happy to come back. And until then, I wish you all the best. Thank you very much for doing this outstanding service and being there all the time. Last little confession. I was a little bit afraid when I moved all of that to the subdirectory because the directions on Magic Pages say, only do it when you know what you're doing. And I knew I had two developer guys who would help me if the shit would hit the fan. And when I handed it over to you and said, there it is, and it didn't work in the very first moment, I was frantic.

    And then it turned out that was just a caching problem, as you said, and it worked out. You really helped me. I was on the brink of a breakdown there for a second, but it worked out. Thanks a lot.

    Jannis: You're very welcome. And I think I have never seen a subdirectory set up that just worked the first time. That's why we have that little note on there, as it always.

    Jan: That's good. That's good. It makes you check three times.

    Jannis: Yes, exactly. But yeah, I'm looking forward to episode two in a couple of weeks. Let's see when we can slot that in. And as I said, thank you and have a lovely rest of your Friday, Jan.

    Jan: And you. All the best. And catch you very soon.

    Jannis: Yes. Speak to you soon, Jan. Bye bye.

    Jan: Bye bye.

    1 hr 7 min
  • “You can't do that on Ghost.” Yes, you can!

    If you've ever asked a question on the Ghost forum, chances are Cathy Sarisky answered it. She was also the most requested guest since this podcast started. Cathy stood up her first Ghost site in 2022 while she was still a chemistry professor, and today Ghost is her whole business: as Spectral Web Services she builds themes, integrations and custom solutions, mostly for newsrooms, including the local publishers of the Tiny News Collective.

    Cathy and Jannis talk about the cartoon ghosts behind her branding, the OpenACS hosting company she ran long before Docker, and why so many of her clients were told "you can't do that on Ghost". She explains how repeated client work turned into her toolbox of 25 tools, including the Haunts events calendar that pulls 10,000 local events into a Ghost site, and why she started What Did You Break This Week?, an AI-written newsletter about Ghost changes that might break your integrations. They also get into how AI has changed freelance Ghost work, and why Cathy is most excited about apps inside Ghost admin.

    Jannis: Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting, and publishing on Ghost. I'm Jannis, and today I'm here with Cathy. If you've ever asked a question on the Ghost forum, there's a good chance that she was there to help you out. Cathy has also been the most requested guest on this podcast so far, and I'm incredibly happy to have you here today. Hello, Cathy.

    Cathy: Hello, Jannis. Thanks for having me. I didn't know I was the most requested guest. That's...

    Jannis: Yeah, I kept that a surprise. But you were indeed. I think eight or nine people reached out over the last couple of weeks since I started the podcast and said, you definitely need to have Cathy on here.

    Cathy: Thank you. It's so exciting. I've been watching the podcast and going, oh, he still hasn't invited me.

    Jannis: You know, I wanted to have a little bit of room. There was lots of, let's say, stress with Indiecon in September, where we had to prepare lots of things. And I thought this is definitely something when all of this is over, so we can take a little bit more time and just see where that leads. And now we're here. Cathy, for those who don't know you, can you quickly introduce yourself and tell people what you do in the world of Ghost?

    Cathy: Sure. My name is Cathy Sarisky. I am a certified Ghost Expert, which means I filled in a form a few years back. I'm sure there was some validation behind it. But Ghost is my whole business. I'm a freelancer or solopreneur. So I work with a variety of clients, mostly small. Sometimes people hire me for an hour. Sometimes they hire me for a couple of weeks. I have some ongoing relationships where people have me on retainer and have a few hours a month.

    But it's all Ghost or sort of things that touch Ghost. So I build a lot of integrations and custom solutions. And yes, I'll make your logo 50% bigger and give you an extra setting so you can change the layout of your homepage the way you want. So it's a little bit of everything.

    Jannis: So you're the true wizard of Ghost, basically?

    Cathy: For anybody who hasn't seen it, I work as Spectral Web Services, which is a little cartoon ghost wearing a magic purple wizard hat. So I'm leaning into cute in terms of branding. So yes, maybe I am a wizard.

    Jannis: Can you tell us how long you work with Ghost already? Because that's not always been the case, right?

    Cathy: No, I stood up a portfolio site, I think it was in 2022, just for myself. At the time, I was a professor of chemistry teaching at a liberal arts college. I have a PhD in chemistry, yes, really. And so I stood up a portfolio site and I had some questions and I found the forum. And I like to hang out on fora; it's a feature or a bug, you take your pick. But yeah, so I was hanging out a lot on the forum and found myself answering a lot of questions. And I've been around for a few months just hanging out, asking my questions, answering other people's questions. And a member of the Ghost staff, it was Ryan Feigenbaum, who's no longer there, but he's handled a lot of the developer relations sort of stuff, said, you know, you should really apply to be a Ghost Expert.

    And I put him off for a while and finally I said, OK, fine, I'll fill your form out, whatever. I was still working full time teaching, but we hadn't had a pay raise in a lot of years. And so it became, oh, yeah, I could do a few hours of work on Ghost. This is a nice addition to our income. We had two kids in private school and then eventually it became clear that actually there was probably enough work, this is before Claude, that there was enough work that really I could in fact do this as my full time job. And the environment teaching, it's not improving. So I guess this is three years of full time Ghost now for me. And it's been really fun to do lots of good stuff.

    Jannis: Yeah, I remember, I think I joined the Ghost forum and it must have been 2023, early 2023, when I started developing Magic Pages, which wasn't meant as a hosting service back then. But I remember the first friendly face was your Ghost mascot, basically, and seeing you all around. And I always knew when Cathy was somewhere in there, it's going to be a good conversation. So I can only attest from coming in to the Ghost community after you, that you are very welcoming and that I think you eased a lot of people's way into the community and into Ghost a lot. And I can see that in everyday conversations I have with people, because whenever I recommend you to one of our customers who asks, hey, where can I get this and that customized?

    And I say, go to Cathy, go to Spectral Web Services, they say, oh, yeah, she's the ghost I've seen around on the Ghost forum, right?

    Cathy: That's fun. I work for Tiny News Collective, which supports small local newsrooms in the U.S. So I contract for them and then I do their member support and I had this really fun interaction. So we're always taking in new members and then I provide their Ghost tech support and some theme customization, just whatever they want to talk about Ghost. I'm their resident Ghost expert and they've got me on Slack and stuff. But anyway, I'm talking to somebody who's new to Tiny News and he says, I just realized you're the Cathy. And that was just the funniest moment. I'm like, he's like, you're like famous. But it's a very small fame, but OK.

    Jannis: Yeah, I take that. And in the Ghost community, I would actually say that you're probably the most well recognized person in there just because of the entire branding and the way you have helped people with the questions all around Ghost. So I see that fame.

    Cathy: Do you want to hear a funny story about my branding?

    Jannis: Absolutely. I've always wondered about that.

    Cathy: So when I first kind of started out freelancing, it was just I had a site under my name. I had cathysarisky.link or something stupid that I registered and immediately regretted my choices. But anyway, I was trying to work with this agency. They had bid the job with their big client and they were trying to hire me to actually do the job. But there was some transparency with this client about were they going to use me for the job or somebody else? And they inadvertently exposed an email chain in which this guy said she doesn't look like she's big enough to do this job, which is critical of my bona fides. And I'm like, if I'm going to land these bigger jobs, I need to look more like an agency, even though it's just me.

    But the whole thought of having to look like an agency kind of made me mad. So I'm like, it's going to be a spoof of the standard agency site. Take just every agency template out there. What does it have? It has people doing these things and so on. I'm going to do it, but I'm going to do it with cartoon ghosts. And so that's how it started. The site has changed since then. It is not as obviously an agency spoof as it used to be, but that's how it happened. I had this great illustrator in the Philippines who is no longer taking work and it makes me so sad.

    But I'd say, OK, I need a bunch of ghosts standing at a whiteboard with post-it notes. I need a bunch of ghosts standing around a wireframe having a conversation, you know, and she'd build these things for me. And that's where it started.

    Jannis: I always wondered where the ghosts came from, whether you drew them yourself or whether you had somebody for it.

    Cathy: Oh no, no skill, no skill.

    Jannis: That sounds very familiar with our illustrations. It's one of those things where I think it was the best decision to hire somebody else with illustrations, because you can obviously get open source illustrations and everything. But looking at yours, looking at ours that we have now, there are people with real skills and it's amazing if you can hire them for stuff like this. And I do remember that agency site and I loved it back then. Cathy, you also ran a hosting service yourself, right?

    Cathy: I got my first permanent job as a faculty member. I had built a site on OpenACS, which was an early community platform. It had memberships and interactions and comments. And this is super, super early. Just what is the data model for a dynamic website even look like? The big server at that point was Apache, but OpenACS ran on AOLserver. This was a server that, yes, AOL had open sourced. I'm really turning myself into a dinosaur here.

    Anyway, it was really hard to get hosting for because all the small little you can host your little website here, things were set up for Apache. And so if you wanted to run AOLserver, you had to get your own dedicated server. And so now it was out of reach for lots of little sites. So I stood up what I think was the first virtual private server hosting kind of focused on AOLserver and OpenACS. Everybody's like, that's easy. You just spin up a Docker container, right? This is before Docker. This is before virtual servers. There was a rudimentary virtual server package and I would lease a dedicated server. And the first thing I'd have to do is compile a kernel to support the virtual private server stuff.

    And I would knock that thing offline two or three times, sometimes before I'd get the kernel to boot. You call the data center and go, would you reboot it again? I'm sorry. But yeah, once upon a time. So, yeah, I ran a hosting company because there was this unmet need for OpenACS until I got a full time teaching job that had me busy and felt like I didn't want the pager going off at 3 a.m. And I was just done. So, yeah. I say hosting is for young people and we're not on video, but my hair is white and not a young person anymore. And I like the pager not going off. There are no pagers. I like my phone not going off at 3 a.m. So, yeah.

    Jannis: Yeah. But when you first revealed that to me at some point, I think it was in a private message on the Ghost forum. It made so much sense, like the fact that you had all that hosting background, because lots of things have changed. We don't have to compile a kernel anymore. We rent a server. It's there. Maybe we have to install an operating system. And then we just in our case, we just make it all flat and install Docker. And that's it.

    But lots of the fundamentals are still the same. And it really shines through in the way you can explain to somebody the hosting world in that sense. So it's really interesting that you have like all of this background. And you went into teaching and then you came back into the tech world, basically.

    Cathy: So it's awkward. I have this really old knowledge and then I have this giant hole and then this new knowledge. I thought when I quit teaching that maybe I would look for and find a full time job. When I started thinking about this in 2022 or 2023, the market was really hot for developers, right? I thought, oh, yeah. And no, the market is not really hot for developers, especially not for 50 something year old developers who are maybe junior, maybe senior. Nobody can figure it out. I like what I do. I've landed in a good place.

    But yeah, I'm not sure if you'd asked me in 2021 what I was going to do with my life. I don't think I'd have known where I was going to land.

    Jannis: I can imagine. Do you ever wish to go back to teaching again? Do you ever have the feeling that maybe that's something you'd want to do again?

    Cathy: I miss students. I don't miss grading. I don't miss administrative nonsense. The US is a mess in terms of higher education. So there's a demographic bust going on that you can see when you teach college, you can see 18 years in advance. What's your enrollment going to be? Because you just count heads. How many college age students will there be? Right. So we knew for, well, almost decades that we were going to be in trouble starting around 2023, 2024. Just higher ed in the US was going to be in trouble because the birth rate had dipped 18 years earlier. And so there were going to be fewer people going to college. Then COVID hit. Then there's some shift in the US about what's the value of higher education.

    It's political and half of the US is now kind of college isn't worth it. And it's liberal indoctrination. So a lot of colleges and universities are in sort of financial trouble and working in a place that's in financial trouble is not fun. The place I used to work, I still hear a lot about it, but I, and I'm really glad not to live it every day.

    Jannis: Looking at the US from the outside in the last couple of years, I can totally see that. I kind of wanted to turn the question around, the question that everybody has on the forum all the time. Who should I hire for my Ghost job? Like who's the best Ghost expert out there? And I kind of want to turn this question around and hand it back to you and just ask who are the customers that hire you? What's the kind of work you do as a freelancer in Ghost that has carved your own space there? Who are the people that you work for every day?

    Cathy: I didn't set out to do newsrooms specifically, but probably two thirds of my time ends up being newsrooms and journalists of some sort. I think it's partly some early customers who were really happy telling other people that they should hire me and just generally getting really comfortable in that space and in the kinds of things that newsrooms need. People who've never had a website before or who are moving websites, that's not something that somebody does regularly. They don't have any expertise in how do you move a website? How do you set a website up?

    What are the kinds of things you're going to need? And so having gotten to work with a lot of journalists in newsrooms, I think makes me better at it that I can say, you haven't thought about this, but you're going to want to. Or you're telling me you're going to want this and I'll build that for you, but I don't think you're going to like it. I think what you're actually going to want is this. I don't want to talk people out of what they're sure they want. They can pay me to build it and then pay me to change it. That's fine.

    But I can offer some pretty good advice about this is how other people have solved this problem or thought about this problem or, you know, everybody in existence wants to be able to pick on every theme. There's always a big featured image and some small ones. Everybody wants to be able to say what's in the big spot and what's in the small ones. Some of them want to be able to say what's in the first, second and third small slot individually. And everybody hates duplication between those sections. Right.

    So you just know the client doesn't say anything about any of that, but you know that as soon as you stand that theme up, they're going to say, great. And how do I pin the post in the big spot? You forgot to tell me. At one point, I'd have said, yeah, your theme doesn't do that. And now I'm just like, it's a conversation you have at the beginning. I'm sure you need to be able to say, how do things end up in that top section? Right.

    What are the rules? Help me understand the rules so I can build them. So I've gotten to build a lot of expertise there. So lots of newsrooms. I also enjoy thinking about and solving problems. So some fraction of the clients I get are people who were told, you can't do that on Ghost. And I'm like, yeah, we can do that on Ghost. Let's go do it.

    Jannis: Do you have an example for that?

    Cathy: Sure. I want to take PayPal payments on Ghost. I want to take one-time payments on Ghost. I want to use Ghost as the source of truth to log my members into some other site that speaks OAuth. Lots of things. Lots of just, Ghost doesn't do that. I want bookmarks on Ghost. So, yeah, it's always something. So I build a lot of integrations and I build a lot of things intended to save people time. Right. You find somebody whose process for getting a story online involves 12 steps that is, hold on, let's let's think about which of those things can we automate and save you some time so that you can do the part of your job that you actually need to do. Right.

    Jannis: Yeah, that's really cool. You basically have the knowledge, the expertise, the experience, basically, that you say, OK, I've seen probably hundreds of Ghost sites grow. I know what you're going to want in the future. And here's my opinion how to do that. And then you are able to also find within the Ghost core or within Ghost itself as a CMS what that takes to actually be implemented.

    Cathy: There are a lot of things that aren't in the docs that knowing kind of what the workarounds are, how it allows you to do a little more than the documentation might imply sometimes. So I have 160 development Ghost installs on my computer. Just if you want a sense of how many I've seen. Now, a few of those are me testing, but that's probably one per client.

    Jannis: I do think that might be a record on local Ghost installations that somebody has. So, yeah,

    Cathy: I don't even have one for each of my Tiny News clients. I have about 50, 60 publishers I support who use Ghost, who use the Tiny News theme, but they all use the same theme. So I have a few extra copies because people needed it forked. But add another 50 to that for how many Ghost clients I'm actually. Yeah, it's crazy.

    Jannis: Cool. And I guess if you have 50 clients on more or less the same theme, you have one GitHub action that then pushes them out to their sites?

    Cathy: Yes, this is complicated and it really makes me want child themes because the first time somebody says, I need this thing changed. If it's code injection, great, done. But sometimes it's I need these sections rearranged or this logic changed. So that theme has way too many slightly different templates and various sort of lots and lots of time. I'm using all 20 of my custom theme settings for toggle switches and five different dropdown options for the home page and just all sorts of crazy stuff to try to make it work.

    But then you get I want the wording of the subscribe button to be different. I want it to say subscribe now it's free. Are we going to fork the theme for that? So I have a workaround that actually lets them change all the words on the site. I'm making really heavy use of the split helper and nobody's come to yell at me for it yet. So I'm going to keep doing it. Yeah, no, I read an entire custom variable that is all the strings on the site and what you want them to be. And it's basically layered on top of the existing t helper.

    Jannis: Interesting. I've also run into the issue with child themes with one of our customers that has it's not 50 sites, it's three sites, but they all run on the same custom theme from Bright Themes, I think. Yeah, from Bright Themes. But she wanted to have three different versions of that on three different sites with all different home pages, with different layouts and so on. And that was one of the few custom projects that I take on from time to time and what we ended up doing. And I'm still not sure if that's good or not, but what we've been doing there was basically set up a GitHub repository where we say, hey, here's the base theme.

    And then we have a folder for every single one of the three different sites. And we just say, OK, we have a GitHub action that takes the base theme and then uses basically the sub folders to copy those customized things into that on the deploy pipeline. So that way, I think it's handleable for three sites. I would not want to see that on 50, though. So there are different ways to get to that. But yeah, child themes, I'd love to see that.

    Cathy: One of the agency clients I've worked for did something similar to what you're describing, where they had a build pipeline that built a series of related themes from the basic repo. The other thing I've done with Tiny News is I have a couple of branches and that allows me to make changes on the main branch. And then essentially I usually dictate to Claude, hey, would you please cherry pick this over to these other three or four branches?

    And then so I have GitHub actions that deploy those branches to those specific sites when there's a push on those branches. And that works OK at this point. It's just, yeah, and please cherry pick that and Claude knows what I mean. That facilitates that process a little bit. But yeah, child themes would be nice. And we run into stuff like robots.txt and people wanting customized RSS, which is not you don't really think about that as being theme, but the way to work around the defaults is to put it in the theme. And so you run into problems there with everybody needs something slightly different or ads.txt.

    So I have a PR open on the Ghost Core right now to make robots.txt editable outside of the theme because the new theme code editing breaks the GitHub workflow. And I had one client decided that they were going to edit using the new editor. And then they came back and asked me for changes. It was a team of five. I asked one of them, hey, just confirming nobody's made any changes, right? Oh, yeah, nobody's made any changes.

    So I edited my changes, pushed my code to GitHub, which auto deployed, which wiped out his work. Since then, I ask and I grab a download copy that can just sit in my downloads folder for a while in case it turns out that there was something undisclosed. I love that it made it easier to edit themes, but I haven't worked out how to actually preserve that and still do the GitHub theme deploy that makes my life really nice for working with so many different sites.

    Jannis: Cathy, when did your work with all of your clients turn into a toolbox? You productized your tools that you've built for the last couple of months. When did you decide that you say, okay, like I've seen this problem over and over again. I've done this multiple times. This is actually something that can be useful for people that don't hire me on an hourly basis.

    Cathy: Yeah, really did seem like it was the same problem over and over. So one of the very, very first jobs I ever did, like back in 2022, was like an Algolia integration. Ghost provided a little bit of tooling, but it didn't handle membership sites with members only access. And it had a bug that every time you resynchronized, it wiped out your custom settings. So you went in and you changed your stop words and stuff, and then it would get wiped out on the next thing. There were a bunch of things.

    So anyway, I kept building search integrations and they got better and better. And eventually I built a nicer looking app to sit on top. A little inspiration from the Magic Pages search, in fact. And but I didn't want to use Typesense because the problem for small clients who are not on Magic Pages and getting it for free is that the starting price for Typesense is too high. And Algolia gives you that free tier that a lot of small and medium sites can just sit in the free tier for free. Yeah, the free allowance is really big enough. Everybody says, oh, my gosh, we need a better search. The analytics on Algolia says nobody actually uses that search after I build it, except the site owner.

    It is the funniest thing to actually look and go, we built this. We spent three or four hundred dollars of your money to build this really bespoke custom search for you and you had 50 search requests last month. And we're pretty sure half of them were you looking for articles you had written because you couldn't find them and you wanted to link to them, particularly before the built in linking functionality got added to Ghost where you could like search within the post. Right.

    So anyway, at some point I said I'm building the same thing over and over or I keep customizing it or I fix a bug and then I need to roll it back out to somebody else. And this is a drag. So long story short, I just started out to do the newsletter digest. I'm going to put this newsletter digest builder online and then people can use it. But of course, to build a newsletter digest, you have to store an API key and you have to handle all the authentication.

    So you have to know who's who and people work in teams. So now you need permissions. At some point after I'd done that, it became, oh, I did all the hard work. It wouldn't be all that hard to take this second tool that I built and plug it into the same dashboard. Oh, hey, here's this other tool I built. Let's plug that in, too. So I still have things I haven't hooked up into that dashboard that are sitting in with the 160 Ghost installs.

    But at this point, I've got a search package. I've got that newsletter digest builder. I have an events calendar that maybe I'll tell you more about in a minute. Lots of tools, bulk actions, just lots of sort of things. I have an image library because I realized after building the Algolia search integration that the difference between searching for images and searching the front end of your site is not very much. It was like, oh, all the code's here, let's just rearrange it a little bit. So, yeah, I lost count.

    I think it's sort of 25 tools, but one of those tools is like 15 different tools that produce embeds that work in email and on ActivityPub and on web. At this point, when I've got a client problem where I'm like, yeah, everybody has that problem, let's build a tool. So it's just become this slightly out of control collection of tools. I'm sorry to say that there are too many things in beta and I maybe at some point need to go back and polish a few of them a little bit more, but the beta is pretty good. Lots of people using the beta in production. Maybe my standards for beta are off.

    Jannis: I know that feeling, yes.

    Cathy: One of the tools that I'm pretty excited about, but also the one that costs me the most money is I built an events calendar. So lots of local news sites and just community sites in general want to share what events are going on. And for local news, they want to share everything that's happening in town. But you really don't want to manually enter all the events. You really can't do it in Ghost natively because you can't set a publication date to the future. And that would be how the workaround would be.

    So the themes that are doing it are storing the publication date, like in the code injection footer for the post, and then they're using some JavaScript or now with split, you can do it without JavaScript and you can do it on the server side, make the server do the work. But anyway, there's not a great way to do that natively in Ghost. And it still means that newsroom has to somehow get those events into their Ghost site. Right. This is a big job. And so I call the calendar Haunts. It's a pun, right? It's about ghosts, although there's nothing in it that's Ghost-specific.

    But it's also your local haunts is a place that you hang out, right? The bar down the road or the coffee shop down the road, a place that you haunt. OK, what I have behind it is a whole lot of ability to ingest ICS feeds, Google Calendar feeds, Squarespace events feeds. I've lost count of how many different calendar feeds, different types I can take in. But if it's a consistent feed and I can work out or Claude and I can work out, Claude is really good at this, Claude and I can work out how to get that data from whatever source is actually the source of truth, then we can put it all on your website and that can just happen. I'm going to say automagically.

    But yeah, we launched somebody last week. They have 10,000 events pulled from their local community, from all these different sources. So two months with 10,000 events and yeah, they don't have to do anything. Those events just come in. That's the ideal. Of course, sometimes you look at something and go, oh, we don't want that event in our feed and you kick it back out of your feed. But the idea is that it would be automatic and that you would then have time to provide your journalistic take on the events or your collection of what to do this weekend, but that you wouldn't have to find all the events first, that they would just, the events would just show up. So that's been really fun.

    Jannis: Yeah. And like you said, mostly like news outlets are using that.

    Cathy: Yeah.

    Jannis: It makes a lot of sense. So especially if you work with like smaller community news outlets and stuff like this is, at least from what I know about local news here in Austria, that is like a big part of what they publish or a big part of what they do for a community or to be like that hub to show like, hey, this is going on, this is what's happening. And I love the fact that you can pull it from all the different sources, because as you said, like it's usually scattered all around.

    Cathy: It is. But so it's a nightmare because it comes in dozens of different formats and you get the same event from three different sources and recurring events built in lots of different ways. And all day events where the event has a flag that says all day on it from the source or where if it starts at midnight and ends at midnight, that means it is all day. Not that those are the actual times. It's yeah, every time we get a new kind of source, there's something and calendars that lie about what time zone they're in. The calendar announces it is in UTC. It is not. It is in wall clock time. Yeah. And vice versa. It gets really complicated really fast, but it saves these journalists a ton of time.

    Jannis: Yeah. And it sounds like a whole toolbox in a toolbox that you've built there. De-duplication is like the obvious one. But then having to figure out time zones that are not what the calendar announces, that's like an entire different tool on its own.

    Cathy: But the hope is you do it once, that you do it once per feed. And then once you've sorted out what is this feed doing, then you get all their events until they change platforms without having to do more work. I have my main computer, but then I have sitting next to me a laptop that runs Linux and its entire job is to run the ingest every night. I started out using GitHub Actions and then I realized that you only get two thousand minutes a month. And it takes a long time to ask every haunt that all of your sites have whether they have anything new today. And I ran out of GitHub Actions minutes.

    Now I have a runner that runs locally on this old Linux laptop and it sits here and chugs through it. It starts about midnight or 1 a.m., because the quality of the Internet in my household goes down a little bit. So it's a good reason to go to bed because the runner is going to start and is going to tie up the traffic overnight a little bit.

    Jannis: Yeah, cool. So you also have a little server in your home again.

    Cathy: Server might be too strong, but yeah, the cat sits on it. It sits right next to my desk and the cat sits on it. It's not very warm, but it's always on. So it's just a little bit warm and it's a box. So she sits on it. But back to tools. One of the things about trying to pull all the tools into the same dashboard is that then you start saying, OK, how do these things work together? OK, so now we have Haunts, but we want to feed the Haunts into the newsletter digest builder. Right.

    So they show up automatically. I built a tool that does polls. OK, you need to be able to pull a poll into your newsletter digest. It's just all these different pieces that need to connect together. And because all the tools live in the same dashboard has made it pretty easy to say, oh, this tool needs to go with that tool. What I was doing for fun this weekend was fixing a problem for a client. They have Slack and they have announcements on their website and they have emails with announcements and their various members don't want to look at all three places, but they're not doing a great job getting all the announcements in all three places.

    And so this weekend I built a little tool and while I was building it, I said, somebody else will want this, too. So now it's in the toolbox, although it's really alpha. Maybe think before you turn it on automated. So now you can set up announcements and they go out on Slack. And since Discord uses the same webhooks, they would also work on Discord. And there's a little widget that can retrieve them for your Ghost site to put them on your home page. And they're searchable. You can index them with the built in search app so that you can actually have them show up in search results until they expire. And if you have the newsletter automation running to produce newsletter digest, they plug in there, too.

    So it's being able to take all these different parts and say, let's make all these parts actually interoperate with each other. And so there's lots of services that do one or two of the things in the toolbox. But those things don't talk to each other and they don't work together. And so being able to say all these things should work with each other. It's not perfect. There are definitely spots where I have a tool and you can use that tool, but it doesn't work with this other tool yet. But trying to say, oh, this tool should talk to that tool and they should work together. It's been really cool.

    Jannis: It sounds very familiar and seeing all the Ghost sites run on Magic Pages and then figuring out, oh, we could do this on top because we already have all of this built in anyway. And now the question that everybody is asking themselves now, how much do they have to spend on your toolbox every month?

    Cathy: My goal on setting this up was for it to pay for itself and for it to pay for the work that I do. Maybe not the initial development. And sometimes clients will say, I need this thing. I'll pay you to build it, stick it in the toolbox. A lot of the stuff is on my free tier. You can use it. It doesn't cost me very much to run it. And then I have fifteen and thirty dollar a month tiers and I have a hundred dollar a month tier that somebody is subscribed to, which is very exciting. There was a little happy dance in my house when that happened that day.

    And then for small newsrooms, I offer a 50 percent discount for two years so you can use a lot of my stuff for free because it doesn't cost me very much for you to have a few actions that run on my site to do something for your site every night. The calendar is really the only thing that costs me a lot of money. So there I got to be a little bit stricter about, OK, if you're going to use the calendar, you really do have to be on a paid plan because every night I am running this GitHub action that checks all the sites that you're using to supply your calendar feed. And I use AI deduplication and I use AI for categorization. And those things cost money.

    It helps that I moved the GitHub actions into my house for free. But yeah, that Haunts calendar is really 90 percent of the cost. A lot of the other platforms that do what Haunts does cost one hundred and fifty dollars or more a month. So my price is missing a zero. Calling it in beta doesn't help, though.

    Jannis: And from what I've seen, it's very usable. I've clicked around a couple of those calendars today. And honestly, compared to some of the event calendars I see here on local news site, it's like amazing UX that you have built there.

    Cathy: I tried. I feel like some of those calendar packages out there are really expensive. And I wanted to offer something that a small local news site that was just getting started, that was maybe kind of on a shoestring budget could use. And the choices seem to be multiple hundreds of dollars a month to get the ingestion and autofill sort of functionality that everybody needs. Or you can use it cheap or for free, but you have to put your events in by hand. And a little bitty newsroom startup can't afford a couple hundred dollars a month and doesn't have the time to put the events in by hand.

    Jannis: Yeah. And if anybody's interested in just seeing what other cool tools Cathy has in there, I'm going to link the toolbox in the show notes and you can click around and see what you can use for free and what costs a bit of money. Cathy, you also wrote or started a new newsletter that's called What Did You Break This Week? Can you tell us a little bit about that? Where did that come from? What is the idea with that?

    Cathy: Sure. The title is a little bit cheeky and I should say I developed the title after patching broken code on a Friday night at 9 p.m., when I wanted to be thinking about going to bed. So that's where the title comes from. I hope that people will not find it offensive. It was meant to be sort of humorous. But where does it come from and what is it about? First of all, what is it about? It's an AI based newsletter. I am not doing this work. It's an AI based newsletter that scans the Ghost GitHub repo for changes that might break something for self-hosters, for theme creators, for third party integrations. I have a lot of third party integrations.

    I've got the whole toolbox, but also lots and lots of just individual things that I've built for people that might include some assumptions about how does Ghost work and changes that then happen in Ghost risk breaking my things. I try to keep an eye on GitHub to see what's going on. I need to say up front, several members of the Ghost team have at various points while developing things reached out to me and said, hey, we're about to change how this works. Is that going to break your stuff? One of the security patches with path traversal and stuff, a member of the dev team while they were patching it said, hey, are we breaking your stuff when we fix this?

    I'm like, oh, no, that's cool. But sometimes they miss me or sometimes and then there's the rest of the community building integrations and sometimes they just don't realize that something's going to break or I've built on something that wasn't really a public interface and with an assumption that interface was stationary when it wasn't. Right. So What Did You Break This Week? is a newsletter all about what's happened in the last week in the Ghost repository that might break things. And so it looks at all the merged PRs for the last week, looking for changes in interfaces, changes in API responses, changes in CORS, changes, just anything that looks like it might be a problem.

    It also scans everything that's open. To limit that a little bit, it limits itself to actually people who are on the core team because that open stuff is moving fast and would be easy to miss. But yeah, so it scans all of that and then produces a triaged here are the things that might break and how and tries to pull what's important up to the top. I've run it live one week and I back calculated two weeks. It looks like it might be useful, but I don't know. I'd love to hear from you and from other people who might use it, whether it is useful. And I'm particularly interested in what did it miss?

    So what did I cause you to miss on breakage? I used some historical data to tweak the prompts that I was using. I can't scan the entire code base. Right. Too big. OK, I could, but I would need a budget for that. I got it down to costing about two dollars a week to run in terms of tokens and that felt OK. But if it needs to be three dollars a week because there's another part of the code base it should watch. We could do that.

    But yeah, where did it come from? For a long time, there's been this problem with how Ghost produces JWTs, which are the session tokens used for authentication, for proving you are who you say you are. Right. And the problem was that they were too short for jose, which is one of the main packages to actually validate them. And so then you had to roll your own tooling to do that. You should never roll your own tooling for authentication.

    But there we were. So they fixed it. But when they fixed it, that meant that all the existing tokens needed to be regenerated and the key store changed and the format for the key store changed. And they clearly thought about it. Austin, who you had on recently, it was very clear he had thought about, OK, how is that rollout going to work and there's going to be the old ones and the new ones are both going to be valid and so on.

    What he missed in there was some of us, I'm guilty, had an assumption that because the key store, the JWKS had not changed in the past five years, that it was not going to change and that one could safely cache it, oh, maybe forever. And so when this thing rolled out, yeah, the fact that keys were valid for an extra 24 hours and rolling is great, but if you had cached the old key store, you were broken. And so it was Friday night and one of my clients who uses Disqus for comments and has an SSO integration so that their logged in Ghost users are logged into Disqus and can comment through that platform. That integration broke because I had cached it because it was going to be a tremendous amount of server load every time anybody visited their site.

    And I thought, I'm going to cache this thing. It never changes. It changed and it broke and it was Friday night that their comments went down. It was an easy fix. The patch fix was to load the new key store. Then I went and actually fixed it so that if we had a change in the key store again, that we could load the new one into cache, but automatically because I don't want to do that. I'm too old for hosting breakages at midnight. This at least was 9 p.m.

    But yeah, so that's where What Did You Break This Week came from. It comes out Thursday mornings. I spun it up as its own separate newsletter. So if you just want that without all the various other meandering nonsense that shows up on my blog sometimes, feel free to subscribe. And I would love to hear from folks whether it feels like it's useful or not or whether I've saved you.

    Jannis: It's definitely useful for us. Maybe not the newsletter, but the conversation you started with the whole key chain and everything changing, caught a bug on our end as well, which was exactly the same thing just in a different area of the code. It wasn't the public member authentication, but the same key store and the same length of a key was basically stored in Ghost's private and public keys, like the private and public keys of the entire site, which we use to authenticate our customer portal. If you didn't start that conversation, we would have missed that. And the impact would have probably been, I don't know, like in my personal view, very little.

    It meant that all the Ghost sites would have been online and everybody could have published. They just couldn't access their customer portal, for example. And I'm pretty sure we would have fixed that pretty quickly. But the fact that you caught it helped us in that sense. And that's also why I'm now subscribed to your newsletter because it's just good to have that. And the one thing I thought and why I basically brought it up after the toolbox is that actually, this is a great tool that every open source repository should have. The fact that people build against open source software is amazing. There are so many integrations for Ghost, for WordPress, for all the other different, not only content management systems out there, but all different open source tools essentially have an ecosystem around them most of the time.

    And there will be things that break. And some of the things are announced in changelogs and in breaking changes when an upgrade is rolled out. But some of them are not. And these are the things that you want to catch. And this is, I think, where you've built a tool that I'm excited to see how it develops in the next couple of weeks to see what that tool can actually catch. And it might not be something for a toolbox for Ghost users, but just something that is now, in my eyes, a prototype for open source in general, how people like you and me that build on top of open software should be aware of the fact that this is happening and, hey, here's a tool that you can use to spot stuff like this.

    Cathy: I think it would be great if it were produced by the people developing Ghost, but I think there's something to be said for some AI here, too, because I think it's hard when you're working on your piece of code, on your project, to think through all of the little edges and you think, oh, this isn't going to break anything. And then it does little things in behavior that are assumed to be one way and then change can just break things.

    Jannis: Yeah, absolutely. And I think this is a great use case of AI in that sense to just have more context than what we with our human brains can potentially understand and to just think not just one or two steps further, but just go through the entire chain and think semantically, what does that mean in the end? Not just mechanically, what does it produce in the end? But what could that in the context of, let's say, let's stick with Ghost, what can that mean in the ecosystem of Ghost where me as an LLM, or if I were an LLM, as an LLM, I have a certain context around the tool.

    What could this change actually mean further down the line? And I loved the idea that you found there. Speaking of AI, I have a question that I noted down in the very beginning when you talked about the work you do as a freelancer for Ghost, solving different problems for Ghost. You mentioned that you started all of the work before AI, and I'm wondering how that has changed now that Claude and different AI agents are so prominent. Have you seen like a dip in inquiries that you receive or in the type of inquiries that you receive, like how has that changed for you in the last year or so?

    Cathy: Yeah, so there are some people who used to be regular clients who are fairly tech savvy and who have figured out that they can prompt Claude and that Claude can just do whatever that thing is. There are definitely a few people who I used to work with who now I don't, or I only work with them when they break stuff or they come back to me and this is not working and I've tried to get Claude to do it and why? And I'm like, yeah, you're paying me for an hour, but this is what you need to tell Claude.

    So sometimes for some more technical clients, I'm actually helping them. I don't want to say put me out of business, but I'm helping them not need me as much. You know, you need to go ahead and you need to get your local development environment set up so that Claude can have the whole context. You know, there's a, there's a build step on your theme CSS, and so you need to actually set that up and you need to set up your GitHub theme deploy so that you and Claude can make changes and then have version control, right?

    So some more technical clients or some people who I would have gotten, I'm not getting now, but I'm still doing fine, got plenty of business. There are definitely things that I can do faster now than I could have before. The ability to just open a theme up and say to Claude, hey, the margins on the footer are wrong. It looks like they're about this. They need to be that. Go fix it. And then I'm going to look with my human eyes on a whole variety of devices. I've got this phone and this iPad and so that I can actually check that it really, the fix is there, but I'm no longer spending any time going, okay, which of these half a dozen partials has the footer so that I can figure out the class on the footer so that I can go and just so there are places where I'm a lot faster, which is nice because it means I can help people a little bit more.

    Yeah. And I think lots of people, at least currently, aren't at a point where they know what they want well enough to prompt it and certainly aren't at a point where they know what they want and how it should work well enough to be able to say that's a bad idea. Don't do that. LLMs are a whole lot better at Ghost than they were a year ago, a whole lot better, but there are still times where you catch it proposing that what it needs to do is write a custom helper. I haven't seen that really recently, but for a long time, the LLM's solution for everything was, oh, we're going to need a custom helper. No, we can't do that. We can't load that on Ghost(Pro).

    I don't need you to fix my local development environment. We need to come up with a solution here that works in managed hosting because you're on Ghost(Pro) or Magic Pages or Synaps. No, I think at this point it's about got it figured out. But I spend lots of time saying, OK, we need to do this and we're going to use the split helper here and we're going to do this way. And no, I don't want to do that with JavaScript. I want to do it this way. Just lots of things like that. Or no, your plan involves three extra calls to the backend server every time the page loads. Can't do that. Try again. So it's been interesting. It's been a really interesting time to be a software developer.

    Jannis: Yeah, I think you managed to really put it in a nice framing how I think everybody that I've spoken to about this recently has come to this conclusion that Claude and all the other LLM or AI agents are really good at mechanical changes, but it is really bad at making decisions. It cannot make decisions. It just predicts what the next most likely outcome will be. And especially in a niche system like Ghost, it has definitely become better or the LLMs have become better at figuring out most of the things.

    But from what I've seen, the good usage of an LLM, the good usage of an AI agent is still when you have a capable human being in front of the screen that can make those decisions, that can decide, OK, do I need to use JavaScript for this or a helper, a split helper? Cathy, to close this off, do you have any wishes for Ghost 7? Anything where you say if you had all the development resources in the world, this is the one thing from your experience that you would put in there?

    Cathy: I'm going to tell you what I'm excited about right now, which is from some GitHub gazing. Of course, Ghost is open source, so you can watch what's coming, right? Sometimes you watch it and then it doesn't come and you get disappointed. But I am really excited about this idea of having installable plugin app-ish things. I'm not sure if that's for Ghost 7 or if we're going to get it sooner. I'm seeing code getting merged, so I don't think we're waiting for 7 because I think 7 is coming next year.

    I think it's going to be just a little bump on Ghost 6. I hope because it looks really cool. Again, all I'm doing is GitHub gazing. I don't have any special knowledge here, but I'm thinking the toolbox is picking up and moving into Ghost admin when this stuff gets released. Not all the first day. Bear with me. It's going to take a little while because there are 25 tools and some of them have 20 tools within them. But I am really excited about the ability to have a third party integration that's actually visible within Ghost. One of the things that I get asked a lot by people is make it easier for me to publish, make it easier for me to do this.

    They're describing things they want in the dashboard. I need you to set up my newsletter so that it does blah, blah, blah. I get lots of requests that are really change the dashboard. They've worked in WordPress, which can totally change the dashboard in ways it shouldn't. And they're really always a little put off when I say this content for the home page is actually a separate page. And so you have to go into pages and you have to open the page in the editor and you have to put this specific tag on it and you have to set its canonical URL to this and you have to use the product card, which then I'm going to restyle to look it's a terrible experience.

    So I'm really excited about not the ability to change the existing dashboard, but the ability for a third party integration to have a place on the existing dashboard because I think that's an expectation right or wrong that a lot of Ghost users have that they could hire a theme developer who could change their dashboard in ways that made it work better for them. And so part of why I stood up this whole third party toolbox dashboard was not because I wanted to stand up a whole third party toolbox thing, but because I wanted to at least collect all the parts in one place since they couldn't be in Ghost to make it easier for people to have all their things in two places, the Ghost dashboard and my dashboard, but at least that it would all be in two places.

    So I'm really interested to see this code get released and to see how easy it is then to pick up these tools and put them into the dashboard. It's going to be really interesting. It's going to be fun times when that happens. I apologize in advance to any clients who want me for anything the week that they finally merge that code, because I think I'm just not going to get back to you that week. That's how excited I am. OK, I'll get back to you, but I might push you off a week.

    Jannis: I think that's totally fair because it's probably speaking to some other people that work in the Ghost ecosystem. That is the one thing that everybody's excited about right now. My assumption is that it's probably going to end up somewhat similar than what we've seen with ActivityPub last year, that the big release is probably with Ghost 7, but there might be the one or two hackety hack ways that you can do it with Ghost 6 currently or with Ghost 5 back then with ActivityPub of just setting your own configuration and everything or activating Labs flags and everything. If that's the way we have to do it, then I think we're going to have a fun week.

    Cathy: I think so, too. I think it's going to be really interesting. Yeah.

    Jannis: Yeah, absolutely. Cathy, thank you for sharing all your insights about your toolbox, about the way publishers work, like news publishers work as well, and just sharing your ideas. It was super interesting for me as well to learn a little bit more about your background, to learn how you work with Tiny News Collective and everything. And for everybody that wants to have a look at what you do, can you just quickly share the URL where they can find you and your toolbox?

    Cathy: So my main website is www.spectralwebservices.com, and then there's a link to the toolbox from there, or it's toolbox.spectralwebservices.com. I didn't take my own advice about picking a nice short domain name because I couldn't find one I liked.

    Jannis: Perfect. Thank you. I'll also put those in the show notes. And thank you so much for spending your morning with me here. And wish you a lovely rest of your day, Cathy.

    Cathy: Thank you so much. That was really fun. Appreciate you, Jannis.

    Jannis: Anytime, Cathy.

    56 min
  • The writer who built his own editor

    Justin Cox has written online since the late 90s, co-founded The Writing Cooperative on Medium, and has owned JustinCox.com for more than twenty years. Every Wednesday his Write Now series features another author's writing process. It started with a cold email to Andy Weir and has reached almost 300 authors since. Those interviews became his book, Write Now, whose advice included a line Justin has since taken back: find a writing app that's good enough and stick with it.

    Earlier this year Justin set out to test whether AI really makes software-as-a-service obsolete, and built the writing app he always wanted with Claude. The result is em, a Markdown editor for Mac, iPad and iPhone that syncs with Ghost and iCloud. Jannis and Justin talk about why he left self-hosted Ghost for Magic Pages, the bug that wiped his drafts, managing an AI agent like an intern, and why em's AI features give developmental feedback instead of writing anything. They also get into whether on-device models will make all writing sound the same, where writers should compromise on their tools, and why every writer has to draw their own line on AI.

    Justin is a Magic Pages customer and affiliate — something he discloses on his own site too.

    Jannis: Hi and welcome to the Magic Pages podcast the podcast where we sit down with the people building hosting and publishing on Ghost I'm Jannis the founder developer behind Magic Pages. And today I'm here with Justin Cox writer and author of Write Now [co-]founder of The Writing Cooperative and most recently the person behind the writing app called em Justin it's great to have you on the podcast. Hello.

    Justin: Thank you so much Jannis. It's great to be here.

    Jannis: Justin. For everybody that doesn't know you Can you quickly give us an introduction of who you are what you do and why you think I invited you onto this podcast now?

    Justin: Yeah, great question. So I have I've been a part of the writing community Really in earnest for about geez about 15 years now feels like forever in reality. I started blogging online in the late 90s Showing my age a little bit. But I started really back up with it with a serious passion in the early tens and that's when I co-founded The Writing Cooperative, which was a massive publication on Medium was really dedicated to helping writers grow and the short version there is we all came together to help each other write better and. Used the platform and really kind of used some I would call them bugs of the platform to take advantage of some community features that weren't really intended but we made them that way and helped each other essentially and the publication grew and grew and then Medium patched the bugs and and I started really focusing on my own writing and connecting with my audience and my writing tends to take a focus on creativity and How to be creative and how to tap into your creativity but also then how to use the tools and technologies that exist today that can help enhance our writing and be.

    What I like to call part of the writing toolbox for for creators. And so I've written probably on every single platform that exists or has existed in the last 20 years playing with all the different features and functionality and so Medium to Substack to essentially my own self-hosted Ghost and then to Magic Pages when I realized I was tired of being a web Administrator and and yeah, and so now I've been my latest project is building this writing app Which we'll be talking a lot about I'm sure.

    Jannis: So I first heard from you when you reached out to Move your self-hosted Ghost blog to Magic Pages and that's when I learned about all the other things that you know. You were writing on Medium that you had The Writing Cooperative. And the one thing that immediately just hit me is that you are one of the people that I. Always mentioned when I say it's important to own your domain name. For example, you've owned your domain.

    I think you put it on your blog since 2005. Yeah, and I bet it's seen a bit of history Can you just walk us through that? What has that domain seen so far?

    Justin: So yeah, technically the WHOIS says 2005. But I think I might have owned it earlier I've purchased my name JustinCox.com way back when and there has been so many iterations of my website on that from the early blog to a point in the the late aughts when I got tired of my Personal blog and turned it into just a landing page There was points where it just pointed to my Medium Site early and on it pointed to my Tumblr site back in the day then Eventually sometime in the mid teens or so. I started to realize that all of these platforms Medium Tumblr Substack and you can take that further into Facebook or whatever as well. They thrive on having our content that we create locked into their ecosystems.

    And and even though I could point my domain to Medium and had all my writing there that I didn't really have any control over. It I didn't have a lot of this kind of came about when I when honestly when Twitter shut down or what's. Purchased by Elon Musk and everything changed and I realized that platforms come and go and. And I really needed to invest in my own Ecosystem if you will. I originally spent a lot of time moving my website content to self-hosted WordPress Which I used in the past and was relatively familiar with I had that running for about a year.

    But then realized that it didn't really Support the community and connective features that I was used to at the time. I was writing it a weekly newsletter for The Writing Cooperative that at its heyday was going to something like 25,000 people weekly and I liked that way to connect directly with my writer or my audience and folks responded and I had fun conversations and the reply chains and so I wanted that kind of functionality and that led me to finding Ghost and so I Installed and ran Ghost on my self-hosted domain for I guess probably about a year or so and. For those listening. I'm sure they know Ghost is great. It's a fantastic platform.

    I love it the behind the scenes for updates and. Infrastructure changes and all that kind of stuff is Not as simple as I was hoping it to be and that's where I found Magic Pages. And so for the last I don't know was been two or three years now. I think JustinCox.com has been on Magic Pages and I have never been happier Being able to focus just on my writing and what goes on to the site than rather than all the behind the scenes stuff That's necessary to keep it running.

    Jannis: Well, I mean, I'm happy to hear how yeah funny enough Like I read through your migration post when you mentioned that you migrated to Magic Pages earlier today and you mentioned that the one thing that really annoyed you was the updates that you had to SSH into your server and run an update of Ghost on your command line and the last guest on this podcast was Austin from the platform team of the Ghost Foundation and. He Mentioned that they're gonna tackle exactly this that one of the goals for Ghost 7 is to solve this issue and move everything onto a platform where you can essentially just update Ghost from The dashboard like it's on WordPress since I don't know like ages basically.

    Yeah. Yeah, we are getting to a point where that convenience will be there. So Maybe that opens up self hosting for a lot more people again. I just thought it was like really funny how Austin mentioned that last week and I read a bit about your on your blog like Earlier today how all of those things connect. So you weren't the only person that had that issue basically.

    Justin: Working with writers for so long especially writers on. Platforms like Medium where it's super simple to just get started that's one of the things that I've realized is I am not afraid of tackling new technologies or learning new processes and the SSH and command-line Connectivity into the website was not something that scared me. It was just tedious but so many writers that that kind of step would be a bridge too far. For most of them. Yeah, and so it's nice to hear that they are looking into that to make that easier, but that's also Magic Pages makes that really easy for folks like that to be able to just click a few buttons and get going and still have Infrastructure that they control and their own domain and all that kind of stuff Which that's how I found you and very glad that I did.

    Jannis: I'm sometimes very stuck in the let's say developer community in the tech community. But it's the one thing that we always remind ourselves as well. I think not just of Magic Pages, but also different managed hosting providers including Ghost(Pro) for example That is wild to expect someone to move the writing to Ghost and having to deal with all of those things on the side. Yeah, can you tell us a little bit about what you're currently writing? You have a newsletter that's called Write Now That's also the title of a book that you published, right?

    Justin: Yeah, I. So there was a time until about earlier this year that I was writing. I was actually publishing twice a day or twice a week Sorry, my newsletter which has had various names over the years This Just In, Write Now, was on Tuesdays and then on Wednesdays my Write Now interview series with authors publishes and I've. Taken a little bit of a hiatus on the weekly newsletter writing it's more kind of a as My brain has things to say essentially for the last couple of months and part of that has been my focus on building the app also my Busy world outside of writing writing is a it's a the thing I do after work It's not my full-time world these days, but Write Now has been a lot of fun.

    Actually, I started it 2019 I believe was when I first started the Write Now interview series and I had this thought There's all these amazing authors that I love their books and I love what they write and how they construct worlds. I wonder how they do it like what tools they use What their environment kind of looks like and so I had this Silly idea at the time that was like I could just email these people and ask them The worst they could do was say no and so the first email I sent was to author Andy Weir who at the time had written The Martian and. Project Hail Mary had not yet come out.

    I think Artemis might have been right around the time of coming out and The Martian was one of my favorite books in the the tens and so I found his Publicist email on his website and I sent an email and said interview request and I figured these folks. I didn't want to go into the podcast route because I figured like an Andy Weir It'd be really hard to potentially land a conversation with so I figured I'll make it as easy as possible I'll make it a an email response and within 24 hours his publicist had forwarded the email to his personal email address and he replied to me directly and was like. Yeah, I'd be happy to send the questions over and so I was like, alright, here we go and that turned into what it is now where I've had similar conversations through email with Almost 300 working authors Across the really the globe.

    I've connected with some Publicists at the some of the the big I think it's four publishers now since they keep merging with each other. I don't have to go seek authors anymore. They come to me, which is fantastic It's cool to see how people that are Professional writers and some of them are full-time writers like an Andy Weir. R.L. Stine who was a fun one some of them are Part-time authors who have day jobs like myself that then write when they can and still manage to publish.

    So that has turned into my longest running ongoing series every Wednesday, there's a new interview with an author and It's cool. Sometimes folks find inspiration from what these people write. I continue to go back to one of the things Andy Weir wrote in that very first interview that. One of the questions I asked authors is about writer's block and What prevents you from writing sometimes and I have lived with this quote for the better part of a decade now. And he basically says he doesn't believe in writer's block. He believes in basically getting your ass off the couch and putting in the work and. And. I'm like, all right, and that has stuck with me that if writing and publishing is something that I want to do the only thing that really is preventing me from doing that is myself and my own kind of belief of lack of time or any of that kind of thing and Connecting with these authors has been a lot of fun and and putting the whole series together has been a fun endeavor Which it led to the book that I wrote and in the first version I think was published in 2021 it was my COVID project and I Figured I had at the time a couple years worth of these interviews and my own decade or so of Experience writing more or less professionally online kind of advice Could I turn around and give to other writers who are sitting in that like, how do I start though?

    I want to do this thing. I've got these Ideas, what do I do? How do I start and am I the only person who's getting in my own way kind of concept? That was a fun version to put together There's the second version got published last year with some updates particularly around AI and and that kind of thing. But yeah, it's been a fun journey.

    Jannis: I didn't know it was that big that you spoke to over 300 authors now and it's mainly about like the workflow and tools that they use.

    Justin: I've never really interviewed people before and so I went, hey, there's the who what where when why and how Questions and so there's a set list of questions that I've asked every single author It's who are you they introduce themselves with some of them provide a lot of detail some of them provide none It's just who they are where they're from it gets into why do you write and there's some sub questions that people can fill in There but what motivates them what drives them how they get into it potentially where they write and when they write that that part is particularly fascinating to me because some of the folks that are part-time writers are talking about how they write around their kids schedules or in The car waiting during soccer practice or after work or whatever it might be and that's pretty interesting what tools what their writing workflow is and tool sets and one of the things that I think I Particularly because I like technology have fallen into is what's the latest and greatest writing app and I'm building one because of that.

    But so many of these published highly renowned authors use Word. And just crank out what they're writing in a Word document or a Pages document for Mac folks we sometimes over complicate you getting the ideas onto paper and Some of the tool sets that are the simplest are available to us and then I asked how they overcome writer's block and then what they do outside of writing and That that is also interesting because so many writers Have a hard time answering that question other than to say I love to read and I love to engage with other writing.

    And then people that like to hike or have other activities and whatnot. So many it's those who write are locked into this reading and writing world, which I don't think is a bad thing. I just find it very interesting.

    Jannis: Yeah, absolutely. I think it comes back to the fact that sometimes the simplest tools are probably the best to just get started. I think I've thought about this in the context of developing stuff lots of times because now in the last Say two ish years or so with AI and everything The developers tend to over engineer their workflows and. Add another tool here and another tool there and in the end if you strip all of it away What you need to write code as a code editor. It's yeah, it's a surface where you add your code Do I need all the blinky blinky around it? Not necessarily and it kind of reminded me of this that if a best-selling author can write their book in Word then maybe. We can write code in I don't know a normal text editor and then deal with the rest later.

    Justin: Back in the day of the very first website I ever built again I'm dating myself, but in the the mid ish 90s. It was I'm so far removed from the Windows ecosystem. But in on Mac, there's TextEdit and so whatever the very basic text editor that's ships with the operating system. So whatever the I think it's Notepad on yeah on Windows. Yeah, that's what I wrote my very first website and I typed in the the bracket HTML like the very first text editor that I used and yeah to your point all the the blinky blinky as you said. It makes it sometimes it adds some functionality and features and makes it easier but at the end of the day, we're just we're writing text into a file and. It doesn't have to be too complicated.

    Jannis: Yeah, I think but my first I remember that very very Distinctly because it's I misused a tool on Windows for that. I didn't use the Notepad app, but in the Microsoft Office suite of tools there was one tool but it was called the Microsoft Publisher and. It was mainly meant as far as I remember for Designing like flyers and stuff like that.

    Justin: Page design. Okay.

    Jannis: Yeah. But it had an HTML export. So this is how I created my very first website. They looked horrible. They literally looked like flyers. But then again and and it must have been like 2004 2005 so back then all websites looked like that. So it fit right in.

    Justin: That's the thing like everybody has to start somewhere, right? And so you find the tool that makes sense to you before you're like Ready to invest in any kind of extra technology or let me just kind of see Where this goes and so you use what's in front of you and there's nothing wrong with that.

    Jannis: Absolutely. Yeah speaking of what's in front of you. You've used Ghost for a couple of years now and had the Ghost editor It's called Koenig. I at least assume it comes from the German word [Editor's note: it's named after Friedrich Koenig, the German inventor of the steam-powered printing press]. So I'm pronouncing it like the German word You've used it's called it the Ghost editor for a couple of years and then at some point you decided something Was wrong with it something didn't work for you.

    What was the point where you said? Okay, I'm Need to actually change what I said in my book because in the second version of your book you said choose a writing app That's good enough. There's never gonna be a perfect writing app if I can paraphrase that and then a year later you said no That's not true anymore. I'm gonna do my own writing app What was that point for you where early this year you said I'm gonna do this now. I want to see what I can do better.

    Justin: Yes the reality is I have never been a fan of. Writing inside of whatever platform tool exists and so my writing has always started with just a text file and Markdown file on my computer or phone or something to that effect and I have always written the bulk of the content and edited the content on my devices before it ever makes it to Back in the day a WordPress or a Medium or now Ghost once it gets into the Ghost editor is when I would add in formatting or Finalize the links add the pictures whatever it might be.

    So it's always been the last mile It's where I polish not where I fully create and so I've used over the years writing apps like iA Writer, Ulysses, or Bear Obsidian for a spell to actually start my writing and to build the outline and kind of fill in the content as I you know, flesh everything out and Earlier this year. I was reading a lot about how AI could be the the killer of SaaS-based Entities and I was like, I don't think that's really true. And I don't think this concept that folks can just use AI to build whatever toolset that they want and that it'll Completely replace the need for any kind of subscription or paid software. I was like, let me test this theory and let me build a writing app.

    Yes, I have used AI to help build this writing app. I have I think definitively proven without a doubt that AI is not going to Destroy the software industry or destroy SaaS-based businesses because this has been a in some ways almost impossible feat for what I would consider most people for crazy people like me who aren't afraid of new technology and getting things wrong and breaking things on my device and Deleting most of the content that I had put into it because of accidental Misfires like it didn't faze me Frustrated me a lot at different times, but it didn't really faze me but most people like I said earlier they want to they want to click a few buttons and get started and not have to think through design and architecture and how files are saved and Processed in the background and and so all that kind of led me to this point and and yeah.

    In my book, I did say there's no perfect tool out there Find one that works and with all software Ghost included you sometimes have to give up the way that you think it should work and fit to how they intend it to work, you know, a lot of tools add a bunch of customization features and. Flexibility so that you can kind of do to the best extent but still you're playing in somebody else's sandbox. And and so I figured like maybe I can try and build my own sandbox and at this stage em has been out for as we're recording this about a month or so and the version on the App Store is version 1.2 1.3 comes out and. It's set to release when the iPhone Duo comes out.

    It supposedly works for that according to the simulator. I guess we'll find out and then I'm I'm currently working on version 1.4 on my phone which has a ton of fun new features that I've been throwing in based on how I have been using the app and and this is one of those things like I Build for myself and I build for kind of what I want and then if other people can find it useful. Then you know Awesome and that's how I've really approached all of my writing over the years. Like the book that I've written is. It's really kind of advice to myself if I would it would be starting now and and I figure there's other people who are in that similar boat that could take advantage of it and Potentially provide some advice and help along the way.

    Jannis: You already touched upon it briefly. You said that it wasn't just a I tell my AI bot create a writing app. You don't have a programming background as far as I know but how was the the process for you of getting through all of those hurdles and What happened when I think it was Claude deleted all your content?

    Justin: Yeah, so I was using Claude and again. I kind of started this process with okay Is this is this real like can I just tell Claude to build me an app and the reality is you can? And so I had a Markdown editor with about less than 24 hours after I pitched this idea to Claude. I kind of sat down and I said, alright, I want to build a writing app. Is this possible? It's got a I wanted to edit Markdown files and yada yada yada Within about 24 hours. I had the framework of what is today em. It was not good and I didn't know it wasn't good. For about two or three weeks. I was building on top of it and adding more things Until there was just a massive data loss issue where I guess I didn't explicitly say that files had to be saved and so it when you moved from one file to the next it copied all of the content from The new file to the old file and if that meant you started a new Blank document then you lost everything that was in the old one.

    And yeah, so that was a fun experiment and. And what adds to that is I've never been really whenever I test new software or. They have built websites or whatnot over the years or as I've been building this this app. I can't be bothered with test folders or test accounts. So I just used my own data and all the things they tell you not to do don't run betas on your live system Don't use your live data. Yeah, I had no I didn't pay attention to that.

    So I lost a bunch of drafts I've been working on when that happened and that kind of made me realize yeah, no — nobody This is not for the mainstream Folks to be building apps like this. And so I really did have to take a step back and at that point I. Work with I don't work in development but I'm tech adjacent and I work with developers and software architects and what I've gathered is I think in that systems. Thinking architectural thinking so I kind of had to take a step back a couple weeks into the project and I was like, okay Let's start to think through. You know, okay if I want the files to save How do we build this in a different capacity?

    And so I really did start over at one point in the development of the app to really get it to what I wanted and My ultimate goal was that I wanted a Markdown editor that fully connected with the Ghost API so that for those that remember back into the early day of blogging there was this fantastic piece of software for WordPress sites called MarsEdit and. MarsEdit essentially let you run your WordPress site from your computer and Could edit the file or the posts live and could post directly to your WordPress site. And so my original kind of thought process was can I do something similar? With my Ghost site so that I essentially have a full backup of my writing as I write in on my local device then I could send and publish to Ghost and and so I learned a lot about the Ghost API along the way and all of the amazing things you can do with.

    It and I really but had to really sit down and map that out and think through alright, so if it's gonna do this, this is how it has to function and. Yeah, it was a lot of fun and it's still a lot of fun That's why I keep throwing new features at it. It's a it's been a journey.

    Jannis: I can imagine. I think that really reflects my experience with AI development as well that it can do all of those things but it does take what you say for granted and it just runs with it and. It will still at least for the foreseeable future in my eyes need somebody at the other end that can guide it that can give it guardrails and to actually make decisions because decisions made by an LLM are usually just whatever is the most likely thing to happen or the most likely outcome so it's it's Refreshing and it's good to see that somebody that doesn't come from that background has the same experience that we all having.

    Justin: Yeah The I read Casey Newton who writes Platformer just find it fascinating he was talking about his journey with AI agents and whatnot and he Wrote that he likens it to managing an intern and Not everybody wants to manage an intern. and correct the mistakes that the intern makes and all of that kind of stuff and Definitely most people don't want to manage an intern for fun when he wrote that I was like, yeah The my Claude agent that is building this app for me is essentially an intern it's an intern with a lot of knowledge and a lot of skill set but it's still an intern that I got to manage and Correct and Redirect and and whatnot and you have to have that mindset going into it.

    Otherwise, yeah You're gonna you might build something amazing, but then it deletes all your data and you're left holding the bag.

    Jannis: Can you Summarize why should a writer use em? What's your pitch for somebody to now go out and use that compared to there are a bunch of other desktop apps? That's of writing apps for Ghost, why should somebody go to the App Store and Get your writing app that's called em.

    Justin: Em, as in the letters e-m. It's based on em dash, which is my favorite piece of punctuation and I also thought it was a little tongue-in-cheek since I was having an AI build this then AI is Notorious for using a bunch of em dashes, but it's my favorite punctuation mark. It always has been I've been using them forever. I just I love that punctuation mark. It connects different ideas and it's kind of like an aside to me and I that's how my brain works but the reason I wrote em where it has evolved to is. A couple of fundamental components there's a phrase coined and a number of years ago called that's a Mac-assed Mac app and The kind of sense behind that is that it feels like it belongs in the Apple ecosystem.

    And that's where I've been ingrained for over two decades now and so I wanted it to use as many system tools and features and design Theories as as possible but the biggest piece was I wanted to focus on privacy, you know. I didn't want to have like a central server or something like that like a like a Day One journal or a Bear that use or Obsidian sync that uses their own kind of. Proprietary syncing mechanism and server. I figured Ghost is the server like that's my that's why I have my Magic Pages account is because that's where it all syncs through and so between that and iCloud That's the the basis for em in terms of syncing so privacy focused.

    No data going to some third party. I don't not monitoring any kind of metrics or usage or any of that kind of stuff so privacy. But then also I wanted to take advantage of the Apple foundation models and. So with it started with the last year's releases the iOS 26 releases. But has been greatly enhanced with the iOS 27 releases all of the the modern Apple devices are shipping with what are called Apple foundation models and these are essentially on device LLMs for those familiar with the the Claude kind of structure About what I would equate to like a Haiku in terms of Capability, so they're not doing any kind of reasoning or deep thinking but they power a lot of the ability to suss out meaning and to be able to search differently, but then also to provide some level of feedback and so my my thought process was Can I build an app that?

    Uses these foundation models to provide Some kind of developmental feedback for the piece that I'm working on. So kind of going back to my early days with The Writing Cooperative The idea was like I've written this thing. Is it any good? Can I get some feedback and so I have written em in a way that it does not do any writing for you It's not it's not generating text. But if you want to you can turn on the AI features and. Ask questions about the draft you're working on Are you making your point is the the plot clear and I've written it in a way that the prompting is? Question based question and suggestion base to say This looks like it could be stronger.

    Have you thought about this or this point could be stronger? Here's a suggestion for that. The idea is that Writers should crave feedback and this is a way to put it right into the app in a way That's private and then for those that want a little bit of extra power There's the ability to connect in Claude API key or Gemini or ChatGPT to take advantage of some of the more powerful reasoning models, but the completely optional component there and since. The 1.2 update for em has taken advantage of all of the new foundation model components that came out with the the iOS 27 releases and They're all it's only getting more powerful and I imagine that as Apple continues to upgrade those foundation models We'll see some of the reasoning and whatnot kind of expand into that and the ability to edit Directly on the device and get feedback which is what's most important to me will be even stronger.

    Jannis: Oh, so you're basically Not doing what everybody is doing, which is I don't know. I have an idea or write a post for me. But you built like a little editor in there that can give you feedback and that makes your writing better.

    Justin: Yeah, exactly and this 1.4 update that I'm currently working on. I'm having Claude expand on that that feedback engine to not just provide essentially developmental feedback, which is how I've written the prompt but to look for like repeated phrases or overused words things that Sometimes we don't even realize that we already like I I personally know that I say um a lot when I'm talking there There's a ton of them in this interview. It's a.

    Jannis: See how it is when I edit it.

    Justin: Yeah, it's a good point, but it's how my brain works again It's why I love the em dash. It's a way of kind of Connecting ideas, but there's similar kind of tells like that in your writing and anybody's writing where? We overuse kind of the same mechanics because they're comfortable but that doesn't always mean that it's the best way to format the sentence or the paragraph and so having the on-device model be able to find those kind of things that to me is a Completely private and on-device and no matter how people feel about LLMs and whatnot or AI tools my thought process is that if it's on-device and it's secure Let's use the tool set to help make our arguments and ideas stronger.

    Jannis: One thought to that. I'm curious what you think the on-device models. They're rather small models. So they have a very limited Let's say set of training data Do you anticipate that it might run into the risk that all writing at some point? Sounds the same if it applies like the same small training set of saying Oh, no, don't use this because I think that this is a better way of phrasing it.

    Justin: Yeah, that's a good question. I guess it all depends on how you use the tool My prompting is like a developmental editor. I don't use it for mechanical editing mechanical editing would be like your spelling, your grammar, your Structure I use it as developmental. So did the point get across? Does the argument make sense and the way that it's structured is it looks at different sections of the piece? And then it looks at the the overall. And it has helped me to to see okay.

    So yeah, I laid out my thesis, but then I diverted a little bit and this sidebar kind of came in out of nowhere Maybe I need to add more Depth to that sidebar because it helped but I write in kind of a stream of consciousness flow even though I do outline it Let's see where this goes. And so having the developmental Editor focus with that prompt. It's not so much as like smoothing or making everything sound the same It's more kind of catching like hey This seems like it should have more meat on the bones or this seems like it doesn't fit at all. It doesn't match the Thesis that you're going with to your point. I do think that there's like the Grammarly-fication if you will of writing where tools like Grammarly.

    Yeah, they clean up our writing greatly. But there's that sameness that exists. And so I think writers have to be careful about what tools they use and how they use those tools to make sure that their own voice and. Their own kind of what they're trying to get across does not get lost in the editing process.

    Jannis: Yeah, interesting. It also kind of ties to another question. I wanted to ask you which kind of comes from your own experience. We already touched upon it. You said in your book find an app make some compromises. There's never gonna be the right app. Now you've built your own app. So all the compromises are out of the way, but you also said that it's not for everybody to just say hey. I want to build my own writing app and it's also Probably another realistic view of the world that we say Okay. We can all create our own version of a writing app our own version of a blogging system Having spoken with so many writers and having written for such a long time yourself What do you think where should authors compromise and where should they not compromise in the tools that they work with?

    Justin: For all writers. This has to be a personal decision and. Well, I feel like I have built the perfect writing app for me. I am NOT I'm not going to go ahead and say that this is the perfect writing app for all authors or all writers I like everybody has their own kind of What they're looking for in a tool set and that there's nothing wrong with that That's why there's a billion different options out there. And so I think all writers have to find What makes the most sense for. Them to use whether it's hey, Word is good enough for me like that. I'm good with that That's fine If that works for you that works for you Writers who want to go a little bit further Finding the right tool set and the right component in terms of compromise It's an interesting question because you know when you talk about AI usage and whatnot.

    There's there's essentially This there's almost like a line being drawn in the sand There's some folks who are saying I will never ever use an AI to help me write in any capacity and anybody who uses one like I Won't read or engage with their their writing which for those writers. Okay, cool. That's your decision. You have the right to make that decision That's not the decision I made and or will make for myself personally.

    But every writer has to find where that line is for them and decide What is the tool that helps enhance my workflow not replace it? I don't think any writers should ever find a tool set that replaces their workflow because then what's the point? But but everybody has to decide What's gonna enhance my current flow and what's gonna let me just strip away and focus on the writing and in many ways that comes back to what we were talking about earlier about why I moved to Magic Pages why I Moved off of Medium into my own website in the first place. I wanted to be able to focus on the words I wanted to write and.

    So finding okay, I don't need to spend time updating Ghost and running these SSH prompts once a week and Dealing with the backups and server stuff Jannis is here to make that Thousand times easier for me and but another writer might say, you know what? I like that. I want to have that level of control and and whatnot. And so the same is comes to writing tools and apps and to AI usage every writer has to find where that line is for themselves and.

    But the piece there that I think is really important is that when they do find that line They've got to acknowledge that not everybody's gonna make the same choice that they do and that's completely okay that there's a lot of there's a lot of attempt to turn AI usage into an ethical question. And yes, there are so many things wrong with AI and how AI has been trained and power that these tech companies are have been given globally and. We can go on and on for days about all of the issues involved and my choosing to use the tool set is not a It's not an ignoring of the issue or a swiping away of the issue It's more a I feel like the cat's kind of out of the bag at this point if these lawsuits about training data if they win AI's not going away there might be money involved in Going from AI companies to publishing houses and news outlets and whatnot.

    But AI tool sets and add-ons are not going away and maybe that's a little bit naive on my part. But that's the stance that I have taken and and every writer really has to Creator in general has to make their own kind of decision as to where that line is for them.

    Jannis: I think it it all goes back to choice in the end like you have to make your own choices you have options and I've shared this with you before like I find your view on this fairly refreshing and all the sea of Black and white or looking at the issue of AI black and white and I I've been saying that for quite some time as well Like it's technology that is out of the bag and same with other technologies once it's out There will always be somebody in the world that can use that technology and if we now say, okay We're not gonna use it anymore Whether that is on a voluntary basis that I don't know Anthropic finally reaches an agreement with all the other big AI Companies out there and they stop developing bigger models.

    There will always be somebody in Can just be a small village somewhere with a with a computer and they will have access to that technology and it will continue to be developed somewhere and in the end, I think it's great to just have the choice to also address the issues that come or that are present now and. I what I am really Hopeful about is that within the next couple of months or so. We find a framework where creators and publishers can choose how their websites are used in the training data and One thing that's really interesting to me is the fact that you can tell AI crawlers you can use that but you have To pay for it and we'll see how that develops. It's still hard for me to imagine how it's gonna work.

    Justin: Yeah Or if the AI companies will even honor it.

    Jannis: Yeah, I think the honoring part is the easy part because you can just restrict it so in Magic Pages as well, we have AI crawler controls and a. Another customer actually emailed us earlier this week and asked like oh do I have to put like a hint on my website that? Crawling is not allowed and I just replied and I said just putting a hint there will not stop anyone Like it's it's like, you know having a little sign that says please don't run me over on a highway It's gonna happen at some point.

    So what we do is to actually try to identify who's accessing a website and if we say hey, that's ClaudeBot or an OpenAI crawler. We just blocked them before they reach the website and That is the easy part. The hard part is to then say hey OpenAI, you are blocked from this website unless there is this programmatic way where you can pay for access to this content. So if it's important to your training data Here's how you can pay and Cloudflare is developing a framework for this to do that. I know that in Ghost's own source code. There have been attempts to also implement this.

    So it's still very far from being released even as an alpha version. But there are those spikes in the source code how this could work and I'm very excited to see how that will shape up in the next couple of months.

    Justin, it's been extremely fun to pick your brain on all of these issues to understand how you came to develop em I'm still a bit sad that I can't try it since I don't have a single Apple device here. But I might just ask my wife Mariia to get us a version and we can try it on her MacBook. Because I want to see like how all the on-device LLMs work.

    Justin: It's one thing we didn't talk about is there's a lot of Behind-the-scenes stuff because it's taking that Ghost post and turning it into Markdown. So that you can write in Markdown and then converting it back to what the Ghost API accepts All of those, you know, all of the different Ghost cards editor cards the all the different features exist in Markdown which was quite a feat you want to talking about the architectural component If you get an opportunity to play with it. I welcome any and all feedback and but it's been a lot of fun for me to really kind of to put together.

    Jannis: Yeah, let me snatch Mariia's MacBook and I'll play around with it a little bit. Cool. I have a little question for you in the end now that you've dove into the Ecosystem of building your own app if you had the time Is there any other app where you now say cool now with all the experience? I want to do this next.

    Justin: So I'm not gonna say that that hasn't crossed my mind but I don't foresee that being the next kind of focus of my Creative efforts, it has been a journey to get this thing to the place where it is now, which is I think pretty cool but. Building from scratch with an AI tool is it's not easy and and then building an app is in general is just not easy and. Part of those architectural decisions that I had to make was like Okay, if I want this to work on the iPhone and the iPad and the Mac. And all of those while there are more or less unified over the last couple of years there's so many weird quirks to them that are just make all of this that much harder and so a great example is I'm.

    Working on right now adding a Calendar feature into em so that you can see when did I write when did I I publish there's a? Some UI for the calendar like the actual. You know grid of the calendar with the days and the weeks and all that kind of stuff for iPhone and iPad. But not for Mac and just like weird little stuff like that's like I don't know how Developers do it and they deserve more credit and praise than they get because I'm just talking about dealing with Mac and Apple ecosystems dealing with Web architecture and every device that could potentially exist or working with Windows and Android is a whole other ballgame. This is just so much that has to be thought through to Make it all work.

    And so will I do this again in the future maybe? But right now I think I'm. Going to continue to iterate em until I get it to the place where I feel it's finally Right, and that's part of my problem is never nothing is ever perfect, but it can get there but I'll keep iterating on em and Continue writing and that'll be my creative focus for the foreseeable future.

    Jannis: I'm excited to see where that goes if anybody wants to keep updated on em You've created a little website as well for it link to that in the show notes as well. And yeah, if anybody wants to give it a try Justin said he's very Much looking forward to feedback. So send all of that to him He's also very active in fixing bugs I've seen your conversation that you had on the Ghost forums if there are any bugs Justin fixes them. I've seen that live.

    Justin: Yeah, this is part of building a You're well aware as you build something that is for public release. There's always going to be things that you you don't see even no matter how many times and how hard you try and Same with writing no matter how many times I might edit something. I'm gonna miss components and and somebody out there is gonna find it and That's part of the feedback process and you adapt and you fix and move on from there.

    Jannis: Absolutely. Thank you so much for making the time so early in the day for you Justin. I Really enjoyed having that conversation. We should have a look in a year or so to see where you ended up with em. And yeah for now Thank you for making the time and I wish you a Lovely rest of your day.

    Justin: Thank you Jannis. Yeah, it's been a lot of fun. Yeah, let's check back in a year and see what has happened.

    Jannis: Yeah, absolutely then. Goodbye. Thank you.

    51 min
  • Meet the engineer behind self-hosted Ghost

    Austin Burdine started contributing to Ghost more than ten years ago, back when contributor chat still ran on IRC. Frustrated by how many manual steps self-hosting took, Austin built Ghost CLI and maintained it for a decade. In June 2026 Austin joined the Ghost Foundation's new platform team – and one of the first projects was deprecating Ghost CLI in favour of the official Docker setup. "The longest interview process at Ghost," as the team joked.

    Jannis and Austin get into what the platform team actually does, why a 20 MB memory increase matters when you run tens of thousands of sites, and how an idea on the forum turns into a feature. They talk about technical debt in a Node.js code base from 2014, why scoped API keys are harder than they look, how to write a pull request that gets reviewed (open an issue first), and the flood of AI-assisted security reports. Austin also shares where Ghost 7.0 is heading: more extensibility, a public roadmap again, and one-click admin updates for self-hosters.

    Jannis: Hi, and welcome to the Magic Pages Podcast, the podcast where we sit down with the people building, hosting, and publishing on Ghost. I'm Jannis, the founder and developer behind Magic Pages, and today I'm here with Austin, one of the platform engineers of the Ghost Foundation. Austin, it's an incredible honor to have you on the podcast. Hello.

    Austin: Hi, happy to be here.

    Jannis: Well, Austin, for those who don't regularly stalk GitHub, can you quickly tell us a little bit about what you do and how you ended up at Ghost?

    Austin: Yeah, so my history with Ghost is fairly lengthy. We joked last week at our team week that I had the longest interview process at Ghost because I started working as an open source contributor for them over 10 years ago when Ghost was still fairly new, when contributor chat was on IRC before it moved to Slack. I started primarily just doing front end and back end contributions based on what issues were available for people to work on. Over time, I noticed that the sort of self-hosting instructions for Ghost were a bit complicated. There was multiple steps involved. None of it was automatic, really easy to mess up. And I was like, what? We could just build a CLI that sort of automates all this, and Ghost CLI was born.

    And I worked on that off and on for the last decade and joined Ghost three months ago, roughly, to be on the platform team and take charge of the self-hosting setup and putting some effort into that from a core perspective where it just hadn't been prioritized historically. Funnily enough, one of my first projects is deprecating Ghost CLI. So I joined to kill the thing that I made, but it's been great finally getting to work for Ghost. Finally, all the planets aligned and I was able to make it work.

    Jannis: That is quite a lengthy interview process. Yeah. I'm curious, how did self-hosting Ghost work before the Ghost CLI? So I discovered Ghost in 2018 for the first time. And back then, there was already a Ghost CLI, of course. And I thought that was always there, but that was.

    Austin: Apparently not the case then. Yeah. Pre 1.0, it was very much a, oh, here we published a zip file to... I don't remember if it was GitHub or some other hosting, like file hosting, where you would download the zip file, unzip it, do the whole NPM install. You had to do all of the database configuration and Nginx or Apache configuration yourself. And then you'd have to maintain some sort of setup. I think Forever was the popular tool at the time.

    And then PM2 replaced that, but actually managed the restarting of Ghost and making sure it kept running when you exited your shell session. So it was very much a do-it-yourself sort of thing. Ghost 1.0 is when we launched the CLI. So much more streamlined.

    Jannis: Yeah, absolutely. We were like three minutes into the recording and I'm already here with things I never thought about before. I always assumed there was always a Ghost CLI. Well, obviously somebody had to create it at some point. And I would say the entire Ghost community is very thankful to you for that.

    Austin: Yeah. I mean, it's impressive that it's still maintained. The amount of usage that it has. Even with Docker being sort of recommended, it's still. Used quite a bit. I'm glad that people found a lot of use out of it.

    Jannis: Yeah. How does the move to Docker make you feel? Is that kind of like a bit of a sour side as well, or are you all in for that?

    Austin: It's bittersweet in the sense that building Ghost CLI and then having to kill it, there's that aspect of things. But having worked with Docker fairly extensively at the last couple of jobs I've had, it's the right decision, especially with a lot of the additional complexities of ActivityPub and analytics and stuff like that. Ghost CLI just doesn't work anymore for the common hosting model. And there are tons of hosting platforms these days which let you host Docker. It's a little more complicated to do VPS and managing all that. So ultimately it's the right call.

    Jannis: Yeah. For a self-host specifically, it takes the complexity away from, I need to get an entire server to, I need somewhere where I can host Docker. And there are, as you said, so many places that let you just do that. So yeah, I'm also excited to see where that goes. Magic pages has always been on Docker, but in the very early days we built our Docker image with the Ghost CLI inside. The official Docker image still does that,

    Austin: At least the current v6 version. There's a next variant that removes that. But yeah, that's how it worked in the Docker image for a while.

    Jannis: Yeah. And that's the cool thing about software usually. Someone I know always says software is soft and that's kind of those little steps to get to a point where you evolve further and you see what's out there as well. So how does it now work on the other side? You now work within the Ghost Foundation. How does that compare to working as an open source contributor for Ghost or for the project of Ghost?

    Austin: It does make me a lot more aware of some of the considerations that aren't necessarily public just because some of it can't be. There's various infrastructure hosting considerations with Ghost Pro, some of which because I'd worked on one of the team weeks 10 years ago on some of the Ghost Pro hosting code just because I was there. And so some of it was still familiar, but a lot of things that it does that sort of inform how Ghost has to be built. And a lot of those do make sense to transfer to self-hosting as well.

    But at the same time, it means that certain things which might seem like they're easy to implement in theory become a lot more difficult when you scale. Ghost Pro has, we're in the tens of thousands of sites hosted there and an increase of say 20 megabytes of memory usage times 10, 20,000 sites is a lot.

    Jannis: I can attest to that. Just hosting 1,500 sites, an increase in 10 to 20 megabytes is definitely.

    Austin: Something you feel as an- Especially these days with memory prices being what they are. Yeah, it's fairly significant. And it's one of those things where looking at the forum and the ideas is, oh yeah, all of these are great. And these are not things that we don't want to do. It's more just how do we prioritize them, especially with such a small team. And it's not all engineers at Ghost. We have our support team and we have the folks that build all the design. There's a fair amount of people who do things that aren't actively working on the Ghost code base. And so it's a huge question of prioritization.

    Jannis: Can you give us a little bit of an insight how that happens? So let's say there's an idea in the Ghost forum that somebody posts and what does it take for somebody to pick that up at the Ghost Foundation and say, hey, we want to build that. Is there a decision-making process or in engineering at the Ghost Foundation, how do you decide how those things get together?

    Austin: I think it probably differs per team, but I think in a large part, we have to factor it in the case of is this going to be a useful feature for 90% of people? And the percentage may vary slightly, but it's a question of does this make sense to be added to Ghost Core? Are there ways that if we add this, it increases the maintainability burden? WordPress has this extensibility contract that's fairly expansive, but it means that it is a lot harder to make changes going forward without breaking things. And so, especially for things like replacing or making it possible to replace the mail provider for something other than Mailgun, there's a fair amount of considerations there, especially when it comes to things like analytics where Mailgun lets you do polling of their events API, but not a whole lot of other mail providers do that.

    And so Ghost's integration right now is built on that polling. There are web hooks that most support, but Ghost's hosting considerations mean that web hooks get a lot more complicated, especially for some of our bigger sites that have hundreds of thousands of members. That's a significant amount of traffic just from web hooks that we have to figure out how to handle. And so it's one of those that seems simple in theory, but then when you start to dig into the side effects of that change, it gets a lot more complicated. And I think oftentimes we draw from the ideas board, but a lot of these are things that we've also considered internally and are planning to do at some point.

    But yeah, it all. Depends on what other things are going on. And I think the other thing that affects a lot of this is Ghost's code base was written for a very early version of Node. And the way you would write a Node.js code base in 2026 is very different than you would write one in 2014. And to some extent, we're just paying that cost. There's a lot of stuff in Ghost that made sense at the time, but in retrospect is now technical debt that we have to address. And some of these ideas it's like, okay, great. It would be nice to be able to do this, but in order to make that feasible, we have to go and address a lot of these underlying concerns so that it's easier to add and maintain these new sorts of features going forward. And that's probably the biggest blocker to a lot of these these days.

    Jannis: Do you have a rough idea how much time you spend on technical debt versus let's say working on new features in that sense?

    Austin: It depends because the cost of the technical debt is probably spread fairly evenly across the different teams. I think it's probably less these days now that we've started to establish a roadmap for refactoring and replacing some of the more antiquated parts of the code base with more modern alternatives. And so determining what is technical debt versus features also gets a little tricky because there might be a case where solving some of that technical debt sort of adds the ability to implement this feature or does implement this feature just by the nature of doing it. But.

    I mean, it's probably a bit skewed in terms of technical debt. Like right now, Steve, my counterpart on the platform team is working on removing Ember.js from our admin code base because we've been stuck on a five plus year old version of Ember and that dramatically affects what we can build on the admin side. So yeah, it differs per team, but I think we're hopefully getting to a point where that ratio starts to switch from more tech debt focused and more into building new features that are useful.

    Jannis: I mean, we're now already fairly deep into your work at Ghost, at the Ghost Foundation. You also mentioned Steve now. Are you two now basically the two platform engineers that the Ghost Foundation has?

    Austin: Yeah. Yeah. We essentially make up the platform team. Hannah is working with us pretty heavily as well, but day to day, yeah, we're the two folks. And we kind of have segmented roles. We work together, but Steve's focus primarily is the contributor lifecycle. So can somebody clone the Ghost repo, make a change, make a PR and have that make sense? And then I'm the second stage of that, which is once a PR is merged, owning the lifecycle of that to a publishable, buildable, deployable Docker image or other aspects of things that self-hosters or our own internal hosting can run. And so that's kind of how that fits.

    Jannis: So to just give it a spin in my own words, because I think that platform engineering can mean different things at different companies, but would it be fair to describe it in a way that the two of you work on making Ghost work for people that are not necessarily at the Ghost Foundation?

    Austin: Yeah. I think that's our platform team's roadmap. And I think this past week we were discussing a lot about the particulars of our roadmap. And I think that's still reinforced. We've also found that internally too, there are folks that aren't working on the Ghost code base regularly, and they run into some of the same problems that external contributors run into. We're working on improving that. And hopefully some of that bleeds into the open source contributors as well.

    Jannis: Can you share some of those things that people run into, like that happens internally, but also externally? What's some of the things that are similar there?

    Austin: I think the broadest one that we've had a problem for a while is people making a pull request and it just sitting and not getting reviewed or merged or feedback for a long time. And I think some of that is just because we haven't been focusing on it as much as we should, and that's what we're trying to correct. But the other part is especially more with open source contributors where it's like, oh, this is a new feature and we haven't really discussed how that should be implemented. And so trying to figure out how to come back to a large PR, and some of this feeds into AI built PRs, which is a whole other complexity where it's like, oh, this might make sense, but the way that this contributor has gone about implementing it isn't the correct way.

    That takes more time to communicate that in a way that's not like, hey, we don't want this. It's more, hey, we need to discuss how. It makes sense to implement this before someone goes off and spends a bunch of time on it. And so it's this unfortunate feedback loop that makes it less likely that somebody will contribute when there's no guarantee that it'll get merged. And so that's definitely something we're working on improving.

    Jannis: Yeah. I mean, I can just attest to that from my own experience. So one of the reasons why you're on this podcast as far as. I have put together is because the episode I had with a couple of weeks ago was also shared within the Ghost Foundation, right?

    Austin: Yeah.

    Jannis: And the one thing that we pointed out in there was that for us, it's sometimes a bit hard to figure out what we can or should contribute to the Ghost core. And what we always see is exactly that, that there is so much noise that has to be dealt with that sometimes things get lost, which. I think is very natural in a big open source project like Ghost. Are there ways for, let's say, new open source contributors that are not more than me who obviously also have a commercial interest in contributing to the Ghost core to make their PRs in a way or to create them in a way that is easily reviewable for you guys?

    Austin: I think Steve probably has a better answer on this than I do, working more closely with it. But for things that are like new feature additions, one of the easiest things is maybe opening up an issue beforehand, just because if it's something that is, oh, we're planning on doing it this way or something to that effect, it can be discussed before somebody goes and spends a ton of time. Having contributed to open source before joining this, it can be pretty demoralizing is probably the right term to spend hours on something and then have it go, no, this isn't the right way to do this.

    And then kind of just be left going, okay, I'm going to have to spend a bunch more time reworking it. One of the things that we are working on is getting our sort of standards in the code base documented a little bit better. So not just for humans, but for AI coding agents to be able to look at it and say, this is how you do this particular thing, like adding a new service or adding a new dependency. This is the correct way to do that. And so one, we don't have to spend as much time. On the review side thinking about, does this follow the right patterns? And two, just so that it's easier for somebody to build something new without having to worry about the minutia of, am I using semi-colons correctly or some of the things that ultimately don't really matter as long as everybody agrees on the same way to do it.

    So yeah, issues are probably the biggest thing. And yeah, other than that, Steve probably has some better ideas and this is something that we're working on improving.

    Jannis: Yeah. I can kind of see from a contributor's side, which is putting on my contributor's hat, I can kind of see why people don't start issues, especially in these days where it is so easy to just say, hey, Claude, please do this. But if you come back to the foundation of open source work, it is literally the foundation of how open source projects work, that you raise an issue, a problem, a feature that you want to see and it is discussed. Yeah. So that's, I think, a very valid point.

    Austin: Yeah. And it's been difficult too, because like you mentioned with Claude and all of the other AI agents, the type of open source contribution has changed quite a bit. Like back when I first started contributing, it was a genuine, this hasn't fully gone away, but it was a genuine community of everybody sort of working on different pieces of the thing. And these days there's quite a bit less of that and quite a bit more transactional like contributions where somebody is like, hey, there's this one thing that I need. I'm going to go point Claude at it and open this PR. And that's not to say that there isn't a community because the forum is definitely very active.

    And like you and Murat and Cathy have been very helpful in that respect, but by and large, there's a lot fewer repeat contributions from a large group of people. And so it changes the interaction a bit.

    Jannis: That's fair. I think the issue we sometimes see is that we don't know where to address that sometimes. So if we take the, let's say new feature stuff again, let me just take a very concrete, recent example. I haven't discussed it with Murat, but I'm just going to take it now. He has recently released on Synaps Media scoped API keys, for example, where I don't know the technical implementation. I assume that he just gates them in front of Ghost somewhere and just says, hey, if this API key gets through, then it's only allowed to do that and that. The topic of scoped API keys and everything has been discussed at the Ghost forum as well for like forever.

    And he openly said that he has implemented that on the hosting site because he doesn't know whether it's worth it as a PR. And I think this is where it would help contributors to just have a way of understanding what the process is. Issues as you raised already is I think a great point that you've pointed us at as well to just say, hey, like. I have an actual, you know, not just an idea that I just put in a Ghost forum, but I'd say it would be cool to be able to do this and that, but to actually have that discussion somewhere where the code is.

    I think what sometimes, at least historically, I think it's getting a lot better now again, like in the last year or so, but historically what has been the issue a little bit for our side. And. I mean, back then you were also, you know, just an open source contributor. The issue was a bit communication to, you know, understand does that actually get heard? Is there like feedback on that? And this is how I think we kind of drifted in a way that feature work is the Ghost foundation and then bug fixes or like smaller things that can be added is like stuff for open source contributors, which we can easily do if we see it.

    Austin: Yeah. Yeah. And I think the scoped API keys specifically as an example is one of those where it runs into two different things. One of them is, as I mentioned before, just technical debt where the permissions model in Ghost. Has sat pretty much unchanged, at least since I started working on it, which was funny to come back and start working on the Ghost code base and go, Oh, that code looks familiar.

    But so there's a fair amount of work of that, of like making sure that any sort of feature like scoped API keys, isn't just more duct tape on top of a system that isn't built for like API keys. Realistically, the permissions model as it exists today was built for humans. And so we need some way to retrofit that. And I think the other portion of things is that we haven't been very good historically at sharing our roadmap publicly. And that's partially, I think, because historically we would commit to something.

    And then if we found something that prevented that from occurring or some urgent thing came up, then we would have to sort of walk that back. And that led to some issues. And I think that's why we've also stopped really communicating specific dates about things, because then you miss those dates inevitably and people get frustrated. But I think we're starting to get to a point now where, especially like platform team things, we can start to share some of the roadmap that we have. When I shared a few weeks ago that we were deprecating Ghost CLI and going to make Ghost Docker the sort of official thing, it's kind of the first step of that. And I imagine once we have the Ghost 7.0 roadmap a little bit more finalized, we'll probably start to share that as well.

    So that it's a little easier for folks to see, Oh, there are these things that are in progress. It's not just, Oh, immediately something's available. These are things we're planning to do. And so for stuff like Scoped API Keys, just hold off for a couple of months and then maybe some of the internal stuff will get redone such that it's now much easier to implement on top of it.

    Jannis: And I think I've been in or actively active in the Ghost community for nearly four years now. So I still consider myself fairly fresh compared to you, for example. But you also have to attest to the fact that the communication on things like this has improved a lot. And a lot of that goes to you and Steve. Steve has worked within the Ghost Foundation on that a little bit longer now, but since you also joined him, I just feel like we're kind of on a rocket ship and we're just blasting through those things. So I also just want to take the time to thank both of you for that work because it is visible to contributors outside of the Ghost Foundation as well.

    Austin: It's good to hear. That's sort of why the platform team was founded to begin with and it's good that it's starting to work. Yeah. And on that note also,

    Jannis: Just a big thanks to John as well, to John O'Nolan, the founder and CEO of Ghost, because as far as. I remember, that was one of the direct consequences of feedback that he received from different open source contributors that he said at some point last year, we need something like this.

    Austin: Yeah. I mean, especially with all the security, I mean, that was the big thing was security stuff and Docker image and all that, but yeah. Yeah. So, you know, in all open source.

    Jannis: Communities that I know, people like to complain a lot, but I also see a lot of movement in the right direction. And I think we need to embrace that a little bit, see how the next couple of months develop, but I think we're on a really good path with where we're heading as a Ghost community.

    Austin: Yeah. And I think our true goal for like Ghost 7.0 is to make it a, not necessarily changing things too dramatically, but making it reshifting things towards more extensibility and more ability for open source contributors to build extensions in Ghost and make the whole open source feedback loop a lot better.

    Jannis: We already spoke about that a little bit before we started recording, but I can only repeat what I said back then. I'm really excited to see where you are going to take this. So yeah, very excited for Ghost 7. Yeah. You also mentioned before AI contributions and security specifically. I mean, the two of us, we are very much embedded in that. You from a maintainer side, me from the perspective that. I obviously want to make sure that the Ghost versions that we're running on Magic Pages can hold up to security standards, but can you tell people that might not be that involved a little bit about how AI has changed that and how open source projects are affected by that?

    Austin: Yeah. I think we've gotten a little bit on top of things, thankfully, but for a long time, it's just like, there's just so many more things that people find, which is good overall, but it's now meaning that. I have to take, like Steve and I both have to take time away from the new things we're going to do to make sure that we fix all of these security issues. And some are more severe than others.

    Jannis: So security issues that people find with AI, report with AI?

    Austin: Some of them are for sure generated with AI. And some of them are, at least I don't know that I spend too much time trying to figure out if something's AI generated or not. Some are very clearly that way. We got a bunch that were like specific DNS record things with some of the Ghost domains. And they're just like, no, that's something clearly stated in our security policy is something we don't treat as a vulnerability.

    So some of them, it's very clearly just even either AI or some automated scan that just found a bunch of stuff. But there are some that are genuine, oh, we got to actually fix this. And that also runs into the tech debt things. Some of the considerations are just it's an old code base. And there are certain things where we have to spend a lot more time fixing it, or at least reworking certain parts of the code base to not run into these sorts of things as frequently.

    Because oftentimes a security fix, you'll just patch one thing and then another thing will come up in a similar part of the code base. It's definitely been a lot, but I think we're starting to get on top of things, which is good.

    Jannis: At least what I see from other open source projects, from some of the things I do beside Magic Pages as well, there are two main issues with AI in that. And one is I think that everybody now has access to tools that can break software. And that might not even be something expensive like Claude or a Codex subscription or something. But if. I have a GPU in my computer that I use for gaming, I can download an open weights model. And. I have technically a tool in my hands that can break most software by now. And the other thing that I imagine is probably the sheer amount of reports that you get now that will probably just be a bit overwhelming. Yeah.

    Austin: Yeah. I think as we've patched some of the common causes of things, it's gotten less, thankfully. But yeah, I can't imagine what, I mean, seeing some of the stuff from the guy that maintains curl, just seeing the amount of stuff that he gets, it's just insane. I'm fortunate that we're not in that realm where it's used so much more and gets so many more eyes on it. But yeah, it's good that most of those have come through the proper security disclosure process. And it's not like we're seeing active exploits, at least not that I've heard.

    So at least it does seem like even for people that generate AI reports, it seems like it's coming from a good place, at least. It's like we want to make open source software more secure, whether it's coming from a place of, oh, I want to be credited on this one thing or not, it ultimately is helpful.

    Jannis: Absolutely. I think the only exploit that I know was, I don't remember the details, but it was earlier this year where I think it was an SQL injection or something like this, where somebody could gain access to admin API keys.

    Austin: There was two, there was the SQL injection one, and there was a cache header, like a preview thing one, and those were both pretty bad. So fortunately, since then we haven't had any huge, like 9.8 plus severity.

    Jannis: Yeah. But those were scary. But the scary part I think happened weeks afterwards, whenever you see on the ghost forum, somebody report an issue and then posting like their ghost version number, which was like a very low six version number or five at some point, with an URL to their actual ghost site. That was always the scary parts where I thought, you need to update your ghost site because this is out in public now.

    So yeah, this is also I think where publishers or. People running, not just ghost sites, but any software that is hanging somewhere in the internet need to be more aware that we're not living in times like 15, 20 years ago, where an exploit needs actual knowledge to be used. But that, as I said, right now, anybody that has gamed on their computer at some point is technically able to use those without any knowledge. Just to kind of have an outlook on where things are going, you're working as a platform engineer now for three months, you said, right?

    Austin: Thereabouts I joined in mid-June, so three or four months roughly.

    Jannis: So if we're looking ahead like next year, Ghost 7 at some point, what would need to happen that you say, okay, this was really successful, I'm happy with the stuff we've been doing as a platform team?

    Austin: I think building a setup where people can migrate pretty seamlessly from CLI installs to the Docker setup. That's my main focus right now is making sure that's doable because we're not going to support the CLI going forward. And we want to make sure that people aren't just kind of left hanging. We've run into this a lot with local setups where Ghost CLI is the main way to do a simple Ghost local setup for theme development or other different use cases and trying to make sure that still is supported, even if it's slightly more complicated than it was before.

    But I think, yeah, there's a number of other things coming with 7.0 that we're really excited about. And I think I'm hoping they'll be received pretty well. I know some of the things people are probably hoping like mail adapters or different payment providers, stuff like that, may not be in 7.0 just from a timing perspective. And a lot of the technical debt that I mentioned, like cleaning up some of the underlying limitations.

    But I think the idea is that Ghost 7.0 gets us into a good spot where we can start to make those sorts of changes moving.

    Jannis: Forward. Yeah. I love the idea of building the foundation now or improving the foundation because it's already built. And I think the very important thing that we shouldn't forget as a Ghost community as well is what you said before, that things that might've made sense 10, 12 years ago might not make sense right now. And if you came back after so many years and you thought, oh, well, this looks familiar, then that doesn't necessarily mean that it's bad code right now. It just means that lots of standards are still the same, but it also means that lots of things have moved. And that's, I think, always the challenge we face as developers.

    I mean, I know it from our code base at Magic Pages as well, our backend and everything. And that's barely four years old now. And I realized that sometimes, well, that might've made sense four years ago with different decisions made. It might not make so much sense now. So how much of the time do we spend on improving that versus working on the fancy glitter stuff that gets people really excited? But in the end, I think the one thing that we can take from your experience as well is that it sometimes takes those improvements that we don't see to enable all of those things and to enable all of those nice glittery, fancy things that we can do in the future then.

    Austin: Yeah. And I guess that's also one of the upsides of AI is making some of these more foundational changes, especially that span the whole repo, are significantly easier when you can do them. With AI, either AI doing the changes directly or writing the scripts to programmatically make these changes. It makes it so much easier to update the old code base. And I think the main thing is figuring out specifically what the new setup looks like to move to that. But that's been one of the definite upsides.

    Jannis: Yeah, that's true. I have one potentially odd question for you now towards the end. People that don't like Docker, what would you tell them in that case? It came up a bit in the Ghost forum with Ghost 6 where people said, well, I don't want to learn how to do Docker. I want to stay on the Ghost CLI. What would you tell them to convince them to look into Docker and how that works?

    Austin: Funnily enough, when we first started working on Ghost CLI, Ghost itself had a similar approach. For the longest time, Ghost Pro used LXC instead of Docker, which had its own drawbacks. But I think also at the time, 10 years ago, Docker was very much not as fleshed out as it is today. And I can see the whole bit of not wanting to learn a new thing. That's totally understandable. I think one of my goals with the new Docker setup is to try and achieve the same Ghost CLI-like experience without having to maintain a separate CLI, but also trying to make it so that you end up using most of the same Docker commands that you would use for any other open source product.

    And I think that's also one of the things that is worth mentioning is Docker and just containers in general is where the ecosystem is going. And one of the benefits is. Specifically from a memory usage standpoint, one of the biggest issues with production CLI installs is it has to install all the dependencies and that can take quite a bit of memory, especially with newer package managers. But with Docker, it's just pre-installed and you just end up essentially downloading them all in one place. And we've done a fair amount of work on Docker image, both the official one and the nightly-ish one that Ghost publishes to make sure that the Docker image is as optimized as it can be.

    And that's a lot harder to do with the CLI installs where any optimizations you have to do have to be done in the CLI or done post install, which adds a fair amount of overhead and also potentials for breakage. Whereas in Docker, it's a lot easier to just add those optimizations there. I think the other thing too, that is why Docker makes a lot more sense. Having maintained the CLI for a decade, the amount of problems you encounter when your abstraction layer is the operating system is significantly higher than the amount of problems you encounter when node is your abstraction layer. And so one of the problems with the CLI is we can't officially support anything outside of Ubuntu because Linux distros like to put different things in different places and trying to make a system that handles all of that gets incredibly complicated versus Docker where you can basically standardize around a single OS and distribution model.

    And then it's the responsibility of the OS to support Docker. And I do think there are ways that we're trying to also improve the user experience so that people don't have to think about Docker as much. One of those, which I've not really done any code changes in Ghost yet for this, but one of the things that Docker makes doable drawing from some of the examples like Home Assistant is one-click admin updates, which has been a thing that I think people, self-hosters specifically, have been wanting for a while. Not so much on hosting platforms because most of the rollouts are automated, but say you're running a single self-hosting instance and you don't want to have to shell into the server to update something, hopefully with this new Docker setup, that'll actually be.

    Jannis: Feasible. Yeah, I've never thought about the updates as well because truthfully that is one of the main issues. We touched upon that quickly, also with security vulnerabilities now. The reason why people didn't update Ghost was because they had to log into the server and they had to figure out how did I install Ghost two or three years ago? What did I do back then to do that? And this is I think where self-hosting software is a lot of fun, but it might not make sense for everybody. If you have never touched a Linux server or Linux itself before, it might not make sense to now get the DigitalOcean droplet with the one-click install because it installs it once for you.

    You will not have any automatic update. And if that is a possibility, that you have a one-click updater within Ghost itself, then that would open up that road for a lot more people, I think.

    Austin: Yeah, there should hopefully be some progress on that in the next couple of weeks, but in theory also working with the extensibility goal of Ghost itself, making that a pluggable adapter too. The Docker Compose setup uses one way of doing it, but if there are platforms that host Ghost that want to be able to do it in a different way, it might make sense for them to implement an adapter to do that as well.

    Jannis: You're telling me lots of exciting news here.

    Austin: Yeah, you heard it here first, folks.

    Jannis: The gears in my head are already spinning. What can you do with this on a platform like Magic Pages? That's really, really cool. Those are the details that you only find out or that you only figure out when you're really immersed in software like this and when you're really working on those issues for a long time and when it's not just this one thing that doesn't work or. I want to have a different email provider, which is also perfectly fair, but sometimes it's those quality of life features that will impact a lot more people, truthfully, because I don't think that in the sense of security of the overall platform of Ghost, the impact of having a new email provider is as big as having a one-click updater.

    Austin: Yeah, and it's also interesting that it brings up that different platforms and different users have different ideas of what the most important thing is. We talked about this internally after listening to you and Murat talk, the focus on different payment providers versus the focus on translations versus what we internally think is the most important thing. It's good to have that feedback of what do people value as the most important thing, and some of that may or may not shape how we think about things internally, but it's definitely good to at least have the knowledge that is important to people. And so even if it feels like, on the forum, that we don't always respond or that we don't think or care about these certain things, I think we do.

    I think what we're trying to do is make that feedback loop of, oh, I want something done. Here is why we can't do it now, or here's why it's delayed for whatever reason, make that a little more clear so it's not just shouting into a void.

    Jannis: I'm excited where that leads us or how it develops over the next couple of months, and I love the fact that you're thinking about those things. Murat and I, we now hear from different people how it was a topic at the team week, for example, and we're both in awe about that. We would have never expected that. I think a big thanks goes to John for that again, to just also be aware of that and to have that on the radar and to talk about that. And to all of you, to the entire team of the Ghost Foundation as well, to listen to that, to think about it, also to counter some of our points because you have a different experience than we do. We have the perspective of open source contributors.

    There is the perspective of people using Ghost on Ghost Pro, on Magic Pages, on Synaps Media, self-hosted, wherever, that have different perspectives again. And then there's the perspective that all of you have, which is, again, different. So I think in the end, the big important goal that we should have in mind is to bring those experiences together somehow and to combine them and see what makes sense for the overall ecosystem. Yeah, definitely. Austin, we've talked about most things that I had on my list, but is there anything from your side, any more topics or anything that you would want people to know?

    Austin: I think it's basically just restating what I've mentioned is that we are paying attention internally to a lot of this stuff and we are working to improve how we share. What we're working on internally and how that gets publicized with rough timelines on things. Because we do know it's been a problem in the past. From the early days of Ghost, when it was incredibly open and super transparent about everything, to the last few years where it's been a little more closed and now opening it back up again. Yeah, we're working towards it. And from you and Murat and everybody else that runs hosting platforms, it's helpful to have that.

    Even from the community too, just continuing to provide feedback in the forums for how we're doing and how we could be improving, hopefully in a nice way. But in general, we're keeping tabs on things and trying to continually improve how we engage with the community. Well, thank you so much for.

    Jannis: Reaching out, first of all, for also making time to come onto the podcast here, for sharing your ideas and thoughts or giving us all of those insights into how you work in the platform team, how the Ghost Foundation works a little bit. And yeah, it was absolutely lovely speaking to you about all of this, Austin.

    Austin: Yeah. Yeah. Thank you.

    Jannis: All right. Bye-bye.

    Austin: Bye.

    42 min
  • What we brought back from Indiecon

    Back in July, Jannis recorded a solo episode about why a web hosting company was sponsoring a print festival. Now the three of them are back from it. Jannis, Mariia and Christine sat down together in one room — three voices, one microphone setup — to talk about the weekend Magic Pages spent at Indiecon in Hamburg: walking into the Gleishalle am Oberhafen, a former freight hall with trees growing inside it, and finding out what a room full of print publishers makes of a hosting company.

    They get into the booth and its two reactions (polite confusion, then genuine curiosity), the workshops — bookbinding and a free-writing session about a flying dog, and a newsletter workshop full of print publishers asking where to host — the little magazine they printed and handed out, and the 90-minute Ghost workshop that twelve people walked out of with a real site. The episode ends on the question Jannis brought home from his solo episode: how do you bring the tight-knit feeling of the print scene into the digital world? The answer turned out to be the opposite of scale.

    Jannis: Hi and welcome to the Magic Pages podcast, the podcast where we sit down with the people building, hosting, and publishing on Ghost. I am, as always, Jannis, and today I'm here with two guests you might already know, Mariia from the very first episode, and Christine, who you know from episode two. Hello to both of you. So the reason there's the three of us is that back in July, I recorded an episode on my own about why a web hosting company, Magic Pages, was sponsoring and going to a print festival in Hamburg, Indiecon. And well, it's now Friday, September 11th, and we're back for a couple of days because the three of us spent the last weekend in Hamburg at Indiecon.

    And we quickly wanted to have a conversation to talk about how it was for us and our impressions. Christine, you had heard me share about Indiecon for a couple of months already. And at some point we said, Hey, it would be really cool if you could support us there. And you've heard lots of ideas how we imagined it would be, yet none of us has ever been there. Can you remember when you first walked into the venue? What was your first impression when you entered?

    Christine: I've done conferences in fitness, but it was really interesting to see the environment and what the building looked like. And it seemed like it fit kind of like what I was expecting for the weekend. Like, I think the guy beside us was saying, you're not going to see someone with a suit here. And I think that kind of set the tone for the rest of the conference is that you definitely saw a lot of artists.

    Jannis: Yeah. So the guy next to us was Steven from the Ueberschwarz Publishing. And yeah, it's exactly what he said. I think we had a quick conversation with him on Friday after we arrived. And he said, he loves it here because you will not see a guy in a suit walk in. And even if you do, we would just politely show him out. Mariia, how was it for you? When you first entered there, you have a little artistic streak yourself. How was that for you walking into that very, let's say, vibrant and creative space?

    Mariia: The first thing I noticed were the colors. It was just so bright and vibrant there. I remember walking in and seeing even the branding of Indiecon itself, which is beautiful, like the stones, different types that speak to the theme of compassion or compression. When you take everything in, the venue itself is just so interesting and so special. I think it works so well for the conference of this type. So just for those who don't know what kind of venue was there, it is essentially, it was just one spot. It was, Jannis, was it a freight terminal or something?

    Jannis: The venue itself is called the Gleishalle am Oberhafen. So translation would be the track hall at the so-and-so Harbor. And it was until a couple of decades ago. I don't know when exactly, but it was a freight terminal where the lovely Deutsche Bahn or maybe also private train companies unloaded freight trains. Yes.

    Mariia: Yeah. So with this type of like a bit of gritty environment in there, you have as well plants and trees growing on. When we entered, we started seeing like, you know, posters from different independent publishers or artists that were setting up their things. And then you just have a look. And then basically at the end of the tour, you see almost like an untamed forest. Well, it is like that corner where they had all the like bushes and trees. Um, and when you have a look around, actually the workshop spaces and the like round tables and all the other like, you know, spaces for activities on that conference, they were almost nestled in those trees and those like oasis pots.

    So to me, it just felt very conducive to that creativity, to that untamed thinking that you walk in expecting something that is very out of the ordinary. And I think that for three of us, well, correct me if I'm wrong, but I do think that for us, it was something different because we, three of us come from the digital background, um, and interacting with publishers who are all about print and who as well have their touch points was digital. Well, I think it was quite eye-opening.

    Jannis: Christine, you mainly make things online. You work online, you now live in Austria, your friends are back in Canada. So. I would say similar to us, most of your life happens online. You are not somebody that regularly picks up paper and makes something out of that. But seeing all the people that do that regularly at Indiecon, how did that make you feel? Do you feel like you actually belong there? Or was there like a feeling of being like how I always put that Indiecon, the odd one out?

    Christine: I think there were definitely a lot of people and I attended a workshop that was about building a newsletter. And before that, like the day before, I felt like it was very heavily dominant on published print, but then when I did the workshop, there was actually a lot of people that were published print that wanted to get into the newsletter. And it was really interesting to see the other side and the type of questions that they asked me.

    And then it was also interesting for me to ask the other way. And I think it's like the common phrase, like what's obvious to you is interesting to someone else. So it was neat to like see the two worlds combined and some people blending the two.

    Jannis: I remember you coming back from the newsletter workshop and telling us that it was a completely different world for you, that, you know, you are embedded in newsletters all the time and email marketing all the time for you, this is also natural. But what were some of the questions that the print publishers ended up asking?

    Christine: Yes. One of them was where should I host my newsletter? And, you know, trying to sneakishly say magic pages. But it was interesting because the common form was a Substack and then someone else interjected being like, but Substack, you don't own it and also going into the conversation of the backstory of Substack, like how there were some things going on with the company and people were like, we want to join someone that's more ethical. And I think magic pages does great job about that.

    And then other, yeah, the question was like, do I do it on my own website or do I join Substack? Cause it's free. Uh, other questions were like, Oh, what do I write about? Um, yeah, like the questions many of them were asking me were actually the technical, they're like, where do we start? Uh, what platform? And that was like, I think a great, it would have been a great thing to chat about at that workshop, but we didn't get to it.

    Jannis: Cool. Thank you, Christine. And Mariia, how were the workshops for you?

    Mariia: Well, two I attended spoke more to my creative side. One was about book binding and the accordion style book and filling it out with prints done by stencil technique. I have experience in printmaking and book binding. So that was very interesting for me to actually work with somebody in person, because both of the things I've picked up from watching YouTube videos and learning from things like, you know, Reddit, subreddits on book binding and printmaking there, of course, I have access to experts. Or people who are doing the same things as me all around the world.

    But in that moment, I got to actually be in person and speak to somebody who does book binding in Berlin, who runs their own collective and somebody else who does prints and, you know, who, um, has a big extensive background in that. So interacting with them in person, uh, was incredibly valuable to me. It was not only just looking at how they do things differently, but generally you see that while they're doing it in real time, in real life, it's not like somebody on the screen or somebody just sharing their work online, which is, you know, as well, super important, but this is to me was felt like two of my things colliding in real life, something that I just see online and in real life, in my surrounding, I might be the only person who's doing this, seeing and being surrounded by other people who do the same thing.

    That felt incredible. And the other workshop actually attended together with Christine. And that was, uh, from, uh, one of the two Ukrainian magazines that were present at the conference. Um, it was from DACH magazine and they are, um, like all about like highlighting Ukrainian culture, poetry. And so we attended the workshop, which was about free writing, about writing the story on the flying dog. And that was, I didn't even know how to put it in words. It was just so absurd when we looked at it with together with Christine.

    So sitting there again, in that, um, little alcove surrounded by trees with noise from the fair going around you, we all just sat down and for half an hour, we had that prompt from, uh, Viktoriia from DACH magazine, who was like, I know that there are so many excuses to not do your own thing and not to write. And oftentimes you're like, Oh, I'm let me scroll something online. Or, you know, I'm, I'm busy this, this, or that's coming up.

    So I don't have time to do my own thing. So that was exactly half an hour where we all sat down with other participants were like around 10 of us. And we each wrote something. And gosh, that is really great example of how everybody's brain works differently because, you know, I started with one story. I realized halfway that I didn't like it. So I wrote a poem. I did not expect myself to do something like this. I think the last time I did it was in high school.

    So that was really cool. And then, um, a person next to me wrote a very heartfelt essay, exploring their own fears and insecurities about sharing their work with the world, sharing their work line and see that this flying dog is so absurd and they're carefree and you can just share your work. Somebody else wrote another story and somebody else wrote a poem. Like it was just incredible in that sense. So yeah, I, you can hear, I really enjoyed my workshops. Like the themes were incredible.

    Jannis: To me, it then also sounds like that's, you know, independent of us going there as a hosting company. It was also just a space where people can come together and maybe do all the things that as you said, Mariia, um, nobody else in your life actually does and just see that there are other people interested in that. And I think especially for all the print publishers that we saw there, it was a space to come together and realize like, Hey, I'm not alone. There's somebody in the booth next to me that might be writing about something completely different that might be doing something completely different. Um, for example, as Christine pointed out, Stephen and his publishing house, they were a nonfiction publisher publishing about some quite philosophical and political topics.

    So quite far away from what magic pages does as a hosting company. And yet we ended up chatting with him for quite some time and figuring out that there's lots of like similar problems that we encounter and just seeing, you know, the other side, I think opened, uh, the eyes for me a lot. And it feels like in the workshop, it was similar that people just came together and were able to see that, Hey, there's somebody else that faces the exact same problem. And maybe with the example of the flying dog. So, Hey, we just going to take this time now and we're going to do something that we wouldn't necessarily do at a busy conference. And take time for some creative writing.

    Mariia: Yeah. To me, that as well was like building a bridge between two worlds, digital and print, and what I see here is not necessarily what you think immediately about digital and print to meet digital is about, you know, online opportunities. It is, um, something that sitting in my apartment, I would have never thought about book binding, unless I'd seen those videos on Instagram where somebody took their favorite book and created a new cover for them. And this to me, whenever I see videos of people sharing their work, a lot to me stands for how you can let your curiosity grow and just explore something that you would have never thought before, simply because in your environment, you don't have people who do the same thing.

    And then you have this print world that in my eyes, like at Indiecon, it was a lot about connecting in real life. It's doing something together because quite often when you just consume things from digital, let's say you see those videos on YouTube. You see on Instagram, you read maybe someone's blog, you still do it while sitting, let's say alone in your room. You are interacting with somebody else, which is incredible. Um, you interact with somebody else who is on the other side of, um, of, and yet you might want to have as well that connection in real life. So. I would love to have something that is in the middle.

    So you want to share your work and tell your story and maybe share what you do with somebody who would never even thought about this. And this is the beauty of digital and then come together to spaces where you can co-create things, where you can observe somebody else in their element and learn so much more and build those lasting connections. It might sound like a lot of buzzwordy things, but truly at Indiecon, I felt a lot that you are not alone and you can do things like that. And it might be from my side, the artist side in me that really felt this, but also somebody who works at magic pages, who sees so many artists and publishers share their work and building the audience and seeing how their ideas go to all the corners of the world.

    I felt as well right in that, that when you're doing things, you're not limited just by your environment. You can connect with somebody in completely other country can share the story, you can highlight something that is near to your heart.

    Jannis: I want to also talk about our booth. So at Indiecon, we were offered to have a booth there. We had three little chairs in the back and we could do whatever we wanted there. There were a couple of requirements, you know, fire hazard and everything, which thankfully we didn't light it on fire. And the one thing that I reflected on when preparing for this episode and just thinking about it was that if I think back to our booth and sitting behind our booth with the little magazines that we brought, and at some point we installed it as a counter that showed how many emails our publishers sent in more or less real time. There were mainly two reactions that.

    I remember and it might be very biased from my side, so you can correct me if I'm wrong, but the first reaction that I saw was a very, let's say, polite confusion, like what is going on here? People at the fair happened on Saturday and Sunday, walked through rows of tables, seeing like all the different print magazines, all the different publications, and then they came to our booth and they scanned our booth, looked around, looked at us, looked at the iPad we had with the email counter there, and we're slightly confused with a smile.

    And then the other reaction that I noticed is them turning away and just, you know, kind of resigning and saying, okay, that's not for me. That's like nice, but it's not for me. Um, both of you also sat behind the booth and interacted with people that came by. Was that similar to you or was that different? Like, how did you feel like the interaction with people were Christine? Maybe it's somebody that doesn't work on magic pages every day. How were the interactions for you with people that came by?

    Christine: I think it was similar to you. It was definitely a mix. Like some people walked by, um, yeah, like all for print or some people that were interested in like, how do we do go digital? For me, it was a good mix. I remember some people I think had open minds for us for sure. Like they weren't sure about what we did do, but when we started talking to them, it did get them interested about, Oh, like we can have prints online or what is it that we can do on the websites.

    I think that was really interesting. Cause to me, I thought it would be, cause I'm so used to all the online world. I thought it would be pretty straightforward, but when you do get talking to them, um, and they have an open mind, it's really interesting to hear them learning about, Oh, you, you can build a website and you can send emails on magic pages.

    Jannis: Interesting. And Mariia, how do you remember that?

    Mariia: There are two sides in that for me personally, because the whole activity of setting up the table and then interacting and then thinking about how the interactions went, it's just really great exercise in putting yourself into someone else's shoes. So to me, I didn't really go in with like what we have. It would click with them often try to think from the perspective of like what matters to them, to publishers. Um, but this is, you know, it's great in hindsight because when you are there on spot interacting, you can obviously see that with our first conference and I think we were trying to figure out, okay, what, what we need to do and I think on day two, we really figured out that, okay, our goal is not for them even to understand immediately what we do or what we stand for, because let's be honest, we are this vibrant, colorful, creative conference and we are there with our muted purple branding and colors, so it's not like we have those crazy wild illustrations going for us or something that immediately catches the eye of the creatives.

    We stand out in a different way. And so people sometimes were approaching when they're walking by, we would immediately stand out because we are not as bright and colorful in their eyes and of course it takes a moment and essentially you have five to 10 seconds to retain their attention. And I think through our, like when we, three of us were talking about it and kind of reflecting a little bit, that's when we started incorporating changes and thinking like, okay, we don't need them to know immediately what we do, how about we start conversations? Because, uh, the most active person who was talking at our booth was actually Jannis, um, and as well, it was incredible for other people.

    You know, you have a founder, you have somebody who does it, who is a developer and can explain easily from his relationship with publishers. So you did like from the side, like you had amazing conversations with people. Um, I think for me, I was quite often just observing and whenever I was in the role of talking with other people, I would listen to them sometimes. And that's where probably my inexperience was, those conferences was kind of getting through. Sometimes I also, I didn't know what else to talk to them about it, but sometimes it's, um, I think when three of us were there and we would hear like, uh, them mentioned that, Oh, they do something online.

    Um, but, uh, the costs are just too high. Um, and those were like little, like, you know, doors opening, so to say for us to start talking about the whole online and digital world with them and what magic pages can do and all of that, and quite honest, magic pages was the last thing that we would talk about. It was really more about like why publishers would need to go digital. And in our opinion, or like from our perspective that would need is not that, you know, you have to be there. You have to have a website. It's more like, well, if you have the need and you feel that you would want your work to be way more accessible to, um, to the outside world, when you don't want to be limited just by the next conference, the next booth, the next crowd that just comes to the conference, uh, or to a fair, then yeah, you should have some kind of foothold online.

    And I think that this way we had quite interesting conversations and we did have a bit more context and to how publishers think and feel about online quite often publishers had this like various staunch and principle stance on print only, which as well, I respect because it is something that in the past year has been dying as the industry replaced by, you know, all things digital. So there is that strong conviction that. I want to preserve the thing that I care about. And there is as well a rise of analog again, as an anti-AI response to what's happening in the world. And I find it's beautiful to see that revival and yet I don't think that it's one or another.

    It is a symbiosis of the two that should be. And I think throughout conversations when we had some really great response was publishers, it's sort of the, the through line that we came to.

    Jannis: I think we, we also need to give a lot of credit to one of our customers that showed up all three days, Jan, who is running a Casual Friday Club. I'm going to link to that in the show notes so you can have a look. And he is a local in Hamburg and he came out to welcome us on Friday. He came out every single day, also had dinner with us on Saturday and basically hung around and his perspective as a designer, also brand designer, and somebody that just has a feeling for, let's say how things are getting across was really helpful sometimes. And he also helped us to optimize the booth and to just basically make it more conversational and give us an outside perspective.

    So thank you to Jan, if you're listening to this, I'm pretty sure you will. Um, and he also brought a very interesting perspective. He went to a workshop and I hope I'm not misquoting him here, but he went to a workshop, it was all about launching a magazine and he came back and mentioning one of the disconnects that he felt there where everybody was talking about costs of printing and cost of paper and how much it will cost to launch your first issue and when he asked like, okay, but why are you not starting with a digital version, why are you not putting up a first digital version that you sell digitally to, you know, collect the funds to finance your first print run that was one of the moments where he got really confused and where he didn't very much understand the sentiment.

    And I think this is one of the things that we want to take to next year a little bit, that it is like you said, Mariia, it's not always a print versus digital, it's not always going against each other, but that there is like a symbiosis and yeah, sometimes it doesn't work for whatever reason. Sometimes publishers have that very clear stance of just publishing on print, but in the end, they will probably still have a website because if their magazine from let's say Berlin, they might not just want to sell stuff in their local bubble. They might also want to sell things maybe in Hamburg, maybe in the Netherlands, in the UK, in the US, they might want to ship things there.

    And for that, they need a website. And that is still one of the conversations that I personally feel like was missed a little bit at Indiecon. Um, but I think that the sentiment we went out with was mainly not, okay, this was a miss and we didn't have a good time here because everybody just talked about print. But I think we came out with a challenge that said, Hey, we're going to be back next year and we're going to start that conversation and we're going to talk to the organizers to see how we can have that conversation, not to push us as a provider, but because we work on the other side of, let's say the internet connection and we see every day how, um, the sentence that I mentioned in my solo episode, which was basically that, uh, the magazine maker and the newsletter creator are the same person just working with different materials.

    I think that really was reinforced for me in those conversations with Jan, also with the two of you and with all the other conversations we had at the conference that the problems we face, both as an online publisher and a print publisher are very similar. They often evolve around reaching the people that they want to reach. They often evolve around cost, often evolve around memberships and pricing and all of those things, they are similar. They are not the same, but they overlap in some aspects. And we think we can learn from each other in both directions.

    Mariia: Yeah, I agree with that. And especially it was your point about what was highlighted at the conference, because I feel like the whole topic of digital versus print, ideally it should be digital and print. It's great as long as it works for you. If you go fully for print and this aligns with your vision and with the direction for the business or with the art that you create, that's incredible because sometimes you are based in Berlin and you just want to create for Berlin because it is about the city, for instance, it is about the local, so your audience and who you want to work with dictates your final product, the final outcome, the final object, but sometimes you might not know what exists, what is available that would actually fit your vision.

    And I feel like our conversations with people at Indiecon highlighted that because first it starts with I'm print only. I don't really need digital. I have a placeholder website or maybe like a business card website and. I don't really need more. But the moment when they saw, for instance, on our interactive iPad saying that our publishers connect with that number of fans every day with their subscribers, that's when you see their eyes lighting up. Why?

    Because we tell them about something and they might not have even thought of this, that, oh, there are ways of how I could be in touch with my subscribers every week, like with newsletter, or maybe I can grow my magazine or my art project to have memberships, to engage people who are interested more and also help me sustain what I'm doing. So I think that there is always a case whether you want to go digital only or print only or find that way of symbiosis.

    But I think that we need to talk about it and that the next conference should ideally as well highlight it because there is just so much more available, so much more accessible that maybe publishers are not aware of and they could incorporate something because even while we were talking in our workshop about creating a Ghost site from first post to memberships, we were showing and highlighting different examples and ways of how you can do it because there is just no one size fits all. There is not just, wow, you have a website, you need to sell things there, you need to be active post five times a day or something like this. No, you figure out your way that fits exactly with the vision you have for your art, for your magazine, and go from there.

    Jannis: Yeah, that's a great point. Christine, you were one of the first people that actually had our own magazine in France because you got exclusive access through our living room when you stumbled in for a cup of tea and I told you, hey, have a look here, there's a magazine. You also read it, but you read it in one sitting. Can you share a bit of the impressions, like having all of a sudden this tactile thing in your hand, this like printed thing that talks about lots of things that are happening online as somebody that also publishes online. How did that come across to you? What were your thoughts when you read through it?

    Christine: Yeah, I got the opportunity to read the magazine before we went to Indiecon, which I'm really glad I did get to read it beforehand because reading that magazine did give you a glimpse. You kind of shared a bit of the history of like how we got to where we are now with publishing online. And what I really liked was like the different platforms you broke down of. Do you build your newsletter on Substack or Patreon or other platforms and the importance of owning your, or having more control of your website and the information you share because like I've, I've started my newsletter on multiple different platforms and I had a ghost site in 2021 and I've gone back to using ghost as my platform for my newsletter after five years.

    And I think that was really valuable for the magazine to share that too. Like what I liked was that there wasn't a bias. It was very objective, which I think is really important. So when people did come to me and they're like, Oh, should I go directly to magic pages or should I go directly to Substack, I didn't directly answer that. I had one person ask me, I brought them to the booth and gave them the magazine to read cause you had provided like links and resources and references in there that I think gives people a better overall idea of where they should go next with their website and business.

    Jannis: You mentioned one thing now, which was bias. And that was for me, writing the magazine and the essays that are in there. Sometimes a bit tricky because I think that it is obvious that we didn't just go to Indiecon just to have a good time. I mean, that was one big part of it. But there's obviously with a commercial provider like us, always a commercial interest behind it as well. So it was clear from the beginning that we will not recuperate the cost that we spent on going there on travel costs, on the sponsoring costs, on the cost of printing and everything from new website signups, but in the long run. And I think this is where Mariia comes in a little bit.

    It is a branding exercise as well. And it is a part where we show up in communities that we feel like can benefit from us as a provider. So writing that magazine, I always tried to put that in the background and just say, okay, if that was somebody that had no idea, if that was a magazine publisher, a print publisher of any kind, a book publisher, maybe, that just said, okay, I want to go online. What would I love to have known?

    Because I think many times people might just Google or just search on YouTube. How can I launch a newsletter online? And very quickly you get into the trap of watching one YouTube video of one person that obviously has an affiliate partnership with so-and-so with that platform or with that platform, or you read the typical listicle blog post with the five best newsletter platforms and everything, and all of them are affiliate links and stuff like this.

    So I'm glad that you thought that there was no bias in that because that was my intention a little bit to just say upfront, okay, we are a platform where you can host your website, but this magazine, this little booklet is not for that. In introduction, I mentioned in there that, hey, you can host stuff with us. I would be very happy to do that. But if you go with one of our competitors, or I think the quote was, if you have a server in your cupboard, that's perfectly fine with us as well. Do you think that this also came across to the people that picked up the magazine at our booth?

    Christine: I think giving them the opportunity, like there was this one person. I remember who came, his booth was related to allowing young writers to write on their website and all of their previous issues were available online. And if you want to support their nonprofit, you could pay for their print. And I think it was the same person that we did give him a magazine or we chatted with him and learned about his website and he took the magazine.

    And then Mariia's this correct, he came back the next day with his friends and they were interested, like giving people time to read it and not come off as pushy and, you know, they can come back, but I think just allowing them space to read it, I'm not sure about the immediate, but I think long term, I'm curious, maybe in a week from now, we hear more replies.

    Mariia: If it's free magazine, which in our case it was, then of course, something at the back of your head is saying they wouldn't just do it out of the kindness of their heart. They want something out of it. So of course, with us giving a free magazine, there is an expectation that it will be tied somehow to the product or they want my attention in exchange for something. And therefore I think that yeah, it might be this, like this first thought, but when they spoke to us, because nobody really immediately took a magazine and once they read it, then that impression changed.

    And what. I actually loved about the magazine, because Jannis was the one who wrote everything. So I got the chance and the pleasure of editing and reviewing it. But even for me, lots of stories were new. And some things were really grateful for thought about, you know, the legacy of, of digital, the permanency of domains and links, volatility of digital and things like that. And I think that Christine, the example you got, I think that organization was Junge Netzwerk Verein, if I'm not mistaken. And yeah, during that, that first day when we spoke to one of their members, it was a little bit of, oh, I don't really understand what you're doing, but I looked at the first page and something resonates, something piques my interest.

    And so he took this and then it was just incredible to see when it was like a group of three or four people from that organization who came back the next day and they were like, Hey, we actually all read your issue yesterday and now we want more and we would like to show it to each other and maybe to other authors in our organization. So that was pretty cool. And yeah, I think that's where it won't be immediate. It won't reassure them immediately when they open it and immediately they get an idea of either what we do or what we try to communicate.

    But it all takes time. And I think that the moment they start reading the magazine, they see it, that it's not really about the product pushing. It's actually about a topic that Jannis, you started that gets you to think about it, I guess you to think that if you want to go digital, what kind of footprint do you want to leave? For what kind of presence would you like to have, how to protect your work, how to give it the proper home and not to be on the whim of algorithms and all the vault health things and changing things online.

    Jannis: Very true. I also want to quickly talk about our workshop. Christine was tied to our booth at that point. The two of us had a workshop that was titled publishing with Ghost from first post to paid memberships. And our idea was very ambitious that in 90 minutes we show people, this is Ghost. This is how you can quickly create a Ghost site. This is your first post. Here are newsletters. And by the way, you can also do paid newsletters. We had 90 minutes for that.

    I think in the end, we pretty much managed it in 90 minutes. It would take five minutes or so. How was the workshop for you? Which impressions did you leave with?

    Mariia: Well, first of all, the impression I had was that, wow, people are really catching up quite quickly on all the things we're talking about. And I think not to toot my own horn, but I think that we had a good approach knowing that it's a technical workshop and people usually have the opposite problem, meaning that things go too fast. You don't have the right equipment. You don't understand where to click and how you're stuck. And everybody is just way ahead of you. And I think Jannis and I, we did a bit of good planning. We had systems so people could ask questions, whether they were ready or something or not, there were two of us. Our system was basically that we had two circles of colored paper, green and red taped together.

    And essentially when they were not done with things, it would be on the red. And whenever they were done with the task, they would flip it to green.

    Jannis: So basically whenever there was a task where they would work on their own, we would immediately be able to look at one of the tables that we set up there and see how many of the little paper dots that we had were red and how many were green.

    Mariia: Yep. So with things like this and generally explaining and making sure that we have a good demo going on, it was like Jannis showing how Ghost works and where we want them to click and really guiding them through it. Plus a lot of supporting materials that we provided in front of them, but also not overloading with information. All of this to say that I think with those little things, we made sure that people were quite fast at doing what we asked them to do. And quite often we would turn around and one table feel like five posts in. Well, we just asked them to set your theme and maybe explore the settings and they already would come into posts or we asked them to create their first post in newsletter and they already sent newsletters to each other.

    Oh, and by the way, there are comments now. So how do we reply to comments? And absolutely love seeing that enthusiasm. It just showed that maybe in the first days we felt like, oh, people feel much closer to print than to digital. So maybe there is some misunderstanding or like Jannis said before, like feeling like the odd one out at the conference, but then during the workshop, you could see people getting excited about this and just constantly saying, it was so easy. I could just quickly write it and send it and already seeing the results in front of them.

    So that is my overall impression from it is that we managed to meet where people were, but also make it easy for them so that they could engage with the software that we showed them and explore what matters to them in Ghost.

    Jannis: Yeah, same feeling for me. So I think the 12 people that were there, they all got something out of that. They had a demo site that we prepared. They all could send a newsletter in the end. There was like one issue with an Android phone that couldn't upload images, but I'm still pretty sure that that was a phone issue on that specific phone and not a Ghost issue. And yeah, like two people asked that the demo sites that we just prepared for the workshop itself would be kept online because they wanted to show it to colleagues in one case, or they wanted to explore to try out a few different things. And in the end, I think we had 12 people that really got to know Ghost and now have a better idea of what Ghost can actually do and how far they can take it.

    And I think that's really valuable for those 12 people. If you remember my solo episode, one of the big questions I wanted to answer for myself at Indiecon was related to something I noticed. It is the fact that the print world is very tightly knit. They have a scene. They have basically a community. I think we all felt that at Indiecon that you walked into a room and even though everybody was writing about something different, we talked about Steven on the booth next to us that published about political and philosophical topics.

    And then there were, I know some very unique other magazines that had a very specific point of view. For example, there was a magazine on psychedelic art, which I've never encountered before. And it was obviously very far in the look and feel from Steven's philosophical and political writing. And yet while walking through Indiecon and through all of those booths and tables, I never felt that there was a disconnect between the people there. They all felt like a community. Nobody said, oh, this doesn't belong here. Everybody said, yes, this is great that you're here. There was always that feeling that you belong here and you have a point of view.

    You have something to say, and we're happy that you're here. And I sometimes feel like we have a lack of that in the digital world, that we compare ourselves to others. And we say, well, this might be better than me. Maybe I don't belong here. Or, oh, this is like very similar to that other publication. I just read one or the other. I don't read both or something like this. And I asked myself, how can we bring that feeling of community from the offline print world to the digital world? And the answer that I found is actually very counterintuitive to what we do all the time, because what we do all the time in the hosting world, in the publication world, in the, let's just say the software as a service business is that we always think about scale.

    And we always think about adding another channel and adding another marketing campaign. And increasing our sales and our revenue and the number of websites that we host or the number of customers we have, the number of members we have, the number of newsletters we send. And the conclusion I came back with is that the opposite probably brings more of a feeling of community to our community. And that came also from a couple of conversations I had with our customers, also with our competitors, also with Dan from Gloat, who decided to sell his business to Magic Pages a year ago. And the things that people pointed out was always like, I really liked the fact that you hear that I can meet you here, that I can put a face to this.

    And also I really liked that you have a podcast now because I can listen to it and I can see that there are people, I can listen in this case that there are people behind it. Or I watched your open house. I watched the recording of the open house that you did earlier this year, and I saw that there are real people behind it. So my goal is that we do more of those things, more of the things that don't scale, more of having a random dinner on a Saturday in Hamburg with just the three of us, Mariia, Christine, myself, and three other random customers and people that might potentially be customers for Magic Pages in the future to bring back that feeling of community a little bit.

    So big monologue from my side, big rambling from my side. What are your thoughts on this? How do you see that? How do you feel like we can bring more community spirit to bits and bytes to the digital world?

    Christine: It's kind of like a full circle moment because we met through Twitter, AKA X, through a course. And like, I took a couple of other courses before and sometimes you don't really, maybe, you know, different personalities and stuff, but I just remember us in this course, it just happened that we both took the course and we both got along and several weeks later I ended up being your neighbor. I think it's also the opportunity to explore different communities is also valuable. And yeah, like going from digital to in-person, like I know I've had mentors tell me that they're like, oh, you need to go do conferences and stuff. And I've always was like very introverted every day, but I'm really glad I did go to Indiecon because I met a lot of people and I had no idea how successful they were with their companies and just how down to earth they were.

    I think, yeah, it's something like that. And also the open houses. And it was cool to see you guys open house to see like the interaction on Zoom too. That was my ramble.

    Jannis: Or yeah, as the person that will probably need to work on that a little bit from our marketing perspective, your thoughts.

    Mariia: Well, first of all, let me confirm. I am happy about that as another introvert in this group that slightly also scares me, but at the same time when you are in it is just amazing because something that we can learn from Indiecon and generally from print is that how much there is to physicality of it. And here. I mean that you have a printed magazine. It is an object that you can hold that can take your attention that can be in your room that you can pick up so many times. There are those moments and opportunities where you meet one another. This year you meet in Hamburg. Then in two months you meet somewhere in Amsterdam and it can extend to absolutely any city around the world.

    It was digital. You lose that connection. It's a similar feeling when you post and then you think, oh, I just have 30 subscribers. But actually when you have 30 people in the room, it can be too much. 30 people who are interested, who are holding the magazine and actually reading in front of me and some of them replying and saying, wow, and they start conversations. That's a dream. But of course, when it's online, it just feels differently because numbers just, they always go up. You lose how precious it is. We have 30 people who follow you. It might be a little bit philosophical, but you lose as well the humanity in it in a sense that any name just becomes a username.

    So yes, that would be incredible to create that community feeling, to show the same message, which is very simple. You're not alone in this. There are so many others who go through it, who dare to publish, who are passionate about their topic and they create magazines out of it, who find communities who as well invite people in their spaces and get paid for their work. Because when you're just setting those things online and you are alone in the room, you don't feel like that you can do all of these things. You see others and then you start, of course, inherently comparing yourself and thinking of somebody else, wow, they're so huge. They must be so smart.

    They do all those incredible things, which of course they are smart and they do incredible things, but it just feels differently. And in this case, I think about our dinner with customers is basically in Hamburg, we had a dinner with three of our customers, Charles, Jan and Mark, and they all have completely different stories. They all have successful publishing and it's just completely different from what you would read online about what they do.

    Because online you might think, oh my God, they have brand sponsorships and they just do so many incredible things. They must be so above me. But when you sit and you share dinner together, you talk about things, what they face, what you face, you share ideas and maybe some questions. It's just a completely different feeling. You see, first of all, we're all people. We all share something. We're all passionate about what we do.

    So yes, all of this, all the monologue from my side is to say, yeah, well, I agree with your idea that for more personal things that don't scale, but for more opportunities to connect with others.

    Jannis: This podcast is actually also very good. Example of that, the three of us sitting in our living room right now, having hopefully figured out all the technical difficulties of recording three voices in the same room. We will see when we hear this episode live. It feels a lot different and a lot more personal to just sit down and just have that conversation rather than, you know, doing it over video calls, which is also great.

    But having that in-person recording is really cool. Now. I want to end this podcast by just confirming that we want to go back to Indiecon next year. We have a few crazy ideas that we're going to work on in the next couple of months. But. I want to thank both of you, first of all, for coming to Hamburg to represent Magic Pages, to have conversations there, to represent Magic Pages at our Magic booth, have lots of fun there, drink lots of coffee, have nice dinner with our customers together, and also for taking your time now to reflect on that and to share your thoughts and ideas. I usually ask, is there anything that I should have asked that I didn't?

    I'm going to turn it around a little bit and just say, are there any thoughts that you have left on your mind? Anything that you want to share about Indiecon and the trip to Hamburg that we haven't talked about?

    Christine: It was a great honor to be invited.

    Jannis: Maybe again next year, though, then we have to fly you in from Canada. Mariia, any final thoughts on this from your side?

    Mariia: That was cool. Let's do it again.

    Jannis: Yeah, I agree. Thank you everybody for listening and have a great rest of your day.

    Christine: Thank you.

    Jannis: Bye bye.

    Now, as expected, we brought way more of our little magazines than we could actually give to people. So if you want to have one of those physical objects, one of those less digital things that Magic Pages produces, then just send us a quick email or message and we will mail one of them to you, no matter where in the world you are.

    50 min
  • Can you be friends with your competitor?

    Murat Çorlu is the founder of Synaps Media – a managed Ghost host built, in his words, as "a calmer way to run Ghost." He's also a direct competitor to Magic Pages, and a friend, which is exactly why Jannis wanted him on. Murat traces the path from a 2015 SaaS for news sites (Synaps News), through a Mastodon-hosting detour after the Twitter exodus, to going all-in on managed Ghost hosting – and why he intends to keep the team small and the service affordable on purpose.

    The heart of the conversation is two competitors deciding the Ghost market grows by cooperating, not cannibalising: helping publishers leave Substack and WordPress, closing the internationalization and payment gaps that lock people out, and contributing upstream. Murat tells the story of the theme editor he built and open-sourced – which Ghost then shipped a native version of – plus his wishes for Ghost 7, ActivityPub and fedi.pub, and what it's really like to run a hosting company as (almost) one person.

    Jannis: Hi and welcome to the Magic Pages podcast where we sit down with the people building hosting and publishing on Ghost. I'm Jannis and today I'm here with Murat, the founder of Synaps Media, which full disclosure is a direct competitor to Magic Pages. Murat is also running a managed hosting service for Ghost and I've been looking forward to this episode for a long time. Murat, welcome.

    Murat: Thank you. Thank you for having me.

    Jannis: My absolute pleasure. Murat, can you introduce yourself quickly to the people who don't know you yet?

    Murat: Yeah, I'm Murat Çorlu. I'm a Turkish man living in the Netherlands since more than nine years with my family, with my ten years old son, with my wife. I'm a software engineer with more than 20 years experience and since almost three years. I left my regular job and started working on Synaps Media and here. I am.

    Jannis: Murat, to start off, can you take us back to the time before Synaps Media? What was going on in your life before that and what did you see in the Ghost ecosystem that made you decide that the world needed your version of a managed hosting provider for Ghost?

    Murat: The story of Synaps Media is actually tied to a very long time ago, the roots of that story. During that 20 years of software development experience while working on different companies in Turkey and the Netherlands, I was always working on site projects. It was always the ideal situation to have my own project working on my own work. And in 2015, when I was in Turkey, I started to work on a project named Synaps News. It was about SaaS managed service for news websites.

    So you could create a news website like you create a blog without thinking about all of the hosting hassles and there were specific features for journalists. So the name comes from there and actually if you compare with the current situation, even the general idea is very similar. At that time, we had to move to the Netherlands and I had to start working in Philips at that time. Eventually, I had to stop on working on this project. Then a few years later, when the Elon Musk drama happened in Twitter, many people were trying to use Mastodon. And at that time with my friend, we started to work on another managed hosting service for Mastodon and that time the name was Synaps Media.

    It was five years ago. We also worked on it, but we missed the wave of people going from Twitter to Mastodon. And even though we finished the project and we didn't have any customers. And then three years ago, I had a chance to for the first time in my whole career to work on this project by full time because I was able to collect some money for the first time in my whole life. And the situation in the Netherlands had a lot comparing to Turkey and yeah, multiple circumstances helped me to consider that, yeah, let me stop working in a salary job and try something at least for one year.

    And then in the beginning of 2024, I started working on Synaps Media. And in the past, when I was working on side projects, I was always trying to find a very smart idea that no one talked about and will find a super genius idea. But then in the meantime, when I was getting old, I noticed that this is not very important. It doesn't mean that a successful project will always need a super new idea. I was already using Ghost as my personal blog and a couple of more blogs. I was hosting websites since maybe more than 10 years of my friends. And I really liked Ghost, the experience of hosting it. And at that time I checked the other hosting services. I also noticed magic pages.

    Jannis: I remember when you signed up for a trial and I thought, wait, I know that guy from.

    Murat: The Ghost Forum. Maybe I tried to hide myself, but I couldn't take the success that at that time you were only giving a lifetime option and Ghost Pro was the prominent one as of now. And I also didn't find the other options very clear and good enough. And I thought, yeah, this is a good niche. It's a nice ecosystem to be inside. I was already active in Ghost Forum sometime while I was working on the project. And I like the people and the main idea that motivates me, providing a hosting service like for Ghost and for publishers. It's a very motivating thing because I check the websites that are hosted in Synaps Media regularly. And I feel like a part of those publications.

    I'm helping them and they are very nice things to be part of. I have now the customers from all around the world, more than 45 countries, I think. I mean, multiple languages. Sometimes I go there and just use translate and try to read what is it about? And it is a perfect feeling. And I already started to get that feeling in the beginning while hosting a few friends' websites. And then in the 2025, I first announced this publicly in Ghost Forum, then announced in multiple places. And since then, I'm fully working on Synaps Media. It was one of the best decisions that I had in my career. Hopefully it will be even better in time.

    Jannis: Yeah, I love that. And I think while you have a lot more experience in the hosting field or in the software development field as well, I think we come from a similar way of very quickly seeing that joy that it brings to host other publications. Because it's similar to me, like whenever I check some of the websites we host, I end up just scrolling on them for hours sometimes, just seeing all the cool different things that people are doing, everything from those little passion projects. And I always bring up the example of David, the beekeeper from Scotland that we host. I had no idea about beekeeping before I checked out his website.

    And then we have some other really cool projects that are more news focused, that reach thousands of people, tens of thousands of people every month. It's not only like a project that we do to also make a living, but hosting is a project where we see that it gives so much back and that it enables so many other people to do what they really like.

    Murat: It has a social effect in the people's lives, both for publishers and also for readers. And this is a nice effect. I mean, for example, if I could make work on a social media project, you can also consider them as content creators, like the people tweeting in Twitter or X, but it doesn't necessarily mean they are sharing nice things. But the ghost publishers who have something that were to share, they think, were to spend some time on it. It's not just, yeah, I'm eating somewhere now, it's like an Instagram share. They spend some time to write a structured article or share some photos or share some podcasts now. They are results of some effort and it is nice having publications like this.

    Nowadays we try to see some contents that have some effort in it, especially in AI times. Some people are just giving their prompt to AI and creates articles just for getting visitors. So in general, I met with very nice people, very special, how can I say, interesting people with Synaps Media and also with other ghost websites in Magic Pages and Ghost Pro as well. They are creating very interesting stuff and I feel very good to be part of this whole community and ecosystem. It's a nice feeling to work on this project. Cool.

    Jannis: On the Synaps Media website, the first thing that stands out is your title there. It says, a calmer way to run ghost. Can you explain a little bit where that calm framing comes from and what you are calm against? What is the meaning behind that?

    Murat: Yeah, from the beginning, my intention with Synaps Media was trying to simplify all of the frustration points of a ghost publisher, not just about the ghost, the regular hosting itself, but the things around it, like the domain connection, having an email with the same domain that you publish your ghost website. Some stuff like finding and editing a theme regarding your expectations. When I was using ghost, even though I was mostly happy, I already noticed there are many frustration points about publishing in ghost. In Synaps Media, one of my mission that I had in mind, I tried to provide some solutions for all of those frustration points for the publishers.

    I mentioned this in multiple places. I'm trying to make ghost a platform like having a social media account, the mindset of this. When you open an Instagram or TV account, you don't think about the storage. You don't think about how much visitors you will have. You don't think about how many TV you can send a day. So that's a good peace of mind. But in most of the hosting services, even though that makes sense for a hosting service, there are some limits that many publishers don't understand at all. For example, if you talk about one gigabyte bandwidth limit per month. For many people, it doesn't mean anything. All means mostly reducing the noise about publishing a ghost website.

    I cannot say it is the most silent place yet, but step by step, I'm trying to remove the frustration points, the places that people hit again and again. And sometimes I'm doing this with special features with the Synaps Media itself. I'm doing by contributing directly to Ghostcore. This is my target with Synaps Media, and I'm doing my best for reaching that point. That's the meaning behind the title.

    Jannis: Thank you. That makes a lot of sense. Yeah. I already mentioned in the beginning that we're also direct competitors, yet I personally don't think we ever treated each other that way. We're in touch quite frequently. We also met in Amsterdam earlier this year, and we also regularly bounce ideas off each other. So most people would probably look at the Ghost ecosystem and come to the conclusion that our community is so small that the whole thing has to be a zero-sum game. Basically, when Synaps Media grows, Magic Pages cannot grow. And when Magic Pages is successful, Synaps Media cannot be. How do you see that? Do we have enough room for multiple hosting providers in the market? Or is the Ghost market too small compared to, let's say, the WordPress market?

    Murat: Firstly, I want to share something about this communication between us. I really like direct communication in my whole life. About Ricky positions in the working life, I was always eager to directly talk with the person that we are talking about or having difficulties about communication and directly ask the hard question. So it was the most easier communication style for me. And luckily, I'm now living in the Netherlands. This is the Dutch style communication.

    So I'm living in my heaven. And I should also give the credit to you because this communication started with your attempt. When I first announced the Synaps Media in Ghost Forum in, I think, 15 minutes or 30 minutes, you directly wrote to me from Ghost Forum's direct messages. And it was a very warm welcome. And you said, yeah, I was already expecting this because of your message something. It was the trial that gave you away before that. Yeah, maybe. Maybe it was obvious because of my questions in the Ghost Forum.

    But it was very nice. And when I tell the friendship between us to my friends or some other people, they always surprised at how come your biggest competitor, you can be friends with that. But I really liked it because this is easier for me. We could act like strangers to each other, even though we accept and we respect what we do and prefer to not talk because we are competitors. But this is stressing. This adds stress to the general communication. Then one year later, we start complaining from each other. That's not a good way. And as you already mentioned, the Ghost Ecosystem is already small. The main target we should focus on to gain more publishers on Ghost itself, not specifically Synaps Media.

    If someone moves their website from Substack to Magic Pages, that's a good news for me as well, because that's a chance. The chance of having these publications in Synaps Media in the future is more than having it from Substack. And when the ecosystem grows, then the attention and the focus will be more on the whole product and the things around it. So I never targeted to take customers from Magic Pages or Ghost Pro.

    Instead, I'm always focusing on the friction points of migrating from other platforms to Ghost. Many people migrated from WordPress to Ghost in Synaps Media. There are many difficulties. And in every migration, I'm trying to make it a Sumutri experience. And hopefully, we are also talking with you about this. Hopefully we will be able to find a better migration tool for Ghost that can work for all Ghost Pro, Magic Pages, and Synaps Media, and others that will help having more WordPress or Substack users to Ghost.

    Instead of focusing on this, fighting each other, or acting like, yeah, this is the way. I think like Yannis is the main blocker for me to gain enough money, that doesn't make sense. That's not real. Even with that friendship, maybe with the help of that friendship, I had a very nice amount of customers in one and a half years. I think you helped a lot because you mentioned the Synaps Media's name and gave link multiple times in directly Magic Pages blog posts and your social accounts. I also try to give my compliments to you in multiple pages. Even sometimes my customers ask, what do you think about Magic Pages? I say nothing wrong with Magic Pages.

    I don't think you will not be happy by going there for sure. There are small differences and you can just decide what to choose. If you go there, you are always welcome if you want to go back or yeah, it doesn't matter. So that's, I think, the kind thing. I think that this is also a need in the broader markets, not just for Ghost. If people can consider about the real effects of being harsh competitors with others and trying to tackle others, that doesn't help. Even if financially helps, it doesn't help mentally, it doesn't help motivationally. If I get more customers because of tricking people or because Magic Pages had bad times, I will not feel good.

    So it will not be a good feeling. I will not feel it as a success. That's, of course, a view of the life, how can I say? I'm not trying to be rich with Synaps Media. I don't have a plan to be a billionaire or something, even if it will be possible. Probably I will stop somewhere. I always intend to keep Synaps Media small. It's also in the part of the Mission of Ghost team I see in their website, they also intend to keep the team small. And I really like to see this in the Mission of Ghost. I also share that even smaller. My best scenario is in a few years, four or mostly five people, and then just stopping there, not trying to add more features or something.

    I don't want that. I want to keep small. And I'm very happy to have a competitor like you. It's a very big chance for me. It was very helpful. It is still helpful. Yeah, you just invite me to your podcast and you will publish this in your Magic Gaze website. That's very nice things. And hopefully we are giving a good example for other people that it doesn't need to be a harsh competition to be successful. We can consider both projects are successful, even though we are competitors.

    Jannis: And I think you mentioned one sentence that we have talked about a couple of weeks ago as well, which is that the goal should not be to get customers from, let's say, Ghost Pro, which is always the big player because they have roughly about 30,000 customers probably. We don't know exact numbers. We can only guess based on the numbers that they publish. It would be the easiest way for us to target them and just to say, hey, come to us, we're cheaper.

    But you said something back then. And also now in your answer here, that makes a lot of sense to me. And I think it's the core of who I think you are as a person as well, because you said the goal isn't to steal from each other. The goal is to increase the market, to show people that are on Substack, that there are aspects of Substack that are, let's say, ethically questionable and that they might have a better time on Ghost and whether that's on Ghost Pro, whether that's self-host on Ghost or on Synaps Media, on Magic Pages or anywhere else, that doesn't matter. And I think that this is such a core belief that you hold that makes you the person that you are running Synaps Media.

    And I think we should take that as a Ghost community as the goal, that we don't cannibalize each other, but that we show people the amazing things that Ghost can do, the possibilities you have with Ghost as a software, and to rather expand our entire market rather than fight the little battles in between.

    Murat: Yeah, I would like to give a real example about this. One of my first customers was a person from Venezuela. And actually, he was a customer of Magic Pages before. I remember he couldn't make the payment to Magic Pages because of the Paddle was not working in Venezuela. He couldn't make the payment and he tried Synaps Media because I used Stripe and it accepted the payment. Now he is still in Ghost because of that. If he could also manage to make payment to me or other services, then, yeah, he will not be able to use Ghost. He will probably go to Substack or WordPress.

    But now, even for Magic Pages, he is a potential customer. So if he wants to switch to Magic Pages, it's very easy between the Ghost migrations. So I think that's a clear sign. Having more options in the market, it adds value to the whole ecosystem. There are many people in Ghost Pro, very happy about Ghost, but maybe they are not able to afford the prices of Ghost Pro. Instead of losing them to other platforms, having other managed services adds value to the Ghost ecosystem. Yeah, there are some feature differences or something. People may think if you like each other that much, why don't you merge Synaps Media and Magic Pages? Why you are still competitive?

    We even talk about this, maybe you can remember. I do, yes. But I think still having more options, even though we are repeating some stuff with Magic Pages and Synaps Media, still adds value to the ecosystem. Mostly, with Synaps Media and Magic Pages doing the same thing, but there are small differences and that those small differences can make some real difference for some customers. So instead of merging them to a single product and losing some people because of some of the features that you or. I am giving, it's not preferable.

    So for a healthy ecosystem, for Ghost in general, I think having more hosting options, easier self hosting opportunities, I mean more local, maybe hosting providers, etc. These will help for sure. I don't think Ghost is the main product here, not the hosting services. If Ghost becomes better, then it doesn't matter how many hosting providers we have. Think about WordPress. I don't know how many WordPress hosting services are there, but all of them earn enough money for them. Some of them are billion dollar companies. That's a good sign that growing the market is the right act instead of fighting each other in a small niche market.

    Jannis: When you think about Ghost, are there any areas that you hear in your day-to-day life, in your support chats and everything, where people say, OK, maybe Ghost isn't right for me or maybe they outgrow Ghost? Are there any particular areas that you see that we as a Ghost community and the Ghost Core team need to address to keep more people within the Ghost ecosystem?

    Murat: Yes, my customer base is from many countries and especially from Eastern countries, from Asia or Middle East. The people from them complains about the lack of translations or internationalizations in Ghost. Currently, if someone wants to use Ghost for their publication, even though it is a local news or something, they need to know English just for Ghost admin. Ghost admin can only work in English. So this is a real blocker because, for example, I'm coming from Turkey and I already worked in the news publishing area 10 years ago. I would really like to offer my service to the many news websites. There are more than 10,000 news websites in Turkey, the local news website, but only maybe 5% of them can use an English admin panel for their publications.

    So this is a real blocker, I think, for Ghost to reach more markets in the more countries. People mostly complain about it and I'm always considering to find a way to add internationalization to Ghost admin. Even the official teams, Cathy from the Ghost community, made a lot of effort for adding internationalization to many parts of Ghost. The public parts are mostly internationalized, thanks to her. But the translations of the official themes are still waiting for a last touch. I don't know what is waiting, actually.

    But yeah, so these are the most important, let's say, complaints about Ghost. And also, for example, I have some customers from Korea. There are some quirks about the URLs in Korean websites in Ghost, especially when you migrate from WordPress. It generates very ugly URLs. That doesn't make sense at all. Last week, one customer from Korea was complaining about this. He said, this is the biggest issue that. I have with Ghost. When I hear that kind of feedback, I always note them down and either consider working on Ghost Core, the code base itself, for fixing them, addressing them in snaps media with a site hacking it or patching it. Yeah, there are more, I think, but this is the biggest issue that I see in general.

    Jannis: Yeah, interesting. On my side, internationalization is not that much of a blocker in the sense of translations. But what comes up quite often and where people actively leave Ghost is sometimes the lack of payment providers that people say, OK, I want to have paid memberships. But I live in one of the most common countries is South Africa, for example. Stripe doesn't exist there. They can't use paid memberships with Ghost. India still has problems with Stripe, even though Stripe has, let's say, a beta version or a preview version that they use there.

    But what I heard from my customers is that it's really complicated to get that because you need special licenses for your business and everything. So. I would also fault that into that. It's the fact that Ghost is very focused on, let's say, the Western world, very focused on English speaking countries. And there is very little effort to expand a little bit. And I think this is definitely something that both the Ghost core team and also we as a community need to maybe bring more effort to for, I don't know, Ghost 7 maybe.

    Murat: Yeah, that is really that payment providers is also, for example, Stripe doesn't work in Turkey. Same problem. There are many publications in Turkey that. I would really like to suggest, Ghost. But, yeah, the payment feature they were not able to use at all. They are stuck with the advertisement based thing, which is very sad and ugly. And as I said, internationalization is also another thing. Yeah, as you said, the Ghost seems like a product for Western countries only. That is maybe enough for the core team.

    But I think it is killing the bigger potential that we have. I think more than two of three of the world doesn't know English and maybe don't able to use Stripe. So having solutions for those countries would help a lot, Ghost in general.

    Jannis: Yeah, absolutely. You also mentioned that sometimes you contribute your ideas to the Ghost core. Sometimes you solve them in Synaps Media, especially if it's stuff that you can add on top. One project of yours that really shows that and that really has an arc, so to say, an arc of how you had the idea and how it ended up now is the theme editor. And maybe to give some context, before, I don't remember when it was, but let's say last year, definitely, until last year, you were not able to edit themes within Ghost itself. You always had to click on a download button, download a theme, a Ghost theme to your local computer, open a code editor, do whatever edits you want to do, upload it back to your Ghost site and then see the finished product.

    You thought that it was annoying and you built a theme editor that lives directly in Ghost that Magic Pages then has picked up. We have made it available to our customers because you've open sourced the whole thing and now Ghost has shipped a native version that was directly inspired by your efforts. It's not the same one, it's a re-implementation, I would say, but can you walk us through that a little bit? What made you decide to build a theme editor specifically and how was it from your perspective that Ghost then picked up that idea and it's now part of what everybody, like all the tens of thousands of Ghost installations all over the world can actually use?

    Murat: Yeah, actually the same motivation, especially in the first year, almost all of the people that don't continue with Synaps Media, I was talking with people a lot, still talking. And the main problem for them was not Synaps Media itself but Ghost itself and they were complaining about the how hard to edit template because, as I said, most of my customers are from non-English countries and one of the first thing that they want to do is to change that subscribe world in the official theme.

    But to change it, as you said, you need to download a zip file, open it and most people don't have a code editor, they are trying to open that handlebars file in either Word or, I don't know, Notepad and then zip it again and upload it again. That's annoying, that was an annoying procedure and people were complaining about this a lot. And since unfortunately, at least until the beginning of this year, there were many PRs in Ghost Core waiting for months or even years to get attention.

    So I was not eager to directly open a PR for this because it would be a very huge PR but I intended to give a solution at least in Synaps Media and I started to work on it. Normally, my idea was making it a file manager or something inside the Synaps Media panel but then I noticed that I need to make a huge effort and it will be not that efficient. You will leave the Ghost admin, come to the Synaps Media panel, make some changes and then return back and check the result.

    So I was considering to somehow make it in Ghost admin itself as monkey patching the UI with a backend, with a sidecar project but then authentication and the file system storage options that it's not always file system, Ghost can't work with S3 or something. All of things came up and then I realized that actually my career as the web development, I'm a more front-end guy than the backend. I followed all of the improvements in the browser world. Luckily, in the last years, browsers improved a lot so we can do very advanced stuff directly in browsers. I thought that this can be done in client-side directly and made some POC and with the help of cloud, I made an implementation in a few hours and I'm quite surprised that it's working very well because I was expecting it will be slow or it will crash because of huge themes or something.

    But it worked very well and since I reached that point, it's just a client-side solution. It was making so much sense to make it open source, to open this to everyone and you also contributed a lot in the first week.

    Jannis: I remember, I think it was a Saturday, I woke up and I had breakfast and then I received an email from your blog that I'm subscribed to on the newsletter and it was about the theme editor and I was standing in my kitchen and reading this and thinking, what the hell, this is so amazing and I just dropped breakfast, went to our living room where my laptop was and tried it and then messaged you and thought like, this is amazing and then I contributed a little bit but I still remember that moment because it was really that light bulb moment where I thought it is amazing that someone like you who's more front-end guy, I'm more in the backend, that you looked at things and you found a way to basically add this as a, for the lack of a better word, plugin or an overlay to Ghost without interfering at all with it and just the way to get there was absolutely stunning to me.

    Murat: I'm also very happy about that work because it really helped people, even helped me a lot. I'm really happy to have this feature in Ghost Admin itself. It's very practical, it's very useful. And I was not expecting actually but the good part that John also noticed that and liked the idea and in a very short time, I think in three or four weeks, they implemented very similar version directly inside Ghost Admin with HANA and since then we are working, I think it's like a feature something we were using like 10 years.

    I think many people already forget the previous version like downloading and uploading again because this is the way that it should be. This is possible with open source even though I didn't open a PR, they just noticed and made the idea and also gave the credits, not acted like it's just their idea. So these are all nice stuff and recently I also added same style with a PR this time for redirects YAML and root YAML files that I think it's also very nice because a few weeks ago, I was helping to migrate a WordPress site to Ghost and they had to play with redirects file a lot to redirect all URLs to new ones. And every time you download, edit and upload, download, edit and upload, now you are able to edit inside the panel.

    It's not that much impressive because we already have theme editor but still good thing. Yeah, that really shows the general picture of my intentions about working on Synaps Media and trying to contribute in Ghost Ecosystem and how things works in open source communities. That was a nice idea. Hopefully we will have more of in multiple places. There are more places like, as you said, the payment providers. That's a bleeding issue for many people. The translations, even maybe the email adapter thing. John was very clear about not having it in Ghost Core, but I don't know. I don't know the reasoning yet. I see a good improvement this year about the communication between the community, the open source contributors and the core developers.

    Hopefully this will help in future to work together on more controversial features for the sake of improving the ecosystem. Not, of course, talking about Synaps Media and Magic Pages for Ghost Pro itself. These are all about how and where we will be in five years for Ghost in the market. What kind of people will able to use it and what kind of people will not able to use it. This is about that, I think.

    Jannis: Yeah, I think I agree with you that this year, the communication between us as open source contributors and the Ghost Core team has improved a lot. Thank you Ghost to Stephen and Austin, the new platform engineers that are working on that a lot in the recent weeks now. I think what we need, at least from my perspective, is a way to communicate about those bigger things. Because I sometimes have the urge to contribute something bigger than a small bug fix or a small improvement to the Ghost Core. And it's a lot of effort to do that. Sometimes you write thousands of lines of code and in the end the communication is very nice.

    But we're not really going to merge that into the Ghost Core. So this is the one thing that I'm personally still missing, to have that communication somewhere openly where everybody can contribute to get feedback and to say, hey, this is my idea. What technical limitations do you see? What are the guardrails? What are the internal discussions that the Ghost Core team has had about this before? Because usually right now, the answer that I've received so far was add a PR, a pull request, and then we're going to discuss that pull request. And that's great on the one hand, but on the other hand, it means that a volunteer, in this case, is writing thousands of lines of code just to hear in the end, that's great, but we're not going to merge that.

    So I think we're on a great track and we still need a bit more communication about those bigger things to make that more streamlined because we always compare the Ghost Market to the WordPress Market. And I think what the WordPress Market does really well is that hosting providers dedicate development resources to the WordPress Core as well. And this is where I at some point want to get to that. We say, okay, the Ghost Core is not just developed by the team of the Ghost Foundation, but Magic Pages is contributing to that with ideas. Synaps Media might be contributing. Open source contributors outside of a commercial provider are contributing, and that somehow we still have the Core team or something else that can coordinate that and say, okay, if you want to do that, let's bring everybody to the table and discuss that.

    Whether that's asynchronous in a written forum of some way, whether we can jump on a quick call with someone, I leave that open to the decision makers on that. But that's, I think, what would help us to get more really cool ideas like your theme editor into the Ghost Core, where maybe the Core team cannot focus on that right now because they have other things that they need to focus on. But we as individual contributors or as other providers in that sense can contribute things, but we need the explicit go ahead for some of those things.

    Murat: Yeah, I think that you made a very good effort on you as Magic Pages in general, made a very good effort on making this whole picture better. I think I don't remember the whole history of the other many hosting providers in the past, but none of them were that much visible in the ecosystem until you. And I think that helps a lot that even for Ghost team, I think they probably become more aware of self-oasters more than before because it's not just a few people. At least 1,500 people is living in Magic Pages and there are more and they are open people. They are not just trying to get some money from their pool. They are very kind. They are very open for contributing to the Core.

    So this is, I think since a few years, this started to change the picture about the ecosystem. I think Ghost team also should consider about the general view of Ghost in the public view. So. I want to give an example. I'm following a Turkish publisher who used Substake since years because he's not earning money from his publications. It's just free, but he has 70,000 members. He made members. Two years ago, he was complaining about some problems in Substake in his personal blog, and I said, did you consider Ghost? He said, yes, I checked it, but it was too expensive for me.

    So he's a technical guy. Actually, he is not a software developer, but he was talking about technical world and he was not aware that Ghost is an open source product and there are different hosting providers at all. But I'm able to understand that. A few months ago, a person started a trial on Synaps Media. Then a few weeks later, I got a message from her. She said, the price that I'm now seeing is different than I saw in your homepage. Why is that? She said, I said, what do you see? And at the end, we noticed that she started on Synaps Media, but ended up creating a trial on Ghost Org accidentally.

    Because if you go to Ghost Org, there's a getting started button. And when you press that, you automatically start a GhostPro account. So it's very confusing for the people to understand the difference between GhostPro and the Ghost software itself. You need to be very careful in the Ghost.org to understand this is an open source product and actually I can self-host it or there are different sourcing providers. It's not the same in WordPress, for example. WordPress has separate websites, WordPress.org and WordPress.com. In WordPress.org, there is a hosting section that they list big hosting providers other than their official hosting.

    So I think it will be helpful. It's not about asking this for a gesture for Synaps Media or Magic Pages. Because if that guy from Turkey would automatically understand that, yeah, okay, GhostPro's prices are for professionals that earn money from their members, then these prices make sense. But I don't earn money from, even Stripe doesn't work in Turkey at all, but I still like Ghost. If he could understand that, yeah, okay, there is Magic Pages and it's affordable even for me, then we could have it in the Ghost ecosystem. He is still using Substech.

    I think these are maybe small but very important details about how we show and tell the general picture. Hopefully, we will have better communication with John and the core team in the future and fine-tune that kind of things. I think it will give a huge impact on the ecosystem. Hopefully, we will go there.

    Jannis: And just to give perspective to that, it happens quite regularly. Just yesterday, I talked to someone that sent a support request to us and said, hey, I just paid $35 to Ghost. Why do I still have to pay for Magic Pages? And then I explained the difference to him and we also have an article actually on our blog that goes into all the different ways. What is Ghost as a software? What is the Ghost Foundation? What is Ghost Pro?

    What are the different hosting providers? And he then read through that and then understood it. And then the big question was, okay, I did not want to host with Ghost Pro. I wanted to host with Magic Pages. How do I get my money back? And unfortunately, the question is, you probably won't. The way is to cancel the Ghost Pro site and to continue your site here, because he actually set up his entire site manually on Magic Pages and also has very little ways of transferring that to Ghost Pro, even if he wanted to, because they don't import backups from other hosting providers.

    So it's not a one-off thing. It does happen quite regularly. And I think that, or to turn it around from Ghost Pros or the Ghost Foundation's perspective, I understand why it is the way it is. I understand why the focus is very much focused on the marketing sites to get to that Get Started button. But it does hurt the Ghost ecosystem in a way, as you described, that people don't realize that Ghost is more than just Ghost Pro. Ghost is a community. I'm absolutely certain that there are more self-hosters of Ghost than there are customers on Ghost Pro. And there are different hosting providers. And truthfully, even if we add up all the customers on the other hosting providers, we will not reach the level of Ghost Pro.

    But it is a growing number. Since the last, I would say, three years or so, the number of Ghost sites on other hosting providers is growing. And it is a very fair question, I think, to ask where that's going to go. Because in the end, Ghost is more than just Ghost Pro, as you pointed out. Yeah.

    Murat: Yeah, hopefully. Things will be more clear and more communication channels will be opened up in the near future.

    Jannis: Yeah, definitely. I also think that none of us are complaining about this. I think both of us understand where it historically came from. And I think we're both thinking about the way forward and that we want to contribute to that ecosystem, to that community even more. And yeah, let's see when we find a way to do that.

    Murat: Maybe it was a remark here because it was last year in January or December, I think. I also had direct communication with John by writing as an email. And I directly shared my concerns about the open source view of the Ghost. He accepted all of the concerns that I had, and he said he is aware of them. And he's planning to address most of the issues. So it was a very nice conversation. So maybe when we talk about this, people can think about that we don't have any communication with the Ghost Core team or John at all.

    But we are able to directly communicate with John. This is not about just incidental communication. This is about the general view, general roadmap of the Ghost. We don't have any communication or synchronization about that kind of things. We maybe will not have at all. I'm not able to request to get more information about the Ghost Pro plans or something. But at least for the open source part and how we describe the Ghost software, I think this is an important part. And you can talk about this. We can discuss about this if they want. Hopefully that will be the case. I'm hopeful about this. I consider myself new in the Ghost ecosystem since few years.

    It's more than 10 year old software, but still I hope I'm able to add good value to the Ghost ecosystem. Hopefully it will be even more in a good way. And then maybe we will be able to have better communication channels between all hosting providers. So for example, when we are talking about hosting providers, we don't mention anything like the Midnight. We know the name, but I don't know the people behind it. Other than two of us, I think there is no one in many services presented in the Ghost community forum sharing updates or getting questions or something. That's actually a bit sad because they seem to work, they seem to have some customers and they are also part of that whole Ghost experience.

    Some people start Ghost publications in Midnight or Digital Press and they decide if Ghost is good or not because of that experience. Sometimes it's good, sometimes it's bad. So if we can able to communicate with each other, maybe this can be a call to those providers. Please share things in Ghost community forum or even in your blog. I don't see a blog that they share about the region or the roadmap or something. We are mostly talking about the three providers, but this is because we are the most visible service providers now. And this is not about blocking any others.

    So it will be better to have more service providers active in the Ghost community, Ghost ecosystem, but not just about sharing an advertisement or something. Please come and introduce yourself, try to get the trust of the community and please try to contribute to committees and share your concerns, etc. Then it will be a better, healthier ecosystem at all. So then maybe we can come together with all hosting providers and think about increasing the general experience of Ghost for more people. Now we are only three, unfortunately.

    Jannis: And that call also goes from my side. Whenever I start this podcast, there is one line in the beginning that says that this is a podcast where. I want to speak to the people building, hosting and publishing on Ghost. And it's usually very easy to find people that are building on Ghost, so tools in that sense, like Chris from Vellumine or Pay Clue last week, André. It is also very easy to find people publishing on Ghost because. I have a repository of 1,500 customers that I can use for that.

    But it is very hard to find the people hosting Ghost because there is realistically more. I can interview Mariia Sviatoslav from the Magic Pages team. I can also reach out to Ghost Pro. I'm absolutely sure that one of their team members would come on the podcast, but that doesn't show us the entire diversity. So if there is another hosting provider listening and you want to come on that podcast, my door is wide open. And. I would love to have a similar conversation with you because you are also part of the Ghost community. And I think what we've established is that it is not a zero sum game here. We are trying to expand our market. We are trying to build an ecosystem altogether.

    And. I would love to just have that diversity represented on the podcast here as well. And on that note, I also think we joked about it before in our preparation. If anyone from the Ghost Core team, be it John, be it anybody else, is listening to this and you want to jump on a call with us or meet up anywhere in Europe mostly because we're both in Europe. Let us know because I think we're both very happy to do that and would just also love to just bounce ideas back and forth and see where that goes.

    Murat: Yeah, it would be great to have a meeting with John in person, even better together, three of us even more. That would be a great conversation that will be very helpful for all of us. Unfortunately, a few months ago, I noticed that John's message that I'm in Amsterdam, come and meet with me in the same day, even though I'm in the Netherlands, coming to Amsterdam for me takes more than two hours. So it will be better to be informed earlier.

    So I will really want to have a meeting with John, also with other Ghost Core members. It's a part of our life since years. So we are eight hours at least working on Ghost. And these are the people, the core of the team that are making Ghost. So it is an exciting and honorable thing for me to contact with them, talk about the difficulties that they have that I can help anything. So, yeah, I would really like to have direct communication with John or other team members. It will be great.

    Jannis: Yeah. And I also love Amsterdam as a city. So whenever anybody is in Amsterdam next time, let me know. There are flights from Salzburg, which is close by here. And there's a night train to Amsterdam. I would love to just join that. John, the location is Amsterdam then. We already decided. Or next week in Hamburg, since you're also coming to the Indiecon conference. So if somebody is spontaneous, hit us up and we're both in Hamburg next week.

    Murat: I don't know when you will publish this podcast, if it will be before that.

    Jannis: That is very true. It will go out on Thursday. So one day before Indiecon starts.

    Murat: I think it's enough for John. He is already deciding in the last day.

    Jannis: Yeah. So we've already talked about quite a few topics more. I want to ask you one last question. We already touched upon that a little bit. Let's look ahead in the Ghost ecosystem. Let's imagine we have Ghost 7. We're currently on Ghost 6.61. So for Ghost 7, are there any wishes other than more options for translations and internationalization? Anything that you're missing that you say, you definitely want to see that in the Ghost ecosystem.

    Murat: Other things can be more opportunities for theme designers and theme developers. I think one of the things that people are getting trouble when they meet with Ghost, coming from WordPress world, is lack of theme options enough and customizing them. There are some new projects that I see for making UI-based theme designers. These are nice, but even making a nice looking design with AI or something, it's not easy. It looks like easy, but generally you end up with an AI slop.

    So better would be to increase the options, opportunities for theme developers to make it easier. I think the team development is not that difficult comparing to WordPress or something, but the limitations about what a theme can do about showing and fetching data or something. If we can have more options, more customization options, I think it will attract more designers and then we will have more options. Also, for example, the official theme list is the same since years. Having more bulletin teams in Ghost itself will be very helpful. Yeah, with the internationalization thing, then it will open up bigger markets, way more people, then it will help growing the ecosystem very quickly.

    Hopefully we will have that kind of improvements in time. I don't know their plans. This is one of the things that we want to at least get an insight that, yeah, what is the general vision for Ghost 7 or Ghost 8? It will be great to have that kind of things. And we can focus the supporting ideas of this target instead of just about personal things. Yeah, the important part of having new Ghost publishers coming from other platforms, and I think Ghost seems like an alternative to Substack, but this limits Ghost, I think. We should not limit Ghost software with the capabilities or features of Substack. There is a bigger world in publishing area.

    I'm not expecting to have WordPress plugins or WordPress themes in Ghost. Hopefully we will not have that kind of things because that was the main pain point of WordPress already. But at least the flexibility and customizability of WordPress is one of the key things people love WordPress. I think we have many things to learn from that in Ghost. Also, borrow some ideas. I also like the Activity Pop social web service as an idea, but it also now seems like a half-baked feature. It's not still there completely. There are many things to do in this area. Hopefully they have some plans to do because we also don't know that.

    I think it will be great to make it more mature with mentions, hashtags, and maybe different timelines, and a public profile page. I made a Fedi.pop just because of the lack of this. I think it can be easily done in a Ghost core to make a public profile page of Activity Pop account. Hopefully it will be there in some time. These are the main expectations that. I have for the future of Ghost.

    Jannis: Yeah, cool. They all make a lot of sense, I think. Let's see where we end up with Ghost 7. Murat, thank you so much for taking the time for coming on the podcast. I have one last question that I ask every guest. You might already know it. Is there anything that I should have asked that I didn't? Anything that you want to say that we didn't touch upon? Anything that's on your mind right now?

    Murat: I thought maybe you would ask running hosting service by a single person. Is it fun? Is it risky? Actually, you are not a single person anymore, but it was the case since the beginning of the year. Many people were asking this question to us. What happens if you just disappear tomorrow?

    Jannis: It always turns very dark. The question is, what happens if you hit by a bus? That is what it always comes in. How fun is it for you? How fun is running Synaps Media as a single person for you?

    Murat: Yeah, actually, it's going good so far. And I can happily say, especially in the last few months, I started to get less need for the support request because I think it reached a certain level of maturity in the platform. We didn't have any downtime since one year, I think. And it's going well. But for me, I'm not planning to be the only one forever for the system because. I want to be able to go to vacation or something. And. I want to be able to have the right for being sick for some time.

    So hopefully, when I reach to a financial situation that I can afford for another team member, a full-time team member, I will definitely look for that. I understand the concerns, but in the meantime, people should understand the advantages and disadvantages of working with a small team or even a single person team. Yes, that's a risk. In the meantime, this is the key of providing that much quality service in that affordable price. If you will have 50 people, if you will need to pay salaries for 50 people, then yeah, the main cost of service will be not the servers, will be the salaries.

    So this is also a preference. But. I want to keep affordable because this is what the GOS ecosystem needs. There are a huge amount of countries in the world that cannot afford to pay $40 per month to have a GOS website. I'm talking with the people from the Far East countries, and they say people here are just trying to self-host because that is the only option for them. Otherwise, it's too much, too expensive. When you try to self-host, it's not a very nice experience if you just want to publish some articles. Being affordable is important, and to be affordable, the team size should be reasonably small. As I said earlier, my ideal future expectation is like being 45 people at most, even though if.

    I have, let's say, 50,000 websites, that doesn't matter. I will try to make the system stable and sustainable enough with that small team. Generally, there is a misconception that when the customers are increased, you need to increase the people. Generally, teams don't increase people because of the customer counts. They increase because of the new areas that they want to enter. If you stop yourself somewhere to not enter every possible area, just because you can, then you can keep the team small and you can give a very nice service with an affordable price.

    Jannis: I think it's actually a good sign of a good service, especially hosting service, when you can sustain growth with a small team, because it means that your growing customer base that you have doesn't need you as a support. In my experience, at least, the people that need support are always new customers that come in that have questions. The people that are on magic pages for three years, they don't reach out because their website is set up, their website is working, their emails are running, everything is running smoothly for them. There are literally people I haven't heard in three years from them, which is good on the one side.

    On the other hand, you're always losing touch a little bit, but I think it's a very healthy sign if you can sustain growth as a hosting provider with a small team, because it means your overall system is good, and the people that need support and the people that want that support are new customers that come in. So that was a perfect example for that.

    Murat: Yeah, indeed. We don't know how many people works behind the very popular hosting providers because we generally don't need to contact with them at all. For example, I was using Linode, it was a popular VPS provider, now it's part of Akamai. Yeah, I use it for maybe 10 years, and in total 10 years maybe I need to communicate with their support maybe a few times. So if they could reveal that they were only two people, yeah, that could be possible, because there is a system that is already running, and if you don't need that much support, yeah, the systems that we are creating are actually like a machine that we are programming or something, and it works, it should work by itself.

    During today we are not always checking servers and trying to fix the things, so most of the time it just works. We are trying to fine-tune stuff, add new features to make the Ghost publisher's life easier, or contributions to Ghost ecosystem, or write documentation. So I think that probably your routines are similar. This is how we work, and it's quite reasonable to have a single-person hosting service, but as I said, whenever. I have enough financial sustainability for just because of the Synaps media's income, then I will definitely have a second team member.

    Jannis: And I think the difference between us is that you anticipate that, and I always said, no, I'm just going to stay just me, it's just going to be me, and then at some point I realized, actually, I would also like to just have some downtime at some point, and looking back, Spataslav is now with us for nearly seven months. He started in February this year, and it's been literally the best decision I've made in Magic Pages so far, because now they're with Mariia, there are three people actively thinking about it at the moment, and I had a look at our roadmap and our change log in the last year, and while the overall things that we changed went down, it was a lot more impactful, like things that we added, compared to, let's say, a year ago.

    I can only confirm, it's perfectly viable to run a hosting service as a single person, it's a lot more fun to do it with somebody at your site.

    Murat: Yeah, it's also visible, I should say, that in the last three months I followed your blog, of course, and I'm really surprised how come you can manage to write all of this stuff and publish new features and things, but of course you are now three people, this is not fair, I'm on the one. I cannot compare myself with you anymore.

    Jannis: And Spataslav is really good at finding those things. When our support chat is very quiet, he just goes through the documentation and just says, that's not right anymore, that was written three years ago, that doesn't even exist anymore. And he then has really developed great skills at updating those things. And I think this is one of the use cases where AI has a great place in our, let's say, tech stack, not in writing the articles, but in finding the gaps. So. I have a little, going a bit off topic now, but. I have a little self-hosted LLM server down in a storage room and sometimes I just tell it to look at our source code for our customer portal, for our backend, and look at all the articles we have published on Magic Pages and find the gaps, and then we just have a list of gaps.

    And this is what we use right now to basically update our documentation and add things that weren't there before, that weren't documented at all.

    Murat: Actually, the biggest challenge for me about being a single people working on the whole service is scattering between the different disciplines of the project. The writing, the articles about the feature, the documentations, or then social posts, or then the implementation itself, backend and frontend, and system monitoring. Monitoring the external services like Mailgun, like Bani CDN. There are many roles. Normally, big companies are giving dedicated person per role, but as a single person, you try to handle all of them by yourself. Sometimes this becomes exhausting, and for example, especially for the documentation and marketing material, let's say, I would really like to have a supporter for this, because it's a different mindset than just writing the code.

    There is no good relation between how you develop the feature and how you explain it to the non-technical people. So having this context switching becomes sometimes very hard and tiring. And lack of feedback is also another issue about being alone. Nowadays, AI helps a little about this, but especially when talking about how to implement a feature, not technically, but there is an issue, and. I want to fix it, how should I fix it? In that case, generally, the suggestions of AI, for example, doesn't make sense. He is just trying to make you happy, so he doesn't really criticize.

    But when you have a team member who knows the details about the project and the history of it, then you're really able to get very good points. Probably, I can imagine when you talk, three of you, about something, a feature that you consider to add or not to add. It would be very nice to have that conversation with some team members who already know the old details, your customer base, everything. That is what I'm expecting in the future.

    Jannis: And even more, not only to know the context of Magic Pages, but every Thursday we have our weekly team meeting, and yesterday we had a very good discussion about feedback loops, for example, and everybody just brings different perspectives. I bring the technical perspectives, Vatoslav, from the more support perspective, but also from using Ghost actively. Since he started working here, he has also built his own personal blog, and then Mariia from a really community perspective and the marketing perspective. That is an amazing balance that you just have three different perspectives on the same topic, and that has led to some really great discussions that we've had in the last couple of months.

    Yeah, I can imagine. Murat, I can already see that this will be the longest episode of the Magic Pages podcast so far. Sorry. Don't be sorry. It's been incredible fun. I will enjoy editing that episode. I hope that people will enjoy listening to it. I am very much looking forward to seeing you next week in Hamburg for the podcast in a couple of days, and we should do this again at some point. I don't know, maybe in a couple of months, in a year, to just get an update where Magic Pages is, where Synaps Media is, and to see how Ghost has developed in the meantime.

    Murat: Yeah, why not? It will be great. And thanks you very much for having me in this conversation, and hopefully people will like that conversation. Two competitors talking about hosting services for Ghost. Yeah, I'm certain they will. Yeah, it was a nice conversation.

    Jannis: Yeah, it's been a pleasure, and see you soon, Murat. Bye-bye. Bye-bye.

    1 hr 9 min
  • Ghost memberships beyond Stripe

    André is the founder of PayGlue, a payment-middleware relay that connects Ghost memberships to alternatives to Stripe — Polar, Paddle, Lemon Squeezy, Creem, Gumroad, Ko-fi, Patreon and more. He built it to solve his own problem (he simply didn't like Stripe), then found the deeper ones: creators in countries where Stripe isn't available, and the merchant-of-record question of who actually remits your tax.

    André and Jannis get into how PayGlue replaces Ghost's paywall with a snippet so any provider can grant access, pay-what-you-want and one-time memberships, and what happens when a webhook fails at 2 a.m. The second half is two founders comparing notes: earning trust through open source, GDPR as a filter for tools that actually care, why a sustainable tool skips the free tier, and the nerve it took to remove the Magic Pages starter tier.

    Auto-generated with Whisper + pyannote speaker diarization. Names and technical terms have been hand-corrected; sentence boundaries are approximate.

    Jannis: Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting, and publishing on Ghost. I'm Jannis, and today I'm here with André, the founder of PayGlue, a payment middleware that connects Ghost sites to Stripe alternatives. André, welcome.

    André: Yes, thank you very much for having me here in your podcast.

    Jannis: André, can you quickly introduce yourself and tell people who you are and how you came to create PayGlue as a new tool for the Ghost ecosystem?

    André: Yes, of course. I solved my own problem. I started three years ago with Ghost, and I dislike Stripe, not because it's not working, only because I don't like Stripe very much. And so I looked for an option to resolve my problem and use another payment provider. And it wasn't really easy for me because there only were manual links to do around it with the API or Make or n8n that works a little bit. And when there are some problems, then you have a lot to do in searching why it isn't working. And so I was looking for a problem solver, a sort of webhook middleware relay that helps me out.

    So I built my little product to solve my own problem. And as it was solved, I thought maybe another Ghost publisher needs this tool.

    Jannis: Now that you've talked to a couple of people about PayGlue and you have a couple of paying customers already, what did you find apart from your own problem of disliking Stripe? What were some of their problems? Are there other problems with how Ghost and Stripe work together or don't work together in some cases where you say people would need an alternative to Stripe itself for Ghost memberships?

    André: I found the problem is not Stripe itself. In some countries, you can't use Stripe. Your country is maybe not allowed in Stripe and you can't make an account. And so you can use Ghost of course with free membership tier. That solves not every problem for a publisher who wants to make some memberships with it. And so they change to other systems like WordPress or something else. And I found out in my country, in Germany, it's no problem with Stripe and other countries don't like Stripe or you can use it.

    So I thought for myself, okay, when somebody needs to use Stripe, it should work with PayGlue. And when somebody don't have the option to use Stripe, it should work too, because when you don't use Stripe, you don't have the paid membership tiers and every article is free. So how you compete this with a payment that somebody does and for exclusive articles. So the PayGlue problem at first was only to solving the payment and ghost memberships problem. And now it solves a paywall too. So that users without Stripe connection can use a paywall to get exclusive content.

    Jannis: Cool. Can you tell us some of the countries where Stripe isn't available? Do you have any countries in mind?

    André: I have a beta tester from Nigeria and there was this problem first. And. I have a beta tester from, who's the country name? I don't get the name, but. I have another country too that doesn't work well with Stripe. They were declined. They could make an account, but they were declined for Stripe. They said, oh no, we don't want to work with you and process your payments. And that was not only the only problem. For example, when you are a solo founder, you make solo publishing and you have cool stuff that somebody wants to read and pay for and you use Stripe. Most people don't know the difference between a payment processor and a merchant of record.

    Because Stripe only does like paper, the payments and transactions, but you are responsible for tax remitments and everything else. And that don't come in first place. That comes later. For example, when the tax department sends you a letter and you have to strip it out. What was taxed from this country and this country and this country. Everybody knows this from digital payments. For example, an ebook. Yeah, you take a provider like Gumroad, for example, and they remit the tax for you no matter if somebody buys from the use air from England or from the EU. And because Stripe doesn't do that and. I have a beta tester that said, hey, for my own business purpose, I need a payment provider that works as a merchant of record too. So I set it up.

    Jannis: Yeah, that's actually one of the reasons why Magic Pages doesn't use Stripe for payments as well. Because from the very beginning, that was my issue that I knew. I would not just have customers from. Well, back then when I found out Magic Pages, we still lived in Germany, but now I live in Austria. And it was clear from the beginning for me that probably Magic Pages, if we scale, will be an international business where we have customers now literally from New Zealand to the US, Peru and everything. And I don't want to handle Peruvian tax, if it is in that case.

    So yeah, this is why we also with a merchant of records Paddle in this case. And it's a super interesting use case, I think. Now that Ghost also has one-time payments or donations included. Does PayGlue also work with those?

    André: Yes. Of course, the most problem is what Stripe one-time payment says. You make a sort of donation button, but now you don't need Stripe for that to create a link. You can do it in Ghost natively and they call it donation five bucks and one link to pay. But maybe you start a new block. Yes. And you make a sort of founder membership. Pay what you want. Yes. Or one-time payment. And then the subscription comes later. It's very complicated to set up with Stripe. For example, when you take another payment provider like Lemon Squeezy or Creem or Paddle or Polar, you can set things like this up.

    And then no matter what somebody uses one-time payment or pay what you want or subscription, you get access to your block because I'm the first founding member. I pay five bucks to support you and I don't need a subscription. But the problem behind this is the technical problem that. I have access to your exclusive articles as a founding member. And I'm not excluded because. I have no subscription. And things like that, you can't do with Stripe native. You can do it with Zapier and you can duct tape it with n8n of course when you're happy with that.

    Jannis: That just opened a really interesting use case or thought that I had. I sometimes in the Magic Pages support chat get questions on how to use Ghost. Whether. I have tips on that both from Magic Pages customers and non-Magic Pages customers. And one that comes up, I would say every two to three months is a pay what you want subscription that they say, okay, my standard subscription is, I don't know, 10 bucks a month, but. I want to be able to offer people a pay what you want subscription. They can pay whatever they want maybe as a one-time thing, maybe as a monthly thing. And my answer so far has always been, yeah, I'm sorry, not possible with Ghost. Is that something that PayGlue would enable people to do? With Stripe in this case?

    André: That is possible. Not with Stripe exactly. It's not natively possible because Stripe is a native integrated directly in the Ghost ecosystem as you know. But you can do it with another payment provider of your choice. And the most do pay what you want. But then it's a problem how to fix it in the background with Ghost. Yes, to grant access for your new memberships. Or you have a special birthday pay once and don't have a subscription anything what you want. That is possible. And of course it's possible when you already have Stripe in your blog and you use Stripe subscriptions and just want to add pay what you want or one-time payment without the donation.

    Then you can use PayGlue in connection with your payment provider too. So you have more options to grant access for example when somebody pays five bucks for pay what you want in Gumroad or any other payment provider as you choose.

    Jannis: Nice and does it work both as one-time pay as you want and also as a subscription?

    André: Also as a subscription. That works in two ways. That's no problem because PayGlue is a sort of relay a sort of middleware. You connect inside of PayGlue your payment provider of choice and your blog and the computer talk via the API that is encrypted and the webhook is signed. So for example when I'm on your blog and you have one-time payment and you for example choose Paddle because you have Paddle in your magic pages already and I click buy. Then I get access granted to your blog and when you open your ghost blog and see my name my email address you have some labels and a note what. I have buy it when. I have buy it what was the order number and there are labels for example PayGlue active.

    So our pay wall knows I'm an active user. And this works with Stripe when you already had Stripe set up or when you only have free membership here. The only thing that I really needed to detail it out in the documentation. Was that you don't switch to. Paid member in the blog article. So you always leave it blank for free member and then just put our HTML snippet code inside it for the PayGlue paywall.

    Jannis: Essentially you're replacing the ghost paywall with the PayGlue paywall in this case then.

    André: Exactly.

    Jannis: Very nice. That's an interesting model because I'm currently in touch with another customer who might actually be listening to this and we've talked about this a couple of times now and I'm wondering if you had some thoughts on this whether that's possible with PayGlue and whether it would be easy for you to integrate that because then. I would need to integrate that. So maybe another use case for you. Have you thought about metered paywalls where customers say, okay, I want to grant membership XYZ 10 articles a month that they can read. Is this something that you have thought about before?

    André: No, I don't have such a question that is very special in my feedback or in my closed beta or now we are an open beta but I will take it with me. I know with, for example, Paddle or Polar that is often used for SaaS businesses you can do metered products but of course you need this metered product 10 articles to be measured inside the paywall and the block and this is of course a sort of special need. I can put it in our backlog in our feedback and when enough customers interested in this of course you can put development in it and test it out if it works because. I have on all payment providers active accounts for testing and developing. And it's very special.

    Jannis: I will send that customer your way to get in touch with you just so you can see whether your ideas on this match with his ideas because he is very keen on launching something like this still this year and I've said so far that could potentially be something that Magic Pages can offer but obviously we're not payment experts and it is not something that I can jump on immediately. So potentially if you're listening to this even if we haven't been in touch about this before get in touch with André and tell him that you want metered paywalls so his list gets longer and longer and things to include.

    André: Yes and that is the very beautiful thing on the internet yes you have somebody who has a special problem and maybe we can solve it but at first we need to talk about it and then we will see.

    Jannis: Yeah I think the reason. I mentioned it now is because of your explanation about the paywall that you replace ghost paywalls with your paywall because that is from the research I've done so far exactly what would be necessary for this so you're already a couple of steps ahead there so let's see what you two can come up with there.

    André: The paywall was the mighty big frog in the whole development to get it right and of course we have a demo block blog.io.io and there you can test it yourself yes. I have connected this to our sandbox account so that you have a sandbox credit card and nothing pays directly from it and you can test yourself if your access is granted or not granted. I think this is the best way for somebody who's technically interested to test if a system works and he would pay for it or not and glue is not a payment provider often people ask hey are you a payment provider do you see my transaction and my credit card settings and everything else? No then you need to be a very certified and very security special company for this to do that and we are just a relay of course we need an email address and encrypted transaction that it's granted access for your ghost blog for new memberships but we don't see credit cards amounts or anything else what's very important for the step.

    Jannis: Yeah it's also something that you've talked about a few times now is that trust and that security and if you remember when we first emailed about PayGlue that was one of the points that I raised that I personally am always a bit critical of adding an extra piece in a moving chain because in my eyes this is something that can break it's another thing that can go wrong and you had a really thoughtful answer to that can you quickly walk the listeners through how you earned that trust with PayGlue or what your thoughts are on how transparent you want to be to show that the middleware that you've built is something that people can trust.

    André: Of course and I think the important thing is you don't have to trust me and you don't have to trust my infrastructure that is hosted in the European Union you can look in the code because PayGlue is open source of course not the things like support system like special needs in the dashboard like sign up but you can just go to our repo and fork it and test it yourself local on your mac for example or on your server directly and you can look into the code and check it yourself what we do and what we don't do so as you said what we see and what we don't see and I think that's the important part you don't have to trust me or my architecture in this point you can do it for yourself but when you say oh okay.

    I saw it. I like it it worked for me and I don't need a server for my own on this. I don't need this or maybe my blog is already on ghost pro or example on your magic pages services then of course you can't do it with this and therefore you can use then PayGlue and you don't need any special code just HTML snippets to get it done and as you said for example when somebody buys something and it doesn't work for an unknown reason for example we have of course in the back end in the dashboard for you there you can see what happens whereas X is granted or if there may be a maintenance problem with a webhook and you need to restart the webhook something else because when a lot of machines talk together sometimes the machine may be delayed and you get an error and then it's important that the customer don't buy new you just click on retry webhook and X is granted so it should be very easy for you as an end user and your blog.

    Jannis: On that note if something fails in that whole chain between the payment processor between PayGlue between ghost and in that entire chain if something does fail and before we started the recording you brought up a case where somebody bought something at 2am and then it failed what happens in that case now? Would they see an error on their side or would it just be a generic failure that they can't interpret?

    André: That is exactly what I talked about in my setup before PayGlue. I had set up an n8n workflow on my own server and because I grew out of Zapier and I grew out of Make and had my own server and wanted to play something and learn a lot and there a webhook failed on 2am and the customer said oh I don't have access and so I cancelled my subscription so I lost a happy paying member and I don't get anything yeah I didn't get anything. I forget to set up an SMTP in n8n to inform me when something doesn't happen because when everything works fine and smooth and every button is green happy life but when something doesn't work you need to do something and in PayGlue of course you get an information email to the customer hey something didn't work please log in and review it and then you see in the analytics tab exactly what process failed for example order payment failed okay maybe the payment on the credit card failed there you have a charge back you need to handle this directly with the payment provider access granted or not or maybe the webhook had a problem because of a maintenance or of a delay and then you can see it you can see what's wrong and you can replay.

    You don't want to go to your customer and say it didn't work you want to hit replay the customer get access granted get an email from your ghost blog hey welcome to our blog. The automation behind it should work and yeah because I had the problem that I didn't get any information because I didn't set up any SMTP information in my n8n setup lesson learned for me and I don't want that my PayGlue customers learn it the hard way and lose customers.

    Jannis: Been there done that. I think every founder has to go through that at some point that something is failing and you don't even know about it that's happened a few times at magic pages as well.

    André: Yeah the silent fails are the fails that are very critical often you don't see in everything every check mark is green but something doesn't work so therefore. I have a couple of steps inside PayGlue to inform the customer and if that doesn't work he can always set up a support ticket and I help out of course.

    Jannis: Perfect now one question I also sometimes get with magic pages now a little bit less often than a year ago is the fact that. I have been doing magic pages on my own you're doing PayGlue on your own what if you disappear tomorrow would that connection still work or would there be an actual issue for the ghost publisher and that's it.

    André: The nice thing on automations is when they are set up and they work after a test so they work permanently or if somebody changes something on some end and you need to do a little bit of code rework to make it done because a payment provider changed an endpoint or something else that might of course happen in the future but the system will still running and when it's failed you get a notification what failed and you can rework it but of course not when a payment provider changes an endpoint that needs to be done in the code.

    Jannis: I think that's something that. Is sometimes a bit underestimated in that sense that even if you or me end up in a hospital for I don't know a surgery or something the things will probably just keep running. Even though we are founder-led businesses the systems the computers are in most cases hundreds of kilometers away from us anyway they don't need to be pet all the time they don't need to have their good night story they will in most cases just keep running and when something fails that's usually when you as an end customer and notice it. I know that I've spent three weeks on the road in Scandinavia this year and have scaled down my involvement in magic pages a lot and nobody noticed and I bet it would be quite similar with most founder-led businesses.

    André: Yes and that's intended it should work and it should not only work when you stay on top on the server and pet it and it should work as intended and work flawlessly of course and therefore we're doing this of course now we don't have both time the whole life to sit in front of a Mac and watch the server what he's doing therefore there are some alarm systems when something doesn't work in the background or some provider changes something and as you said you did a great job when you were three weeks on a vacation and we filled your own battery and charged it up and nobody noticed when your system flawlessly works.

    Jannis: Building it for three years that's all the lessons I learned put into that basically. I remember having a vacation in Sri Lanka two years ago which also had a time difference to you know all the server infrastructure. I had in Germany and in that case. I actually had to get active it was a case where the server couldn't reach the internet because the infrastructure provider had a massive network issue it was not Hetzner it was a smaller server provider that I'm not with for multiple reasons now but that was one of the last points where I was sitting at.

    I think it was 2 a.m. In Sri Lanka in our hotel room on my laptop trying to figure out what's going on there trying somehow to call the emergency hardware support of that server provider from a you know Sri Lankan eSim card which didn't work and that was for me the moment where I said hey this isn't sustainable and since then magic pages has improved a lot and I think that every business has those stories similar to you you had an issue at 2 a.m. Where you didn't notice that something went wrong you built something around it and I think that's how lots of solo businesses develop and evolve over time.

    André: You said reliability and I'll give you an example Claude Code 20 bucks subscription you can do a lot of nice shit nice websites a landing page duct tape it together and you have a sort of product yes and but my company lives in Germany your company lives in Austria and we have some laws and for example a simple subprocessor list yeah or a data processing agreement yeah to give it to your customers yeah. I often see software new SARS products microSARS that look in the front very shiny and nice and you look in and didn't see any support email address or a conduct form or a terms or a legal or something else yes ghosts publishing can be an own business with own credibility for your text for your business and everything else and when you are controlled in Germany or another EU you need a data processing agreement with a scribble on it yes so it's a PDF document but it it turned out.

    I had a seven days around a week with special experts to make this document yes nobody will see it you only look in you want this document you can download it but these are the little things or do we have a subprocessor list does somebody ask me and I said yes. I have a list here but the list wasn't linked in the navigation my problem huh and I solved the problem the list was online and he could see and a lot of this shit yes then you can see from the outside if somebody does it mean. Really good or just duct tape something in front what is shiny so that there are little things that I'm looking for when I decide to work and to pay for a SARS or not to pay for a SARS.

    Jannis: Yeah I think that's a really interesting filter to have for any tool and I know that the EU gets a lot of hate for GDPR and data privacy and cookie banners I've learned from the guest in the last episode from Mark who lives in Australia that he barely sees any cookie banners because he lives in Australia and doesn't have the same regulation and I know that the EU gets a lot of hate for implementing all of this but it created a really interesting filter to see which businesses which tools actually take it serious and say okay in some cases and some points the GDPR might be overshot but on the other hand if you see that somebody takes care of it and has a data processing agreement has a subprocessor list has an actual data privacy policy that goes more than hey we collect data because you know we want to do it then you actually know there's somebody behind that tool that cares somebody that cares about the data of their customers somebody that has thought about these things at least even if the outcome is you know that it's a very relaxed data privacy policy somebody has sat down and thought about it and I think that's a very interesting filter you brought up on how to filter out tools that you want to use in your business and not.

    André: Yes because I own a business as you and I need a data processing agreement from another SaaS to work with it when I get controls of my company and that although a little bit of filter as you said and most people think oh I just put it in Claude or in ChatGPT and I get the real text and everything is fine but no that didn't work of course you can make a draft with it no problem. But yeah then you have to talk to experts and experts want money yeah you want money for your SaaS. I want money for my SaaS to make it sustainable and that is the interesting part a lot of people complained about why I don't have a free tier.

    Jannis: Why don't you have a free tier.

    André: We don't have a free tier because. I want to be sustainable and long in the business and the problem with free tier is you get easy 1000 users but 1000 users take a lot of resources from the server from the database and you have to pay it yes and that is not sustainable when you are not a big company with hundreds of thousands of dollars on your bank account I'm starting with this project and. I want to be sustainable and on a long-term run and the people who understand it say okay right I get it of course they have 30 days free testing you need of course to give it some time to test it out yes.

    Jannis: I think it hasn't happened to Magic Pages that somebody wanted a free tier because we have the advantage that people know that hosting costs money that there are a few free hosting providers out there. I know that 20 years ago or so I've used free hosting providers in Germany which always had very fun communities with them but where we saw some resistance was also when we removed the starter tier on Magic Pages earlier this year where we also said something similar we said the starter tier was meant as a starter tier it was not meant as I'm going to run my blog in the starter tier forever because our assumption was it lets you start and once you see some success you will upgrade to the pro plan which has all the let's say the tools and less restrictions that you need as a ghost blog that wants to sustain itself as well and what we saw is that the starter tier grew and grew and grew and people never moved off it and that just became very unsustainable for us as well because on the flip side people on the starter tier.

    Needed the most support which we happily give but there's also a point where you have to say hey if half of the support we have to give for the starter tier is just because of missing features that you would have on the pro tier then that's a signal for us that's a signal where we say. Clearly the starter tier didn't work as we intended it so we shut it down right now magic pages actually growing more than ever before now that we removed the starter tier and we see that people actually started upgrading from the starter tier to the pro tier but it was a scary moment for us as well to just remove a tier and.

    I remember in February talking to Sviatoslav who just joined in February to work at magic pages and saying hey. I have no idea what's going to happen when we removed the starter tier but. I want to do this because I see that it's not sustainable for us it turned out well but as you said we are running businesses and I think we're happy to give support both you and me we're happy to support people and the goals that they have with our respective tools.

    But we also know the charity where we can do that for free so I definitely understand why you don't have a free tier especially as something as critical as something that touches payments because if something goes wrong. I know that people on the free tier also want to have proper support and proper resolution to that and you can only do that if you know that you get something back in exchange as well.

    André: Exactly and the pricing was the biggest issue. I normally thought okay. I set a pricing table what feels good what feels wrong what would I pay and you make a sort of founding tier next to it easy peasy I thought and then with the closed beta. I get a lot of feedback so to talk to your customers is a very important thing not only with feature requests and bugs and what feels good what fits right. I internally thought. I have two prices yes a sort of big agency price and a sort of studio pricing yes so you can have two publications and you have enough to do to work with the two prices and then the most people said yes it's nice but when I start with a block.

    I only have one publication maybe one payment provider in your list that I like to use and I'm starting out and. I want to get some money and I go outside and write and write what do they do they don't pay such amount of money for it but the step to the pricing is too big to choose it because maybe they have no customer to pay their own bill so I step back. I thought what may be possible so I change the pricing table again in front end because of customer feedback. I already had and now. I have a sort of solo plan when we launch openly then when you have one publication you can do it very well with one publication because. I have more than one ghost blog.

    I need another tier on this maybe you are a sort of social agency and you have 10 ghost blogs to work with it yes and that was the question too what do I do when. I have my ghost blogs what do I do when. I have a team somebody from the accountant somebody from the technical and somebody who only writes so I didn't think about it and so now we have some roles and members inside the dashboard who can handle your publications and your payment providers. I didn't thought about this before.

    Jannis: Yeah also something we're working on right now because that's as you said you don't think about this before because you know you have one use case in mind when you develop your product and that usually comes from your own experiences because we both solved our own problems and as more and more people. Start using your product. You realize that the same problem. The same solution that you built can solve multiple problems and all of a sudden you need to think about well okay there might be a technical team member in a blog or in a publication that needs certain access there is somebody that does accounting for them that might not even be in the same company they might have hired a separate accounting agency for that how do you do that?

    Because in our case we're using Ghost's own built-in billing portal which only gives access to the entire billing stuff to the owner of the blog post do you then give the accountant that is not even part of your company ownership of your blogs that doesn't make any sense so as you say you talk to your customers and you build this step by step to figure out a way that's smart for you and that's also smart for them in a sense that they can use it the way they intended.

    André: Sustainability and long-term and the problem wasn't to make an admin role a technical role an edge role that's not the problem or a booking role the problem are security can somebody from bookkeeping close your account and when you change the account owner because your email address changed how do we do this? And that are some little things you think you do a little tweak and then you have three days of coding sessions. Testing, staging and deployment and then you say okay now you can change your role.

    Jannis: There's a lot of work in the background that's even as somebody that has built a product for three and a half years now. I sometimes forget and I think oh that's such a small change then I sit there for a week and in the end I'm just annoyed with everything because there's so many little things involved that you simply forget sometimes.

    André: And you get feedback for example a few people ask hey we use Mollie we want to use Mollie yes you have Mollie on your list it's a new provider okay I looked into Mollie and Mollie is special for e-commerce yes and it doesn't work quite well with web hooks and documentation and what we want to do with this and so I reconsidered it and said sorry actually we only have one customer who wanted to use Mollie they now use another payment provider of their choice but for one customer 14 days of development it doesn't work out in this system when a few customers want to take Mollie and use it then we can work it out of course so the problem is not to say yes the problem is to say to your feedback. What you get from the users or customers is to say no and why no. To understand it yes and that works quite well.

    Jannis: All right so you are not going to do Mollie as a payment provider which payment providers do you actually support right now apart from I think you mentioned Stripe Paddle right now Lemon Squeezy.

    André: We support Polar PayPal Paddle Gumroad Lemon Squeezy and Ko-fi Ko-fi is something from PayPal I think and we have Creem on it and Patreon and we have on the list for example for German users Digistore on Copecart and of course some special payment providers from the USA but they are still with an asterisk for planning and looking into it actually I'm focused on what works and what can be optimized and when somebody says hey you have something on their list when is it available we have an open roadmap we have an open changelog we're happy to talk to people when they are interested and often people ask hey Stripe yes of course.

    Jannis: We work with Stripe so also if I use something like Ko-fi or Patreon that means even though let's say those users they didn't start the process on my ghost blog they might have come through you know social media whatever saw a Patreon link somewhere have a specific membership there they would then be able to get access to your ghost blog and you basically say here's an extra perk for that.

    André: Exactly like in Patreon you have for example Discord yes and you grant Discord access to a server with a role and you do the same with your ghost publication and access and of course Patreon is an own ecosystem yes they want all your texts they want all your PDFs all your creative work and that doesn't quite fit with your blog that is externally but often people use it and I didn't know that before. I talked to my customer who had a Patreon and I found out a lot of people use it as workaround because it works quite well and they take the payments through Patreon and do the most stuff in their own blog okay no problem with that and when you buy in Patreon directly you get access granted and when you buy directly on a button on your blog yes you get access granted through Patreon because we have features not only connection to the ghost blog maybe that I forget to tell you can make a button or a pricing table and for example Ko-fi button or a pricing table with the three tiers from Patreon and then you can choose which product to map it because you need to map it and what happens next do somebody get an hey you're welcome or an opt-in email for your blog you can choose what you like and we recommend something and the most interesting part was in the first UI you need to manual copy paste your Patreon product ID into PayGlue to make it happen of course we reworked it now with every payment provider you have a sort of autofetch product when you make the connection we can autofetch the products and you can map this membership tier directly to this product from your payment provider like Patreon or Ko-fi or anything else.

    Jannis: Interesting how it all comes together André it's been super lovely to talk to you about PayGlue about your journey with developing it you were kind enough to give a discount code for Magic Pages customers that can be found in the customer portal. So if any Magic Pages customer wants to have a look at PayGlue and try that out there is an exclusive deal section there where you can also have a little discount code for PayGlue on that note there's a question that I always ask everybody in the end André is there anything that I should have asked that I didn't anything we forgot to mention.

    André: No I think we could have a long podcast episode. And because we are stepping from topic to another topic and normally long podcast forms. On the legal basis when you listen to legal podcasts because the topics they are quite special and I think our founding journeys that we talked about the problems and everything else it was very nice when there are some questions and people like to see me again to answer some questions they maybe not send me in my email inbox I'm happy to come back again and we should talk about then these topics at this time. I think we talked about everything.

    Jannis: Well thank you so much for coming on André for spending some time with us and as I said if anybody out there has the need to have ghost memberships with another payment provider because maybe Stripe isn't available in your country or you just annoyed with Stripe for whatever reason then have a look at payglue.io and see what André has been up to there.

    André: Thank you very much happy to be here and stay healthy.

    Jannis: Yes stay healthy and have a good rest of your day everybody.

    André: Goodbye bye.

    41 min
  • Building a Ghost site with no Ghost experience

    Mark Alexander is a Melbourne-based technology writer and the founder of Tech That Fits, where he reviews gadgets through one deceptively simple question: does it earn its place? He lives in a roughly 40 m² studio with his partner Colin — the creator of Never Too Small — so "tech for small spaces" isn't a category on the site, it's the whole starting point.

    Mark joins Jannis on his path to Ghost as a complete newcomer: evaluating Webflow and WordPress first, choosing Ghost for built-in memberships and newsletters, and then — with no prior Ghost experience — building his own custom theme, partly with the visual builder Fantasma. They get into creative homepage touches (a robot vacuum that drives around the page), a repeatable review framework, reaching readers through Google and Apple News, and the road from CES and IFA to Indiecon in Hamburg.

    Jannis: Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting and publishing on Ghost. I'm Jannis, and today I'm here with Mark Alexander, a Melbourne-based technology writer and the founder of Tech That Fits. Welcome. Good to have you on.

    Mark: Thanks, Jannis. Thanks for having me.

    Jannis: Mark, can you quickly introduce yourself for people who don't know you yet? Who are you? What do you do? And what is Tech That Fits?

    Mark: Okay, sure. I guess I've always been quite a big fan of technology. Not just what's new, but how technology changes the way we live, and Tech That Fits has become my creative space to explore that. I do this with Ghost at the moment, covering tech news and reviewing products, but I'm also developing some guides. I kind of want my site to help people get more from the technology that they already own, as well as make better decisions when it's time to upgrade. I guess with Tech That Fits, we're looking at how useful the tech is, whether it's thoughtfully designed and whether it's actually pleasant to live with. I live with my partner, Colin, and our dog in a small studio apartment.

    It's about 40m2, and in a small home, everything you bring to it has to really earn its place. You become very much aware of the space that something occupies and whether it actually solves a problem, or if you even continue to use it after the novelty wears off. My partner, Colin, is the creator of Never Too Small, which originally started as a YouTube channel, and lots of cleverly designed small apartments, and now it's expanded to different types of media. Colin's recently just launched a magazine, which explores more joyful ways to live and design through some of Colin's partnerships. I get exposed to a lot of new tech, and all this has contributed to the way that I judge technology, particularly how it's used in small spaces.

    Other publications touch on these ideas, but I wanted to make that kind of tech in small spaces a starting point rather than an occasional category.

    Jannis: The one thing that really stood out to me when I read through your site, your blog, specifically the About page, is the premise that you always judge tech based on the question, does it earn its place? As a tech person myself that has, just looking around, my office cluttered in tech? That is a premise that I should probably take a bit more serious. Is there a particular bit of tech that you've covered in the last couple of weeks where you say that definitely earned its place, something that really stands out for you that people should maybe have a look at?

    Mark: Good question. I guess it's easier to find a lot of tech that doesn't fit a place, especially a small space that me and Colin live in, and that's sometimes another way that the tech in our apartment is judged. It's very much judged by Colin, and whether it aesthetically fits our apartment. We have a lot of cool tech in our place, Samsung Frame TV, for example. It's great that when you turn it off, it just blends into the background, blends into our gallery wall we have.

    Jannis: I've seen the Samsung TVs like that in a lot of places, and I think the last place was actually an Airbnb in Bergen, in Norway, where we stayed, where at first you barely saw that it was a TV. So that is definitely something that I can see, especially in a small space that. It makes so much sense, I think.

    Mark: Yeah, we always get people come over and they don't realize it's a TV until we hit the button and turn it on to a TV.

    Jannis: Yeah, cool. You have decided to start a publication, Tech That Fits, and you ended up with Ghost. So now the main question that the audience probably has is, why did you choose Ghost? What was the journey to get there and have you compared Ghost to anything else on that way?

    Mark: Ghost initially wasn't the platform that I was going to choose to develop the website on. I did sign up to a few others to kind of test them out and to evaluate, and I guess I spent a few months on another platform, and I spent a bit of time just upskilling some existing web development skills I had. But the more I began to develop things in the background, ultimately I decided that newsletters and memberships were going to be quite important to the future of the site. When I looked back at things I was evaluating, I felt like, you know, Ghost has all that built in from the start.

    So I thought, yeah, that kind of ultimately helped me decide. And then I guess the same reasons every other Ghost publication has chosen Ghost. Ultimately you want to remain some kind of ownership over everything and flexibility. I think it's a great way with the membership system to get to know your audience, and. I want to develop a publication that listens to the feedback of my audience and use that to help me influence the development going forward.

    Jannis: Can you just share, if you want to, what platform did you evaluate before Ghost? You said you spent a couple of months there.

    Mark: So I spent a bit of time on Webflow and WordPress. WordPress I had used a few times before with a few different things. I ultimately found that to be quite clunky. And I can see from WordPress's development blogs, they're getting ready for another version, which is built from scratch. I decided against using WordPress. And the kind of platform I did spend a bit more time using and developing on was Webflow. But earlier this year, they actually took out their membership features and discontinued it for new customers. And they're kind of moving away from that. That helped me decide against using Webflow.

    Jannis: I didn't know that they discontinued that. That's definitely an interesting move, yeah.

    Mark: Yeah, they discontinued it from their kind of core package. And there's since been a third party app that has another subscription layered on top to add that kind of feature in.

    Jannis: Interesting. Yeah. The reason why we're sitting here today is that you actually replied to a post that we posted on the Ghost forum in regards to Indiecon, the publishing conference in Hamburg. That's happening in September. And you mentioned that you started freshly with Ghost and that you were building a custom theme. And that was the hook where I thought somebody that has just started with Ghost, somebody that then decided, okay, I'm going to build my custom theme. That is someone I definitely want to talk to because we've had voices on the podcast so far from people that spent a couple of years with Ghost already, people building tools on Ghost with us, Magic Pages, hosting Ghost, but never from somebody that had no Ghost experience so far and then jumped right into developing a custom theme.

    So can you tell us a little bit about that, how you started that, also maybe what prompted you to actually say, okay, I need a custom theme.

    Mark: One of the reasons why I saw your post on the Ghost forums was because I was using the forums as a way to look into other people's publications and as to how they were customizing things and seeing how people had customized the other themes in general. I guess I'm quite a creative person when it comes to web development and I ultimately knew that I wanted to customize the way everything was going to look. I guess that because I had developed the first version of Tech That Fits within Webflow, I had a bit more creative control over the way the pages were designed and I felt like just using one of the Ghost templates restricted me a bit. I ultimately know that once I've got a few more posts that.

    I want to have a more creative way to display them all together. For me as well, I wanted a way that I can showcase some of the tech from the never too small episodes into some of my pages without actually putting the content into my database or copying that content over. So, I've got some custom codes that are going to be able to fetch content that never too small hosts.

    Jannis: You also mentioned that you've used a tool that is in a way quite similar to Webflow. It's Fantasma, which is a visual page builder, a visual theme builder for Ghost. Can you tell us a bit about your experience with that? How have you used it and what did you like about it? What were maybe the struggles with it?

    Mark: Yeah, I was really happy once I saw Fantasma on the Ghost forums. I think one of the struggles I was having with using Ghost at the beginning was to customize the templates and to customize the way things are displayed, especially having different sections on my website, wanting to do some quite advanced filters on tags that are attached to posts. Fantasma was great just to let me quickly build version one of Tech That Fits website. Yeah, because I do have some more advanced knowledge of web development, I still go back to editing some of the code and adding in some custom integrations, which can be a bit troublesome with Fantasma, because if you make any customizations to that template, ultimately, once you change it again on their site, those changes are overridden when you press publish.

    Jannis: Yeah, that's the Ghost publishing mechanism that doesn't work well with uploading new themes and keeping some of the history there. So that's probably an extra step that you have in the publishing workflow there of having to download the Fantasma theme, applying your changes and then uploading it to Ghost, right?

    Mark: Yeah, I think for me, I've been trying to optimize the website to independently run, but ultimately, I want to push content to services like Google News and Apple News to help draw in an audience to use those sites as a channel to advertise on. Yeah, that's why I kept doing custom modifications to some of my code.

    Jannis: And what's the ultimate visual identity that you want with Tech That Fits? Is there some more customization that you have in mind or is it mainly the tags and the sections that you've added now that you wanted from the custom theme?

    Mark: Ultimately, I know that version one of the site is going to look very different to version two because. I am reviewing a lot of tech products. I am going to break those up into categories so they're a bit easier to find. And I think at the moment, it would look a bit silly to have a category page with just one or two reviews. So in the future, that's what I'll look at adding in. I also want to do just a bit more customizations that just add a bit more creativity to the site. Currently, on my homepage, if you're viewing it on a desktop, there's like a pop out cover of the latest Never Too Small magazine that appears on the side. I want to also add in some full kind of widgets that might appear around the side.

    Earlier today, like I'm just getting ready to publish a review on a robotic vacuum. I've just wrote some custom code that will have the actual robotic vacuum driving around the white space on the side of my website that will be clickable, that will take you to that post. Yeah, so I was just looking at creative ways to showcase some of my posts on different pages. The same for maybe linking to a podcast that I'm listening to on the side, having a bit of a retro iPod that you can click and it launches into a podcast I might be listening to. I also want to use Tech That Fits as a way to showcase other publications and link to other websites that are of interest to me and then hopefully of interest to the Tech That Fits audience.

    For ghost publications and just websites in general, it can be quite lonely as a solo editor. So I'm always a big fan of collaborating with other people, hence why I'm on this podcast with you as well. I think that's a great way to promote your site to different audiences. Somebody listening to this podcast might have an interest in tech in small spaces and then visit my site.

    Jannis: Yeah, and it's also just great to share your creativity in there and to just listen to the ideas that you have because now hearing you talk about a vacuum robot going over the white space, it's such an obvious thing that you can do when you review a vacuum robot. But to get there and to say, well, I'm actually going to take the time and build this just as a little gimmick, as a little creative exercise and as a way to capture somebody's attention. That is something a lot of people can learn from as well. And I'm really curious to see how that's going to work and what robot you're going to review because we have two at home. I'm not very happy with either of them.

    Let's put it this way. You also mentioned now that you are publishing all of that yourself, that you're solo publishing the articles. And the one thing I've noticed is that you have a very high frequency of publishing. Slow down now a little bit, I guess, because you've launched just a couple of weeks ago. But especially in the first couple of weeks of having your site online, you published a couple of times a week, like sometimes two or three times a week. How do you see that going forward? How do you want to sustain that? Or the better question is, what's the frequency you're aiming for?

    Mark: I guess my aim at the moment is to try and publish two or three reviews a week. And what I've been kind of developing at the start is a common framework that I can use to help me review these products. I think having a regular kind of format helps the audience have some kind of expectation as to how a product might be reviewed. And from an editorial point of view, like having that framework just gives you a template to stick to and focus on. And for my audience, if there's a robot vacuum, for example, having a standard format that I use to review those different products in that category, it makes it very easy for someone on my audience to compare two products together.

    Because the aim with Tech That Fits is that we can help our audience choose the product that we're going to fit in their place.

    Jannis: With the angle of making sure that it's tech that fits, you also mentioned that Colin always has to judge a tech product that goes into your guy's apartment. Does he also have a part in the review process then for Tech That Fits?

    Mark: If you read some of the reviews, there's a couple that have Colin's comments in the background. And I guess for us in our apartment, I'm the technical side of the relationship. And I know now from experience that I need to make sure that anything I implement in home works without too many quirks. I'm always testing out some smart home products, some lights that doesn't always quite maybe work how it should or doesn't integrate into the Apple home system that we use and it needs a physical switch, doesn't work with voice, things like this.

    Jannis: My wife, Mariia and Colin would have a lot of stories to share then because same here. Implementing lights, I think that the latest thing that worked well, we implemented a new light a couple of days ago that essentially turns on when at night you pass, so it illuminates the way to the bathroom. That went well. But. I remember one of the other things I implemented a couple of months ago already, which was a smart lock at our door. All of a sudden, the door was just unlocked all the time. And Mariia just said at some point, this is an actual security issue. Like, why is this not working? And I was just sitting there at my laptop and giving her the technical details.

    And she just said, still, I don't care why it's not working. It is not working. The door is unlocked. And that was for me that awakening moment where I also had that mind shift really of, yeah, like there is somebody else here as well that needs to live with that tech. So I can relate a lot to the sentiment of, in your case, tech that fits. And in my case, it's probably more like tech that just needs to work without having all the little bits and pieces around it that need to line up. So, yeah, I guess the two of them would have lots of stories to share.

    Mark: Yeah, definitely. I think living with Colin, one thing I've learned always to do is try and add in a physical switch where possible. I have a lot of those IKEA smart switches that will just turn things on and off. Yeah, they definitely help, but we still get randomly lights flashing because I've lost Wi-Fi signal or something like this. We're just in the matter of upgrading some of our smart lights from Wi-Fi bulbs to the matter ecosystem just to give everything a bit more stability.

    But also me suddenly deciding to run the beta version of iOS 27 so I can get access to the new Siri Assistant has kind of broke some of those things.

    Jannis: Yeah, for us, it was moving into this new apartment here, which basically has two floors. So we have some offices up here where I'm currently. And that meant all of a sudden you have a lot more surface area to cover. And especially with smart home, that got very interesting at some points where our smart home hub, which is Home Assistant in our case, is at the very, let's say, front of the apartment. And we are now here at the very back and one floor up. And some of the lights in here in my office, for example, just wouldn't work anymore.

    So it's those things where then the whole night all the lights were on up here because I just couldn't figure out how to bridge that gap. And the only solution was to turn electricity off in this room. So it's interesting stories like that with smart home sometimes, sometimes not so very smart.

    Mark: Yeah, I think an upgrade to Home Assistant is in our future. And that's definitely going to maybe be a series on Tech That Fits, that upgrade.

    Jannis: It does sound like a series, yes. And I'm very intrigued to hear how that goes in the end. You've also mentioned before Google News and Apple News, especially Apple News I've personally never looked into. Do you already see some results from that? Do you see that people come from Apple News to your site?

    Mark: I haven't yet finalized an integration with Apple. There's an approval process with them with Google News, though. Yes, you know, being Australia based, there's not too many tech blogs to compete with. So especially in posts where I'm writing about something in the tech space in Australia, it's very easy to rank and to get traffic from Google.

    Jannis: Cool, interesting. And how hard was the integration with that? Can you maybe just like on a service level, can you share what you had to do with your Ghost theme to get integrated there?

    Mark: Yeah, it actually wasn't very difficult for Google News integration. It just involved me within Ghost creating a custom HBS file. Yeah, which basically displays just posts from the last seven days. And I specifically get it to only show posts which have a special tag, Google News, so that I can control what content is sent out to that channel. And I guess for anyone listening who wants to do something similar, yeah, it's pretty straightforward. I dove deeper into the way that Google News algorithm works. And definitely, if you integrate with Google, they favor sites that regularly post. And in that XML file, they only want to see posts from the last seven days.

    So if you're not posting multiple times in a week, then it may be difficult to get any traction with them. Yeah, there's a Google Developer podcast I like listening to search off the record. Yeah, it's quite interesting. It does a bit of a deeper dive on how Google looks at your website and what's important to them.

    Jannis: Nice, I'll link to that in the show notes. And I'll see if we can put something together on the Magic Pages site as well for Google News and Apple News.

    Mark: Yeah, I'm happy to share with you what I did, and it's very easy to customize.

    Jannis: Cool, thank you very much. Are there any other distribution channels that you're looking at, or are you mainly relying on the news aggregators in that sense?

    Mark: Mainly on those two at the moment, I guess me, I have been looking at ways in which I can draw some traffic to my site. Another reason why I'm attending Indiecon, I find that a lot of in-person events, it's much easier to explain and talk about and to make connections with people.

    Jannis: Indiecon is a good keyword. While we've been emailing about Indiecon, you've also mentioned that you went to CES in Las Vegas, you went to Milan Design Week, going to IFA in Berlin before you go to Indiecon, or while you go to Indiecon, essentially.

    Mark: Yeah, in the middle of IFA, yeah, which would be interesting. I attended CES in Las Vegas earlier this year. That was pretty eventful and pretty hectic, I think. There was about 190,000 people attending CES this year, and IFA is like the European version of the same thing. And I think IFA this year, they're expecting around 220,000 people, so it's going to be busy. Yeah, I'm lucky that I've got a media pass. I get to go into the event a couple days early before the general crowd goes in.

    Jannis: Right, but you're essentially going from one of the biggest events in that space to a tiny publishing conference with probably 2,000 to 3,000 people in total, yeah. 2,000 to 3,000 people is still quite a big event, I think, yeah. I think for the indie publishing space it is, yeah.

    Mark: Yeah, and an international event. Like I see that Indiecon now have the list of everyone who's going, and yeah, it's quite interesting. There's someone else from Melbourne going as well, another publication. Yeah, so it'll be a good opportunity to network around and to get talking to other publications, and yeah, get some ideas on what's working for them, and that work well for me, and yeah, some collaboration, some maybe crossover.

    Jannis: Nice. For Indiecon specifically, apart from the collaboration, have you had similar events already? Smaller publishing events, do you know of any others that are similar to that?

    Mark: On my way to Germany, I'm stopping off in Singapore for a similar event they have. Colin is attending with me for that event. Never Too Small this last week has just launched issue 8 of the magazine, and it has a bit of a Singapore flair to it. So yeah, we're going to go to Singapore and attend a similar event, and yeah, showcase the latest issue of the magazine.

    Jannis: Cool, nice. So maybe you're never too small at Indiecon 2027 then.

    Mark: Maybe. I think I mentioned to you as well one of the attendees of Indiecon, the coffee table mags shop that's based in Hamburg. Yeah, they sell a lot of never too small magazines, and they have a lot of international prints. Yeah, so there must be something about Hamburg. Does it have quite a big creative scene? Have you been before?

    Jannis: Yeah, I've been to Hamburg a couple of times, and there is in fact, yeah. There's like a big creative scene, both in let's say in the arts, but also in like publishing, also in digital creativity. Lots of where I come from, web development, web design, and so on. Some of the bigger advertisements firms are also in Hamburg, or like the bigger ones in Germany. Yeah, it is. For me, if I look at Germany, having lived in Berlin, we obviously have a big creative hub in Berlin, where lots of things happen, and then personally, I would say Hamburg is like the second bigger one within Germany.

    Mark: Yeah, yeah.

    Jannis: I have one last question for you. Big picture. Where do you see Tech That Fits in the next couple of years? Where do you want to develop that to?

    Mark: There's been so many versions of Tech That Fits in my head, as to how it started and how things have developed. Yeah, I want to expand to some other types of media, potentially video. I would like potentially to interview some of the Tech That Fits audience on their kind of favorite tech devices. I think because I travel a lot with Colin, and I'm in the background of a lot of filming of the Never Too Small episodes, maybe there's an opportunity for me to interview some of the people in the homes that are featured in Never Too Small, maybe to have a deeper dive into the tech that exists in their background. Never Too Small focuses a lot on the architecture and the design, and you often see a lot of tech in the backgrounds of videos, because there's tech everywhere in everyone's houses.

    Yeah, I guess there's a bit of space maybe where I could interview people on how they use that tech on what's important to them, and how it fits into their space and their life and things.

    Jannis: That's really cool, and I sometimes watch videos, maybe not so much architectural videos, but other videos where people are interviewed and I spot things in the background, and I'm very curious about those things. I love to see that as well, just to see how people are integrating tech, especially in a way that it's not too obvious, or that it just fits into a space. So it sounds really lovely, and I'm looking forward to seeing how your site develops. Yeah, thanks. Perfect. Then, yeah, thank you so much for the lovely time that we spent together for giving us some insights into tech that fits into your world of publishing, where you come from, and also your insights into conferences and in-person conferences. Looking forward to meeting you, Mark, and have a lovely rest of your day.

    Mark: Yeah, we'll see you soon.

    Jannis: See you soon, bye-bye. Bye.

    Now, if this conversation with Mark sparked your curiosity, and you want to come to Indiecon in Hamburg as well, I've got good news for you. We still have a couple of tickets left, so just drop a quick email to [email protected], and maybe we'll see you in Hamburg as well. It would be really lovely to meet more of you, and also to have dinner with Mark, myself, and a couple of other people. For now, that's it, and yeah, thank you for listening, and goodbye.

    31 min
  • A Web Hosting Company at a Print Festival

    A different kind of episode — no guest this time, just Jannis. In about six weeks, Magic Pages is heading to IndieCon, an independent publishing festival in Hamburg that's almost entirely about print: magazines, zines, small books, art prints — things printed with ink on paper. Magic Pages is a Ghost hosting company, so the obvious question is what a web hosting company is doing at a print festival. That's what this episode is about.

    The short answer: print publishers and online publishers are fighting the same fight — for ownership of their work and a direct relationship with their readers, with no big platform in the middle. Jannis walks through what Magic Pages is bringing to IndieCon — a hands-on Ghost workshop, a small magazine called A Press of Your Own, and a community dinner — and the two things he most wants to learn back from the print world: how to talk honestly about fair pricing, and how a scene built on trust actually forms. Plus how you can win a ticket, and a seat at the dinner.

    Jannis: Hi, and welcome to the Magic Pages podcast, the podcast where we sit down with the people building, hosting and publishing on Ghost. Today is going to be a slightly different episode because it will just be me. I want to talk to you about something I've been thinking about for a while. In about six weeks, Mariia, our first customer and friend, Christine, and myself will take a train to Hamburg. Why? Well, because Magic Pages is sponsoring a festival called IndieCon. IndieCon is a festival for independent publishers. It's happening every year in Hamburg, and what might surprise you? It's mostly focused on print, magazines, zines, small books, art prints, things you can hold, things printed with ink on paper usually.

    And Magic Pages, well, if you're new here, is a web hosting company. We host ghost sites, online publications, newsletters, blog, that kind of thing. So the question. I want to discuss with you today is essentially why a web hosting company is sponsoring a print festival. What are we doing there? And more importantly, what am I hoping the people that visit us there will get from it? And a small teaser? We have a couple of tickets for the conference left, so stay until the end to find out how you can get one of these and also have Magic Pages pay for your dinner. Let me start with a bit of a deeper dive into what IndieCon actually is, because most people listening to this probably haven't heard of it.

    IndieCon runs from September 4th to 6th in Hamburg at a venue called Gleishalle. That's essentially an old freight hall by the harbor, so very industrial, very urban. It's been running for over a decade at this point, and unlike most bigger conferences, it doesn't have a big company behind it. It's run and organized by a small team who wanted a space where the independent publishing world could come together internationally, not just German speaking. And how it was described to me is basically that if you walk into IndieCon you'll see tables, lots of them, rows of them, and behind each of these tables there's a publisher.

    So someone who makes a magazine, a zine, a book, some of them are very small, some of them are one-person operations, some of them are a little bit bigger. Some print 200 copies of an issue, some print 2000, and there's a Portuguese photography magazine next to a German literary journal, next to a Ukrainian art publication, next to a food zine from Copenhagen. And what unites all of these people is that they made the thing. They decided what goes in it, they chose the paper, they chose the printer, they took the risk to print something that they believed in, and nobody at Meta or Google decided what would perform well or adjusted the design. Nobody quietly shifted the algorithm, they just made a magazine, wrote content for it, printed it, and brought it to this venue in Hamburg to sell it and talk to people about it.

    That's the atmosphere that sold me when I first heard about it. And. I am by far the least analog person you can imagine. Literally everything in my life is digital. It's not a trade show, there's also not a keynote speaker that used to, you know, work at Google or Apple or whatever that will tell you about the future of media. There's no exhibitors selling you ads or analytic tools or CRMs or anything like that. It's the kind of event where people talk about actually making things instead of growth hacks and funnels. And it's kind of scary thinking about walking into that as a web hosting company.

    So the real question is, what are we doing there? I've thought about this a lot, honestly, when the organizers approach the ghost community and they essentially just post it in the ghost forum, they also mentioned that there will be podcast hosts and newsletter creators, kind of the people we talk to every day at Magic Pages anyway. And that made me realize that the print world and the online publishing world are actually not that different. We essentially fight the same fight. We want to produce something that we have control over. We want to share something we're passionate about. And most importantly, neither side wants a big company in the middle of that relationship with our readers, not a print distributor deciding which magazines go out to which stores.

    No social media platform deciding which posts get shown to which readers. Zine maker and the newsletter writer are, in my eyes, two versions of the same person. They're just working with different materials. And that's where we're going. Not because we've suddenly decided, or because we think IndieCon goers are potential Magic Pages customers, we're going because the people at IndieCon are very similar to the people we talk to every day. They're just doing it, as I said, on another material. See, the thing is, when you sit with this for a while, you realize that the tools and the medium are just two sides of the same metal.

    When I wrote the script of this episode, I started with a very vague idea, and the more. I wrote and wrote about it, the clearer it became. Zine maker prints 300 copies of something. They sell them by hand at festivals like IndieCon, or they mail them to subscribers, or maybe they leave a stack at their favorite independent bookshop. They know their readers not as a number in an analytical dashboard, but as people. They probably recognize faces that keep buying their magazines in person, and they know which magazine goes to which shop. A ghost publisher, a newsletter writer, maybe an independent journalist, or a small magazine that publishes on their own domain already does the exact same thing digitally.

    Most of our customers have a couple of hundred subscribers for the newsletters. They know a lot of their readers by name, because those readers reply to the newsletters. Same thing happening on Magic Pages. When I send out a newsletter, I get replies from actual people, and I know those people by name. When you send a message to our customer support chat, we usually know you by name, because maybe we've been in touch before. Those ghost publishers, they pay attention to, cancels their newsletters and subscriptions and why. They know their community as people, and not as monthly active user numbers. Both of those publishers, the zine maker or the newsletter creator, they made an active choice at some point.

    They chose not to publish on Medium or Substack, or on some big platform that would give them a bigger audience, but take a cut. Instead, they chose a smaller, more direct route. They chose ownership, essentially. Because that's really what it comes down to, ownership. Owning your publication, owning the relationship with your readers, owning the ability to move if you need to move, and not being at the mercy of a platform that could decide tomorrow that your kind of content is no longer welcome. And that's what.

    I mean by the same fight. It doesn't matter if you're printing with ink or publishing to your own domain. The impulse is the same. I want to make this thing, I want to get it to the people who want it, and I don't want anybody in the middle who can take that away from me. And there's a second thing that connects those two worlds, which might be even more important. Both of them value the work itself more than the scale of the work. You don't start printing a small, independent magazine because you want to build a media empire. You do it because you love the thing you're making. You want to spread the message you're printing. And the same thing goes for a ghost publisher.

    The people I talk to who run small newsletters, they're not trying to reach millions of people. They just want to make something good and share it with the people who care and be able to keep doing it. And that's a completely different angle from the one that dominates most conversations about publishing right now. Most of it is about growth. How do you grow your list? How do you scale your operation? How do you optimize your funnel?

    But in my eyes, the independent publishing world, whether it's print or online, is often actively suspicious of that framing because growth isn't the point. The work is the point. And that's the kind of person. I want Magic Pages to serve. That's who Sviatoslav, Mariia, and myself are actively building this for. All right. So if that's the reason we're going, then how we show up matters in my eyes. I don't want to be that tech company that just shows up trying to make sales. Now, to be fully honest with you, we are bringing discount codes. Two months for free if you decide to try Magic Pages.

    But we're not going to push them. Nobody in our booth is going to try to close you on signing up for a hosting deal. The codes are there if you already know you want to try ghosting. Magic Pages happens to be the option that makes sense for you. If you leave the booth without one, that's completely fine because selling hosting was never the point of this. What we're actually spending most of our energy on is a workshop. It's called publishing online with Ghost from first post to paid members. It's going to be 90 minutes. It will be about 10 to 15 people. Everybody brings a laptop and by the end of the workshop, every single participant will have a real live Ghost site.

    Not a demo, not a mock-up, but an actual working ghost site with their own writing on it, their own newsletter set up and the basics of paid memberships in place if they want to go that direction. I want to say why we picked this format because it took us a while to figure out the right shape. We could have done a talk, stand at the front, you know, at a stage, explain what ghost is, answer questions at the end. But I don't think that talks land the way I'd like because people forget them. They nod along all the time and then usually, you know, when you leave a talk like this, you never actually try what you've heard. A workshop in my eyes is different because when you leave a workshop, you either have the thing you came to make or you don't.

    There's no middle ground, really. So by structuring it as this 90 minute workshop and hands-on building session, we are forcing accountability on basically ourselves, but also the participants. If you're in the room, you're building. And when you leave, you have a website. From what we've heard from the organizers, lots of publishers that come to the IndieCon Festival every year want to actually branch out into the digital world. And most of them, unfortunately, end up on Substack. And that's a pity in my eyes because the platform stands against the very thing independent publishers are trying to do, own what they create. And that's why the most important part of the workshop will be that the participants leave with a site that's theirs.

    It will be technically hosted on Magic Pages for the workshop just to fit everything into those 90 minutes. But Ghost is open source and a Ghost site is portable. So any participant can pack up their content at any point. They can take the subscribers, the settings, the content, all of it, and take it somewhere else at any time. They can host it themselves. They can host it with us. They can host it at one of our competitors. If somebody walks out of that workshop and never talks to Magic Pages again, but a year from now, they're running a small independent newsletter on their own domain, that's a win for me. That's the whole reason we're doing this.

    If we've helped one more person get to a place where they can publish independently, then it's all made sense for us. And that's what. I mean when I say we're not there to sell. I want to be there to give something, to show a skill, a little bit of the knowledge we've built running Magic Pages for the last three years, because. I want to be there to share that knowledge and enable people to not only be independent offline, but also online.

    But that's not all because apart from the workshop itself, we're also making a small magazine. It's called a press of your own, and it's essentially a collection of four short essays about what it means to have your own place on the internet in 2026. And crucially, it is platform independent. It's not about Magic Pages. It's also not really about ghost either. It's about the deeper question of what publishers should be thinking about when they set up their own web presence. There are four essays, as I said, and I'm just going to read you the titles of them, because I think that really does a better job of describing what the magazine is than what I could do now.

    The first one is called a press of your own, what the platforms keep when you write on them. And it's essentially about what sub-stack and medium keep from you, what you own, what you don't own, and what you're missing out compared to hosting your publication on an independent platform, whether that's ghost, WordPress, or anything else. The second one is called a short history of the homepage where writers used to live and where they live now. That one takes a step a little bit back, and it talks about this full circle moment where, you know, in the 90s and early 2000s, there were a lot of those personal homepages websites where people wrote about their day-to-day, and then we kind of took this side quest towards social media that we've been on for the last 10, 15 years.

    And now I think we're coming back to this full circle moment where people start realizing that maybe publishing on their own website, their own homepage might actually be worth it. The third one is called Five Places Worth Visiting, a short tour of publications on their own addresses, and that one introduces five publishers who already do what we talk about at IndieCon. It will also feature a couple of Magic Pages customers, also a couple of other ones that might not be publishing on Ghost at all.

    So it's really just like a little place to start where you can dig in and just see what cool things people are doing already. And the last one is called Writing That Lasts 10 Years, on longevity, archives, and what survives. Again, a counterpoint to the social media stream that just, you know, scrolls by, that just flashes by, where everything is this so-called short form content. And it talks a little bit more about longevity and making sure that your writing survives the next decade and even more than that. The magazine itself will be a small print run, so we only print as many copies as we think we can give to people at the conference. And it will also be available online on our website once the conference starts.

    So it's not there yet, but once the conference starts in the beginning of September, it will also be on our website. And last but not least, we are also bringing ourselves. So Mariia and I are coming. Christine, who you've met in the second episode of this podcast, is also coming. And a couple of Magic Pages publishers might show up there as well. I'm already talking to a couple of them. So let's see how that goes. And we're also hosting a small dinner on Saturday evening, September the 5th, in a small restaurant right next to the venue. It's called the Oberhafen-Kantine, and it's a 100-year-old institution, Hamburg. The dinner itself is, I think, where a lot of the real conversation will happen.

    And as I mentioned in the beginning, there is a chance to win not only tickets to the IndieCon, but also an invitation to this very dinner. So, yeah, that's our presence at IndieCon, a workshop, a magazine, a booth to talk to us, and a dinner on Saturday. But let's be honest, we're not just going to IndieCon to give something. I also want us to learn something, specifically, how can Magic Pages get better at what we do by spending three days with the people who've been doing the same adjacent thing for decades in the print world.

    Because that's really the frame. I want to hold on to. We host online publishers, the people at IndieCon are print publishers, and the overlap between what those two groups need is bigger than most people would assume. And there are things the print world has figured out that would make Magic Pages a better product, a better service, and a better company if we paid attention. Let me give you two specific things that. I have in mind. The first one is around pricing, but not the pricing of our own service of Magic Pages, but the pricing our customers charge their readers. Independent magazines cost quite a lot of money sometimes, 15, 20, sometimes 30 euros for a single issue, and the readers happily pay it, because it is usually worth it.

    Because a small audience can sustain something they love if you charge them what it actually costs to make. Most ghost publishers I know on the other hand are under price, they're afraid to charge 10 euros a month because they don't want to lose subscribers, so instead they charge smaller numbers and struggle to sustain the work, which then becomes our problem too as a hosting company, because a publisher who can't sustain their work is a publisher who eventually stops publishing, and a publisher who eventually leaves us.

    So what. I want to learn from the print world is how do they help each other to get comfortable with fair pricing? Is there a language they use, a framing that works, a set of examples they point to? Because if we can bring that to our customers, that's a real service to them, to help show them that charging what the work is worth isn't greedy. But actually what makes independence sustainable. It won't be a course, it won't be a marketing gimmick. I just want to be able to have better conversations with our own community about what it takes to keep going. And the second thing, and this one is maybe the one I'm most curious about, is how the print world actually builds these relationships in their world.

    Not just with readers, but with each other. The independent print scene is usually built on an infrastructure of trust that the indie web is still figuring out. Publishers know other publishers and distributors know other distributors, and that means that festivals like IndieCon exist because the community itself organizes them. Nobody made this happen top down. There was no big international publisher that said, well, let's get all the indie zine makers together. When a print publisher launches something new, they don't have to buy meta ads to find the first readers. They have a network of people who will vouch for them, distribute them and feature them, put their magazine on a shelf essentially.

    The online equivalent of that is still much thinner. Most ghost publishers I know operate in relative isolation. They might follow a few other newsletters, they might occasionally do a cross promotion, but there isn't really a scene, the way there's a scene in the indie print. And that's something. I want to think about for Magic Pages as well. What could we do to help our customers get to know each other better? Not as a marketing feature and not as a community in the empty tech industry sense, but actually in a way that Indiecon manages to do it, to have this real thing that brings real publishers into the same room, whether it's virtual or physical.

    So. I want to figure out whether there is a version of that for the people that we host, maybe an event, a directory, maybe it's also this podcast to a certain extent, maybe something entirely different. And we have talked about this within the Magic Pages team already, but quite honestly, we don't have the answer yet. So maybe the print world can help us figure that out to a certain extent. So yeah, those are the two things I'm carrying with me, not as rigid interview questions, just as things. I want to sit with and listen and see what shape to take when I get back home. Maybe I'll find the answers I'm looking for, maybe I don't, so who knows?

    But hey, let's get to the fun part. As I mentioned at the beginning of this episode, we do have a small number of IndieCon tickets to give away. I'd love it if some of you can come with us. And here's how it works. Just send a quick email to help at magicpages.co. Just tell us you'd like to come. You don't need to write anything elaborate, but it's obviously nicer for us to also get to know you a little bit. Entries close by July 26.

    So this is this Sunday, right after the episode airs end of day in Central European time. So technically 11, 59 PM Central European time. We will then draw the numbers at random from everyone who put their hand up. And since it's just a few weeks before the conference, we do trust that if you put your hand up, you'll also show up there. We'll have to do a dinner reservation and it would be pity if the restaurant prepares food that nobody will eat in the end.

    So if you win, we cover your IndieCon ticket. It also includes what's called the breakfast club. So you will certainly not start the day hungry and you'll also have a seat at our community dinner on Saturday. We cannot cover your travel expenses or accommodations. So have a look at that beforehand, please. And if you don't win, come anyway if you can, buy a ticket, come to the workshop, come find us at our booth, come pick up one of the magazines that we'll bring, because the whole reason we're going is to meet more of the people who care about independent publishing. And that includes everybody listening to this.

    So yeah, that's it for today. If you're publishing independently, whether that's on paper, online or both, you're doing something that matters. Not because it's going to make you a lot of money or reach millions of people, but because the alternative is that publishing keeps getting more concentrated and the people making decisions about what gets read have less and less to do with the actual work. Independent publishing, print and web is the counterweight to that.

    So thank you also for publishing your newsletter, your publication on Ghost or anywhere else. And if you've liked this, subscribe, wherever you get your podcasts. The next episode, we will be back with the regular format. I've got a couple of guests lined up already. And if you're coming to IndieCon or thinking about it, just send us a quick email and let us know. So see you in Hamburg and bye-bye.

    22 min
  • Better Search and Analytics for Ghost

    Chris Emunds — the solo developer behind Vellumine, a managed advanced-search and analytics platform for Ghost — joins Jannis to talk about the path from Jekyll and WordPress to Ghost, why he started building on top of the Ghost ecosystem, and the specific gaps in Ghost's native SodoSearch that Vellumine sets out to close.

    The second half is a conversation about the reality of bootstrapping software alongside a full-time job — Chris on treating the day job as a superpower rather than a constraint, what real users asked for in his beta, and how much ranking and semantic-search behaviour is really an expectations-management problem. They close on what John O'Nolan has said publicly about investing in the Ghost ecosystem — talk linked below.

    Jannis: Hi, and welcome to the Magic Pages podcast, where we sit down with the people building, hosting, and publishing on Ghost. I'm Jannis, and today I'm here with Chris, the solo developer behind the Vellumine. Chris, first of all, did I pronounce it correctly, and can you quickly introduce yourself?

    Chris: Yes. Hi, I'm Chris. Vellumine is correct, yeah. I am a software developer of around about 13 years now. I worked for different software companies all throughout business, like CRM customization. Later on, I specialized in AI and went into the computer vision field for some time, worked at a sports company where they needed computer vision. And now I'm working in, I think, what you would call PropTech, so software and AI for civil engineering applications.

    But as you pointed out, I also started my own little business called Vellumine, which is a managed platform for advanced search and analytics for Ghost.

    Jannis: Very cool. I want to get a little bit into what Vellumine is and what it does a little bit later, but maybe since this is a podcast for the Ghost community and most people listening to this are probably publishing on Ghost themselves. Can you tell us how you came to Ghost? How did you end up figuring out Ghost, working with Ghost, and then also taking the step from I'm using Ghost to, well, I want to build a tool and. I want to build a business on top of Ghost.

    Chris: Yeah, so I've always liked the idea of writing, writing blog posts, writing content for the internet. But I never quite enjoyed the experience of actually writing. I struggled a lot because, I don't know, of perfectionism. But a long time ago, I first started building a little blog on top of Jekyll and GitHub Pages, which had the nice benefit that it was free to get started. But the experience in relation to previewing and writing wasn't that great. I also then afterwards tried WordPress for a little bit, but found it to be quite bloated and also not the nicest writing experience.

    Eventually, I came across a friend of mine and I found that he was using Ghost as well. So. I actually clicked that little link that said Powered by Ghost and I ended up on the Ghost website. That was a couple of years ago. But I also fell into that common trap of confusing open source Ghost with Ghost Pro, the hosting service. At the time, I saw the price tag and backed off a little bit because I only wanted to start a hobby blog and didn't intend to make any money from it.

    So really only last year, by coincidence, I stumbled over Ghost again and took a bit more time to investigate what it's actually about. Because I heard that it was supposed to be open source, so I thought you must be able to self-host it then. It turned out you can. I just didn't see it at the time when I first came across it. So I gave it another look and just spun up a docker container to try playing around with it. And I really liked the experience of using the editor to write content. You could really just focus on your content and you didn't have to tinker so much with settings and configurations. It also felt very slick, not as bloated. So that's how I ended up with Ghost.

    Jannis: So you doubled around with Ghost. When did you look into the search? When did you figure out that there is a potential for maybe a little bit of a different search? And when did you decide, okay, this might actually be a good business opportunity for you?

    Chris: Yeah, so sometime last year, I also came across a book that kind of changed my perspective on this whole topic. I always was curious about entrepreneurship, starting my own software business. But I also always was under the impression that it had to be this big idea. You found your startup. You go hunt for venture capital. You hire a team and you disrupt some market. So I was always put off by this risk that comes with that. And like I said, last year I came across a book that changed my perspective on this a bit because it was talking about how you can also bootstrap a small micro SAS. And that's actually a much more sustainable alternative to going out and starting a huge thing with venture capital.

    Jannis: And you tell us what the book was?

    Chris: The book was Start Small, Stay Small by Rob Walling.

    Jannis: I haven't read that myself, but the story itself feels very familiar to me, yes.

    Chris: It's a bit on the older side now. I think it was published in 2010. But yeah, some of the parts are still relevant to just how you bootstrap a software business. And like I said, that was around the time that I also found my way back to Ghost. And so those two things just came together. I wanted to start my own software business. And since I still struggled producing my own content, I considered maybe I can take a more supportive role and create tools for publishers that don't struggle quite as much with producing posts to help them succeed and to provide value. And that kind of led me after some investigation into what are those tools?

    What do publishers need? How can the Ghost ecosystem maybe be improved a bit in that regard? That led me to finding out that the native search had some gaps that are sometimes an obstacle for serious publishers with a lot of content.

    Jannis: Can you tell us a little bit what those obstacles are? Ghost does ship with the native search engine. That's included for a couple of years already. So every single Ghost block that you have out there, unless it's actively disabled, is able to search your content. But what obstacles are there that you found?

    Chris: So the Ghost native search widget or application is called SodoSearch, right? And first of all, the major difference between SodoSearch and a search platform like Vellumine is that SodoSearch performs search in the browser on the client side. So basically, it downloads a bunch of posts, authors and tags from your blog and performs this search client side. That comes with some limitations. For example, it is very expensive to do full text search.

    So it's not easy to search the full body of your posts. Instead, SodoSearch really just searches the title of your posts and maybe the excerpt. So you can either set a custom excerpt or it just defaults to the first couple hundred words of your post. But if the words that your readers are searching for do not appear in the title or this excerpt, then Ghost SodoSearch will not find those posts.

    Jannis: Maybe to give an example, if. I have a post with the title, the best tomato plants, and in the content, I have a body that starts with in today's gardening journal of the month, we are talking about the new tomato plants, then the Ghost search itself would not find the term gardening, for example. You can find the post by the keyword tomato, but if you're just looking for a broader spectrum and you want to search for all the gardening posts on a blog, then with the native Ghost search, you wouldn't find that, right?

    Chris: Yeah, and there are also some other limitations. For example, you cannot search pages in SodoSearch, which is something that Vellumine does, so you can also index pages. And there is also one very fundamental limitation that becomes relevant for larger publishers, which is that Ghost search only lets you search the last 10,000 posts.

    Jannis: I mean, it makes sense on the one hand, because all the search is performed in a browser, so especially on, let's say, older and maybe smaller devices that can become quite an issue. But on the other hand, as you pointed out, for bigger publishers, that becomes a problem. I have had publishers reach out in the past that said, well, I've published my content for the last 20 years now, and I realized that there are maybe 15, 16,000 posts that they have published, because there are new sites, something that publishes on a very, very frequent basis. And I cannot find that one post that I know. I have published 15 years ago about a specific event. So how does Vellumine come in there? What do you do differently there? And what do you solve for those publishers?

    Chris: Yeah, like I mentioned in the beginning, Vellumine is a managed search platform. So basically, I try to make the setup as easy as possible. You sign up, you enter the name of your site, your Ghost Admin API key, and the URL. And then Vellumine goes and pulls all your posts, pages, tags, and author information into the search index. The search index itself lives server side. So that's fundamentally different from how Ghost Native search works.

    But it allows you to build an index that is like the index in the back of a book, where you can look up which word appears on which page, or in this case, which words appear in a given post. So this way, you are able to search much faster and also search through the whole content of your post and not only through title and excerpt.

    Jannis: And that then also lifts the limitation of just 10,000 posts, right? That means you can index all of that instead of just having the most recent 10,000.

    Chris: Yes, of course. You can technically index as many posts as you want, and the search should still stay fast. So we're talking about, in my experiments, like 50 to 100 milliseconds maybe, and that is while typing, right? So you already get results back while you're still typing your search query.

    Jannis: So apart from, let's say, the indexing side of things, indexing more posts, but also pages, and the fact that it all happens on a server, on your server in this case, not on a Ghost server, are there any other benefits of why you say publishers, mostly bigger publishers, should look at different search integrations like Vellumine?

    Chris: One big thing is, I would say, definitely the analytics. So you get analytics for what your readers are searching for. This includes popular search terms that your readers look up frequently, but also no-hit searches. So if your readers are looking for keywords and they are not getting back any results, Vellumine also surfaces that and shows it to you on the dashboard. So you can even go and get a feel for what are my readers looking for that they cannot find, and maybe you can even derive some content strategy or content ideas from that.

    Jannis: That is super interesting. Some of the listeners might know that Magic Pages also has an advanced search integration that is, in that sense, essentially a tool for Magic Pages customers where it's similar to Vellumine. And when I tested a new feature recently, which was also analytics and showing what people searched, it was super interesting to see that, and it did surface some of the things where people just pasted entire error messages that they received in our customer portal into the search. And.

    I remember sitting there and sharing my screen in one of our weekly team meetings and realizing if somebody is searching for a complete error message, that usually indicates that there is a problem with that, that there's something that we're missing, something that we're not solving for that. So it's probably a very interesting tool for bigger customers. Do you maybe have a typical customer where you say, that's somebody that comes to Vellumine to integrate that? I imagine it doesn't make much sense for people that just have a couple of posts, but who is your typical customer that you love working with or that finds extreme value in Vellumine?

    Chris: Yes, you mentioned it already, right? Vellumine is really an advanced search tool that you would commonly need once you try to build a business on your publication. And you already have a certain amount of posts. If we are talking about a handful of posts and maybe you're just doing this as a hobby, then you're perfectly fine with Ghost's native soda search. But some of the users that signed up for Vellumine, they have around 200 to 400 posts.

    So it's totally possible that in that range you might find yourself needing better search already. One of my users mentioned how they have difficulty finding their own content, right? They know there is a post where they talked about a specific thing, but they cannot find it anymore. And what you said about. The whole error message that someone might paste into the search field. In the best case, this is where Semantic Search would maybe come in if you're lucky.

    Jannis: For someone that doesn't know what Semantic Search is, how does it help in that case compared to, I just type... Let's stick with the example from before. If I type tomato, how would Semantic Search help me in that case?

    Chris: Yeah, so Semantic Search is something that came up. In the last couple of years because of the rise of LLMs, right? So what it basically does is it takes your content, your posts, and it shoves it through an LLM to turn it into a vector of numbers. And this vector is supposed to encapsulate the meaning of your post. So this is supposed to really distill what this post is about on a more abstract level than basic keyword matching, right?

    And then what you do in Semantic Search is you get the ability to find posts. Based on not just keywords, but meaning. So if there are posts that talk about similar things or even the reader's query, you can find those posts without the user having to use the exact words in this post.

    Jannis: As soon as you talk about LLMs and AI in that sense, does that mean that the content that I write as a publisher is then sent to a third-party company that would process that, or how does that work?

    Chris: In my world view, that should really only happen if you explicitly consent to that. So on that. I mean, your content is not sent to OpenAI or Google to be processed by ChatGPT or Gemini. Instead, we use local models. So because Vellumine is actually based on typesense, like Magic Pages Search, typesense has the ability to use models that run on your own servers. So you do not send your content to third parties. That said, you could totally. Have that possibility if you wanted to, right? This is not currently a feature on Vellumine, but this is something that can be done. For example, if you provide your own API key and you say, but I do want to use ChatGPT or the OpenAI interface to generate my semantic embeddings, that is something that could be done.

    Jannis: Cool. Another similarity that we both have is basically that neither of us has started their business, their project from the get-go and we both ended up more or less on the side of another job. So you already mentioned that you basically read a book. You've then decided you want to try building a tool that supports the ghost ecosystem from a fellow, let's say, site business entrepreneur. How is that going for you? How does that work for you? And how do you manage your work between your main job as a developer and running Vellumine?

    Chris: In regards to how it's going, it's still early days, but yeah, I was not ready to take the risk of quitting my day job and start a big thing. So this was really after I read that book an epiphany to me. I somehow, it seems straightforward, but I never really considered, oh, you can actually start a small thing, not raise millions in venture capital and then build something sustainable on that bootstrapping model. In regards to how that works next to a full-time job, of course, it's a lot of work. You have to manage your time very well. And when you start your own business, suddenly you're not just a software developer anymore who implements a given piece of software for your employer, but you are responsible for the whole pipeline, right?

    You're not only developing software, you are responsible for customer support, for marketing, developing new features, maintaining old features, managing your infrastructure, monitoring, all those things. But yeah, I chose this consciously because I wanted to, first of all, gain this experience and I always wanted to try and get out there, start my own thing and yeah, really put my skills to the test.

    Jannis: A sentence that I've always said in that regard, when people told me that, yeah, you should think about doing this full-time, I always told them that actually having a full-time job or. I mean, I've scaled my full-time job down a little bit now because Magic Pages has had quite a bit of success recently, last couple of years. But the one sentence that I always lived by is that my full-time job was always my superpower because it really gives you the ability to not think about rent coming up. It gives you perspective and it gives you maybe not finite runway where you say after 12 months. I need to have that business running because otherwise.

    I can't afford to live anymore. But yeah, I really see it as a superpower where having a job on the site while you build your business enables you to do so many things and ultimately also gives you the freedom to actually be closer to your end users, I think, to not have to report to investors and have to fulfill duties in that regard but it really makes sure that you're building something that is close to your users and that also serves your users in that sense. Speaking of users, how is the feedback going? So you've launched Vellumine and June. Before that, you had a beta, right?

    Chris: Yeah, I started the beta in February on the Ghost Forum. You don't know what to expect before so. I have this tendency to either be completely like this is not going to work. Nobody's interested in this, right? Or be on the complete opposite end of the spectrum and be super hyped and oh my god, someone posted a response on the forum. This is going to take off now, right? So yeah, the truth is probably somewhere in the middle.

    So it took a couple days for me to be noticed at all on the forum when I announced the beta but then I was surprised by how much people engaged with my post. And then I started the beta. I had a couple signups and that was also really the most valuable, right? The reason why I started the beta to get some first users to get feedback about is this really what you guys need? Because in the end. I want to provide or. I want to build a service that provides value. And if I'm just building a nice little add-on that doesn't actually fulfill your need then I might as well not do it.

    So I was lucky. I got some users that were really willing to give me feedback on a couple of things. It's small things like they were saying oh, if I look for this or that word. I was hoping that this post would show up but it doesn't. And then you investigate. Okay, why doesn't the post show up when they search for this word and you find out oh, it's actually because they use hyphenated words. And the way I set up my search index it regards hyphenated words as one word.

    So if you search for the second part of the hyphenated word you do not find the post. Small things like that but this is ultimately what makes or breaks it. And yeah, I launched the full product in June, basically on the 1st of June. Had a couple trial signups since then and even one or the other conversion. So overall. I would say it's going well. I just need to figure out how to maybe get in front of more people with this. Hopefully it's not annoying but I need to be on people's toes a bit and find out so what is it that you need, right? Please tell me. Can I make this product better for you?

    Jannis: You just mentioned something very interesting which was people coming to you with feedback and expecting certain posts to show up from certain words. Having built a search myself for the last one and a half years that is the number one reason of why I dig deeper into search all the time. And I find it very interesting to see how the expectations differ sometimes and it also showed me that search is such a complex product where you might enter one word. In our case this is for example custom domain. How to connect the custom domain to your magic pages site. And we have one article that is three years old and if you search for custom domain on magic pages you get lots of other posts that are ranked higher because they're more recent and they also talk about custom domains.

    How do you handle the balance between. I want to show the most relevant posts but also there's evergreen content might be a little bit older.

    Chris: So yeah that's a very tricky thing. I recently added some kind of advanced filtering panel that can filter by authors post or even date range. But of course if you don't know what tags you're searching for or what author you're searching for then this still doesn't help you. What I plan on doing is give users more control over how things are weighted in the search. So you could say some users expect that the title of the post is a lot more important than the body content. This is usually a natural thing but some user might want to have it the other way around. They have some other expectations according to how things are weighted in this ranking.

    So ultimately. I want to give users control over that for them to define it themselves. But it's tricky. How do you expose that to the user? How do you give the user this possibility without just letting them enter a bunch of numbers into some fields which still doesn't really give you a feeling what effect it will have on the search results. But yeah regarding that evergreen content there is a feature that. I have in mind which I don't know if we should talk about that already. It's entirely up to you. If you have posts like that and you know they are evergreen and people are constantly looking for them there would be the possibility in the future to basically make them pinned.

    So if a user searches for certain keywords like domain you could pin this post to the top and say. I want this to always appear at the top. That's currently not supported but definitely a thing that. I would consider adding. And another way. That you could approach this for example it doesn't quite solve the problem but in Vellumine you can also define common search terms and popular tags which get recommended to the people or to the reader who searches while the search bar is still empty.

    So they basically open the search bar and they are already presented with a selection of common search words which you can either define yourself or have them be driven by the actual analytics to guide your readers to the content that you think they should be able to find. Still doesn't quite solve this problem that maybe your post about domains gets buried the older it gets but I think with this pinning or curation feature this is something that could be solved.

    Jannis: It's super interesting because that's kind of where we came from from that perspective. So I think it was yesterday or the day before Sviatoslav who works in support for Magic Pages wanted to send someone that post about connecting a custom domain to their site on Magic Pages and we have those common searches set up in our search for example. And obviously one of the main reasons what people want to do with their site is to connect the custom domain.

    So that is one of our common search terms and he then clicked on that and I sent me a screenshot and just asked Jannis why is our post about connecting a custom domain the 11th search result and he also suggested the curation and he actually sent me a documentation of typesense that has a feature like this but it is a topic that comes up all the time for me at least in search. How are things ranked and how are publishers expecting things to be ranked and as you said you can always give more and more options to customize that but I think there will always be those little edge cases in there on how certain things might surface that people are not expecting quite the way they do surface.

    Chris: Yeah you need to think about how to develop this feature so that users would actually engage with it because what I'm seeing on my platform is that. I have a bunch of features that I launched with now like the dynamic suggestions feature where those common search terms or the popular tags are actually derived from the search analytics so it's based on what your readers are actually searching for and very few people use that.

    So somehow either because they didn't find it or because they didn't quite understand what this means and it's the same with synonyms and stop words and barely anyone is using that. First of all it can be a hell of a lot of work to configure all of your synonyms but so this is already a signal like nobody or very few people are using that why is that? Is it because they don't need the feature or is it maybe cumbersome to use it if it's the latter? Is there something I can do to make it easier for them? Yeah very interesting.

    Jannis: I do think that especially a platform like yours is built for publishers that have the need for something like this. Listening from the outside. I think that especially synonyms can be so powerful because we all understand different terms differently depending on which direction we're coming from which also kind of leads me to. My next question. Is it before that you need to kind of get on people's toes and get in front of four people? So I'm actually wondering who is your ideal customer? Who do you say would profit the most from Vellumine?

    Chris: So we talked about that. Basically both of us built a search integration right? The main difference is that your search integration is built into magic pages and I think the appeal of Vellumine specifically is that it's constructed to be a drop-in replacement of Ghost Native Search and this also means it's not important what platform you're hosting on. You could be hosting on GhostPro or self-hosting your blog or host it on whatever, DigitalOcean.

    Jannis: You could even host on magic pages. If you love synonyms that we don't have you could very well use Vellumine.

    Chris: If you want the slick dashboard with the analytics. Then you can use Vellumine by being on magic pages. So yeah but mainly for people that are on other platforms that I know you also open source your solution so technically people can set this up themselves but that would mean they need to spin up their own server where they run this type sense search engine and. That also means maintaining it themselves and that's typically not something that non-technical people like to do.

    So if you are someone who wants to focus on their content publisher that really wants to just focus on their content and you want better search. For your readers and to get analytics to know what your readers are searching for you don't want to deal with infrastructure and setting this whole search infrastructure up yourself. Then yeah Vellumine is the tool for you.

    Jannis: I just want to underline that there are different hosting providers there are different team providers and there are also different search providers now. It's a super interesting field and before we started the recording here we talked for quite some time about the different solutions and different issues that we also see and while the ghost type sense search that magic pages publishes is open source. I do think personally that Vellumine is a way better fit for most people that are on other managed hosting platforms because as you said somebody that posts their site on let's say Synapse Media, Ghost Pro, Midnight any of the other managed hosting platforms they do that for a reason they do that because they want to have their ghost blog and they want to write on that but they don't want to take care of all the technical stuff that's going on maintaining a server updating a server which as we saw recently with Ghost having security vulnerabilities as well is becoming more and more important and while I love our own search it is super cumbersome to set up you need to have a type sense server you can also host it with them but then you know that's an additional expense that you have there you need to have a webhook connection and so on so for people that do want to have a really really great search independent of where they're hosting it.

    I do think that products like Vellumine are amazing and you know I've played around with the thought of offering a hosted search somewhere but then I always came back and I said no we're doing one thing we're doing one thing really great and I really love seeing that the other people that do other things really really great and that we have those specialized tools in our ecosystem same as we have you know theme developers that are really great at developing amazing themes.

    Chris: yeah that's a good thing actually it's also my philosophy when you're developing a product right you should focus on your core and really make your product. Be excellent at this one thing. So yeah you already mentioned the headaches of setting up your own server of course you can also technically host it with typesense cloud offering although that gets kind of expensive quite fast so my highest priority was always to not break my user's search right ultimately your readers should get the best search experience they can have. I really took care to have enough redundancy and fail saves so that really your welcoming search experience should not break.

    Jannis: and you know what I just realized that stuff like this is. Obviously good engineering practice or best practice in the sense that you have that redundancy and that starts with in your case search it starts with the fact that magic pages services be it the database services or our compute is all redundant and that's where again I'm very biased in that but that's where managed services like magic pages and velamine have a big advantage obviously split all of those costs you split that cost among all the different customers and if I were a single customer setting up a typesense server or a database server in that sense. I would do one server because if I just run one block setting up three of those or whatever number it is it just doesn't pay off but.

    That also means on the other hand. I don't have that redundancy. So if I need to do maintenance on my self-hosted block and I need to upgrade my database or I need to upgrade my search server then that block is offline for ideally a couple of minutes sometimes if something gets screwed up then for a little bit longer so I love that philosophy of always building redundancy from the beginning so totally get where you come from that was also a big learning for me that it lets you sleep a lot quieter when you know okay even if that stuff breaks at 2am you know you can keep sleeping and deal with it in the morning because there are other servers it's obviously not great if that happens but it's better that one out of three servers breaks instead of one out of one.

    Chris: yes.

    Jannis: and been there than that in the very beginning it's not fun. Yeah. I want to look a little bit beyond search maybe and talk to you about the Ghost ecosystem as a whole because both of our businesses exist because we have found gaps Vellumine exists because you saw that the built-in search had gaps in how it served bigger publishers and how it served publishers that wanted to find specific content on the searches Magic Pages exists because hosting Ghost was either expensive or very technical in setting it up so is there any field where you say there is a gap where third parties can still fill that gap in that sense something where you say okay there is a need that you see with publishers in the Ghost ecosystem that can be filled or do you think that we kind of have everything covered now?

    Chris: We certainly don't have everything covered things can always be better but this kind of goes back to what I said earlier about do one thing well right. I have ideas of where I could take Vellumine and expand and put more and more features in it but then you have to decide is that still one product or is that a different product? So from the top of my head. I actually can't name a gap that would be a good niche to fill right now because. I would probably try to do that.

    Jannis: Fair, very fair.

    Chris: although also always need to consider your own, how do you say.

    Jannis: resources?

    Chris: Your own resources and not risk burnout so maybe it's not that good of an idea to have a full-time job and two bootstrap startups so let's start with one.

    Jannis: I haven't tried it myself to run two businesses on the site but I think one is fairly enough.

    Chris: What are you thinking in terms of a gap in the Ghost ecosystem?

    Jannis: Yeah. I mean I come from my own experiences and. I do see there is an image editor that is very proprietary where I don't think that there is like a business opportunity there but there's obviously something where the community can come together and provide the solution so hint hint that is also something that magic pages will do in the next couple of weeks an open source image editor for this but what I find super interesting is how whenever I think we've done it now we've created an amazing ecosystem there's usually someone on Reddit that jumps in out of nowhere and presents a new solution that you just haven't thought about there is you know Vellumine as a search engine there are e-commerce solutions for Ghost now that tap into the existing Stripe connection so that you don't have to spin anything else up but you just have you know like kind of like a sidecar to Ghost and you create this e-commerce online shop for that there are now solutions out there that add more subscription options other than Stripe to Ghost.

    So yeah I do think that this is a very interesting market and obviously it always has the risk involved of well what if somebody pulls that into Ghost itself so honestly same as for you. I don't have anything and mind from top of my head but I love the creativity of our community of always thinking. In a very creative way of making Ghost better and figuring out solutions that you know. When you look at it seems so obvious but nobody has ever within the effort of actually doing it.

    Chris: yeah definitely and you as a hosting provider you have a longer lever even than me because you can integrate more sidecars as you mentioned in your hosting offering right. I was thinking about possibilities of integrating the analytics that I mentioned before like the popular search terms. I have nice graphs for that that show you how those search terms were searched for over time and the no hit queries how I could integrate those maybe into the Ghost admin panel because that would be the most seamless solution for publishers right ideally. I want to have everything in one place now we have the Ghost Native analytics that show you which posts perform well and how your audience interacts with that wouldn't it be great to also have the search analytics right next to that turns out to be a bit tricky because from the outside.

    I have very limited ways of modifying your Ghost admin panel basically I don't have any you as a hosting provider you have ways of injecting stuff into the admin panel like you also did with your existing what do you call it customer portal but me from the outside with Palomine. I have no way of modifying that admin panel.

    Jannis: you know it's very interesting because we are trying to actually go away from that because we we noticed that it's kind of like this full circle moment three years ago in the beginning of magic pages. I had an external customer portal but then at some point. I figured out that it's actually quite easy to pull that inside Ghost so I thought this is great people don't need the external customer portal anymore they can have everything together and now we realized like half a year ago that there's actually so many things that we want to show people about the Ghost site that can be advanced analytics can be you know they're billing that can be something very simple as multi-site management that you simply cannot do in an integrated panel like this.

    So yeah we are going away from that we will probably still have like an integrated panel that shows the basic information but all the main information will be somewhere outside. I think that yeah we have all of the opportunities to do those things and what I always believe in is that we shouldn't overuse that you know site cards for example are perfectly fine but people still sign up for a managed hosting provider to get the experience of Ghost and if you modify that too much then you might confuse people but you might also just dilute their experience with Ghost and tailor it in a way that they don't expect too much especially when they come from somewhere else maybe.

    Chris: yeah. I mean the thing that you mentioned with multi-site management where this external customer portal really becomes relevant it's the same in Bellamine basically because you can also create multiple collections so one collection is the same as one Ghost site and the external dashboard just lets me create the experience for you to be able to manage all of those collections in one place at the same time I'm still aware that you want to focus on your content and your audience so that's why I built this convenience of having your search analytics sent to your inbox as an email once per week.

    So that you don't have to necessarily log into your dashboard to see the gist of what people looked for if you want to see of course graphs over time and compare what did people look for this Christmas and what did they look for last Christmas to maybe do some trend analysis then of course you don't really get around a dashboard like that.

    Jannis: yeah but I think that's that's a very interesting approach because you obviously have two different needs on the one hand. I want to dig into the data as you just said what happened last Christmas what happens this Christmas where do I maybe have a gap but then also realistically publishers on Ghost or on any platform their site is probably a tool for them and it's not their main business for most of them they have their head somewhere else sometimes so surfacing that as an email is very very smart because it's also the stuff that I look at sometimes so. I have an SEO tool that I never log in that I maybe log in like every like once every year or so but every week on Monday.

    I get an email from them that says hey like here's your search rankings and here are the keywords and here's how they moved a marketer would now tell me that I should act on that and I should log in and then fill the gaps and everything for me it's just super interesting to actually see how volatile that is so I love the idea of sending emails for stuff like that.

    Chris: and it's still opt-in right you have to explicitly tell you have to explicitly say. I want to receive this email.

    Jannis: which is the nicer way than my SEO tool which just does it. And I don't think I can opt out because it's an American tool. So yeah.

    Chris: yeah well that's also a point we didn't talk about yet right like we are located in Europe so all of my servers are also in Europe or in Germany more specifically so all of those things that you might be used to from some American tools where they send you emails without you asking for it that's not something that we are even allowed to do we need your consent for that.

    Jannis: yeah. I have one more question if you had the chance to sit down with John the founder of Ghost and you requested one thing from him in the Ghost ecosystem is there anything on your mind where you say Ghost should tackle that.

    Chris: so I cannot tell from first hand experience but someone told me that John gave a statement sometime last year when there was this whole WordPress thing going on that he said he wanted to invest in the ecosystem more right.

    Jannis: he said that in a talk he had at a conference that's on YouTube I'm going to link that.

    Chris: in the show notes that is where it would start right to get the support from the official Ghost Foundation that at least they give you some visibility if you are a serious business building on Ghost. You are providing a valuable tool and then they could start by giving you a shout out right to further the ecosystem to develop the ecosystem and just be like hey people look there is this cool new tool if you have this demand maybe this fills your need of course I'm daydreaming about you know in the Ghost documentation there is a page where it says if you need more advanced search try Algolia. So if I get to the point where it says if you need more advanced search give Vellumina a try then I did it.

    Jannis: well I see two points here you know Ghost does have a huge database of integration which are mostly right now say peer connections that they surface so I do think that there is a very good point of also showing dedicated Ghost integrations there that are purpose-built for Ghost and the other point about the documentation it might just be worth trying it because the documentation is open source now and anybody can submit PRs to a repository yeah but you know not from a. I want to have my tool promoted but from a community perspective of showing that sometimes there are more tools than what is in the official documentation. I always see that in the hosting field as well there is not just magic pages many of them and when I talk about hosting on our own blog.

    I usually try to show you know the diversity we have in there so it would be really nice to maybe try that and maybe. I want to do that today in the evening as a little evening project to try to see how far a PR can go for the search documentation whether we can get Valium in and some other search tools in there as well.

    Chris: I already feel very honored for you wanting to try.

    Jannis: the one thing I learned is you just have to try and you just have to see how far it goes.

    Chris: you mentioned this Ghost integration directory right they have a page where they list all of the officially. Endorsed integrations. I think at the bottom it says they are not open to submission they basically populate this page based on customer demand. So if there are enough customers on Ghost Pro let's say hey. I want to use this integration or can you give me a guide to how to set this up then they add this there right.

    So yeah I need to gain some visibility and get a bit established first I think before that happens and the other thing of course we didn't talk about that yet but one limitation currently is that you need access to your admin API to synchronize your content with Valium in some hosting providers. In their basic starter tier you don't get access to your admin API this is also the case on Ghost Pro so in that case you currently wouldn't be able to use Valium in and maybe back to that point when I reach that point of getting Valium in not on the custom integration tab in the admin panel but on the first party integrations then I did it at least that's what I feel like now.

    Jannis: then we're gonna have a party yeah. But yeah I you know. I do think that the official integrations page is maybe a different wheelhouse than to documentation and I do think that adding options to documentation is worth it because Algolia is not the only search that's out there there are you know other proprietary tools there are other tools like yours based on open source technology there are complete open source packages which also means. People need to stand up their own servers and everything and manage that if a documentation should show us the options and show us. In that sense if you need advanced search or if you need more advanced search options.

    That also means there should be variety of tools so let's see how far that can go we'll see in two weeks on the other hand. That also means if the integrations are based on actual customer demand if you want to see Vellumine in the integration tab then sign up for it give that a try and message Chris with all your feedback that you find.

    Chris: yes I'm always hungry for feedback yeah this is what drives the development of the tool really because. I have a vague idea but ultimately I cannot know what you need to solve your problem right.

    Jannis: and that's always the fun part figuring that out step by step and finding those really really niche use cases that actually make so much sense that you haven't thought about yourself and I love that about building a product and engaging with people on a daily basis. So yeah any feedback always send it to tools that you use. I bet that there are just very few out there that will not act on that or that will you know just jot it in a drawer somewhere and never look at that again so Chris is there anything that I should have asked that I didn't ask is there anything I missed anything that you want to tell people.

    Chris: I think we talked about pretty much everything at this point the only thing left for me to say is really what we already iterated on in the podcast if you feel like in the current Ghost Native search does not serve your needs you cannot find the content you're looking for or maybe you even get requests from your readers saying hey don't you have an article on this because I couldn't find it right or maybe you have more than 10 000 posts then give Vellumine a try and tell me what you think.

    Jannis: Chris thank you so much for taking the time for sharing about your tool and your journey how you've come to Ghost and Vellumine and yeah thank you to all the listeners for listening and have a lovely rest of your day wherever in the world you are.

    Chris: thank you very much for having me. I feel very honored to be on this podcast already after really just launching in the beginning of June. So yeah thank you to all the listeners.

    Jannis: it was my absolute pleasure and yeah you know. I do see that as this collaborative spirit that we have in the Ghost community you have just launched a product. It deserves to be heard by more people. That also means if you're listening right now and you're building something for Ghost and you want to share it with the world with the Ghost community then reach out. I am doing this every two weeks now sitting together with people hosting, publishing and building on Ghost.

    So if you know someone if you are building something yourself like Chris then just reach out and we'll schedule something to record the podcast together. So yeah as I said thank you for coming on the podcast Chris have a lovely rest of your day and goodbye.

    Chris: thank you too bye bye.

    52 min

About The Magic Pages Podcast

From the publisher's feed

Conversations with the people building, hosting, and publishing on Ghost