about the episode
about the guests
Brian Douglas: Welcome to another installment of JAMstack Radio.
On the line, we've got Matt Hanley from Ghost. What's up, Matt?
Matt Hanley: Hi, Brian. Great to be here.
Brian: Awesome. And then, Matt, you work for a company called Ghost.
But before we jump into that, I actually want to know who you are and sort of how you got here.
Matt: Sure. Okay. So, I am engineering manager at Ghost.
So, Ghost is a fully independent, not-for-profit organization building open source software for online publishing.
So we are a globally distributed remote team working with some big name customers like Buffer, OpenAI, DuckDuckGo, Troy Hunt, DigitalOcean, and loads more.
So a few big names. We run a lot of their blogs, their company blogs.
My personal background is a blend of software development and infrastructure.
And I came into the engineering manager role at Ghost through a, I guess, a series of happy accidents.
So, at the time I applied for an infrastructure engineering role, Ghost was at a bit of an inflection point starting to see more traction in paid newsletters.
So, for me, it was a case of being in the right place at the right time.
Ghost was maturing as an organization. People starting to build businesses and their reputation on Ghost as a product and a service.
So they were starting to look at how they mature and approach those things differently.
So, they were starting to think about an engineering manager role.
And at the time I applied they felt like I was a really good fit.
It felt like a really good fit from my point of view as well.
Both timing and personal fit. I also had some experience building and leading a small team of software engineers.
So, it just felt like a, like a great fit to be part of the next stage of Ghosts growth.
Brian: Yeah. Excellent. Yeah.
It's legitimately the next stage, because Ghost just launched 4.0 within the last couple weeks actually of this recording.
But before we jump into with what's happening with Ghost today.
I just wanted to point out that Ghost has been around for quite a few years.
It started as an open source project. It's now still a bootstrap project at this point.
Is that correct? That it's still a no VC back funding or anything like that.
Matt: Yeah. So, the way Ghost is structured is it's actually it's a not-for-profit.
So, we don't have any shares so we can't have any shareholders.
And, yeah, so it was launched back in 2013, I think, through a Kickstarter campaign run by John O'Nolan, our CEO, and Hannah Wolf, our CTO.
And at the time, it was really, it was an answer to kind of looking at the whole WordPress ecosystem, and asking, "What would a platform dedicated solely to online publishing look like?"
So, that's, that's kind of where it's come from.
And, yeah. it's built around a sustainable open source model.
So, ghost as a software, as a service platform, all of the revenue from that platform goes back into funding, building open-source Ghost as a product.
Brian: Nice. Nice. Yeah. I'm familiar with Ghost back when it first came out and actually I built a Ghost blog.
Was actually using it pretty heavily because my intro to blogging was WordPress, as well.
So, it gave like a very familiar experience.
What having this sort of um, the CMS, all as a backend.
I could sort of access to from my actual website from the slash admin command.
So, I haven't used Ghost since then. So, I'm curious.
Like, what's new at Ghost? I know you just, you shipped 4.0.
What does it look like in the product today?
Matt: Yeah, sure. Well, if you've not used it for a long time I would definitely recommend revisiting it because it's changed a huge amount even the last major release.
So, 4.0. Wow. That was a big release.
So, we've stabilized our native newsletter and paid subscriptions.
So, you can essentially deploy Ghost instance, link a Stripe account, and start monetizing an audience through paid newsletters straight away.
We've added native email analytics and a ton of other cool features.
We've improved the boot process recently.
So, what we're doing there is we're trying to move more to an architecture where the back end of Ghost and the front end are more loosely coupled.
So, eventually that will mean that we can run Ghost purely as an API without any of the front end site rendering elements.
Um, which is going to be really cool for using ghost as a headless CMS.
Brian: Very cool. And, uh. So, I'm curious, you're an engineering manager, how big is the Ghost organization today?
Matt: We are 21 people at the moment. I think.
That's split across kind of marketing and business teams, support, and engineering.
So, in terms of the engineering teams, that's also kind of split down into the pro team, which is the infrastructure side that manages and runs our software as a service.
Delivering Ghost as software, as a service model.
And then the product development teams further subdivided into, kind of, small vertical teams that have a focus on a specific product area.
So, we have a core team working on Ghost, kind of, as a framework.
And then we also have a members team and a publishing team focused on those areas of the product, as well.
Brian: Well, how does that sort work with the, as I remembered Ghost is open source. It's still 100% open source as well.
And how does that sort of, how does the team interact with the open source project?
Matt: Yeah. So, this Ghost as a product is fully open source.
It used to be a lot, I guess a lot more open source because Ghost used to do all planning and design transparently, as well.
But we've now moved to planning in private and developing in public.
So it's all completely open source and the way the team interacts with that repo is we have internal issues and then all of the development happens in the public repo.
Brian: Okay. Cool. And I'm just curious what are you using for the planning? Are you using Jira? Or something similar?
Matt: We're using GitHub. We have a separate repo in our get up organization.
That's private, though only has issues in it. So, it just means that we can keep all of the issues and all of the code history in the same place.
Brian: Yeah. Okay. That makes sense. So, I'm curious, like what's the, well I guess that's all private.
We don't have to go into details of like what you're planning in private.
But I, I've come from similar organizations too, as well. Actually, I work at Netlify.
And Netlify, it's source code is actually, is closed, but they do have some open source projects as well.
And there was like a decision to not open source the entire product because it wasn't, like, there wasn't a lot of value in open-sourcing the entire thing.
As well as, there could be a lot of push and pull when it comes to the community.
I'm like, "Hey we're going to move with this feature or this roadmap" I think the only company I can think of in recent mind is like GitLab.
Who gets a lot of comments and feedback on the stuff they do out in the open.
Um, whether it's like their potential IPO or, there was like a conversation about that, that people were like, "Oh this might happen."
Because it was cryptic and they could read through the lines.
Because every team meeting and everything is, like, open.
Well, I'm not sure about team meetings, but at least a company all hands are open. But--
Brian: With Goshi taking the approach of, you do have a strategy, you do have a product roadmap, is a product roadmap also close sourced and available and viewable?
Matt: Yeah. So, we don't have an open product roadmap.
All of that planning is done behind closed doors.
Matt: And the reason we do that is not, not anything nefarious or because we want to hide anything away.
It's purely because Ghost as a product is super focused on delivering value for a specific use case.
Matt: What we're getting is, you know--
When you're building an open-source product and you plan in public, you can never please everyone. You can never satisfy everyone's use case. It's just not possible.
So, what we wanted to do was cut through the noise of kind of designed by committee, in planning publicly.
Just bring that all in house. So, the community still gets the value from having this great product that we're delivering.
It just means that there's a little less transparency in kind of where we're taking the product. And what direction we're going in.
Brian: Yeah. That's fair enough. And like you mentioned, use cases, as well.
So, is the ideal user, someone who wants to have a blog or is Ghost more than just blogs?
Matt: It's definitely more just blogs. So, originally it started out really developer focused on blogging.
So, it was like the super focus, blogging, alternative to WordPress, at the time.
Matt: But we've come a long way since then.
And it's definitely now more about any kind of online publishing.
So, we are now focusing on paid newsletters. So, you can do native emails.
You can do native payments and subscriptions for those newsletters, as well.
It's a really great tool for any, kind of, online publishing independent journalists.
That kind of target audience. And moving a little bit away from the kind of hardcore developer experience
Brian: Yeah. You mentioned paid newsletter a couple times.
It's something that I've only recently saw people sort of pick up on.
I follow a Business Insider author and they do their normal Business Insider, which is behind a paywall.
And I think it actually it's called Insider at this point.
But it's a publication they basically talk about, you know, Silicon Valley and a couple other things.
Newsworthy things. But it's paywall ecosystem.
Their authors are paid by Business Insider, either contract or salary, I'm not really sure.
But I did notice one of the authors that puts a lot of open source articles out, they also have a newsletter.
Brian: And they happen to use Substack.
Brian: But I just sort of saw it fascinating that they were able to, kind of, share more than, I guess the stuff that probably, that kind of, gets on the cutting room floor.
Matt: Mm hmm.
Brian: I assume they're probably just throwing them into the newsletter.
But also it's a paid newsletter. And it wasn't like, you know, $5 a month.
It was like $50 to get access to the content. I'm like, wow, this is legitimate.
Like, people are actually charging some real money for content that's secret source, close source content.
Which, you know got my brain turning.
So, I'm curious of that newsletter. Because I wasn't even aware of Ghost, of that feature having the ability to newsletter.
But it makes sense because if, originally it was doing just blogs and I mean now it's doing so much more cause it's, you know, set up RSS or set up email delivery systems.
And it sounds like that's a pretty good feature to have.
Matt: Yeah, absolutely.
I think over the last 12 months especially there's been an explosion in the creative industry for paid newsletters.
I think people are starting to curate their own inboxes more and more.
And be more selective about the media that they consume.
I think it's really a natural shift from traditional journalism and editorial content into paying directly for value that you see in individual creators.
Brian: Yeah. Out of curiosity, do you have a Ghost blog?
Matt: I do have a Ghost blog. I'm not very active on it.
Not as active as I should be.
Brian: Fair enough. You don't have to share if, if you don't want to.
You can save it for the picks, if you really wanted to.
But I've actually, I've seen this sort of shift.
And, like, I've had a lot of conversations this year on this podcast, off the podcast, around, you know we've all had a lot more time sitting at home.
Whether you're an engineer or whether you're sales product, but there's been a lot of content creation that's happened in the past year, year and a half.
It's been insightful to see people kind of jump on board and say, "Hey, I'm going to start this blog."
Or, "I'm going to start this newsletter."
And I think the tools that are available to us like, it sounds like, Ghost is one of them as well to be able to have a newsletter and build an audience and grow whatever the thing you're trying to pitch or your influence.
It sounds like there, it's, there's a lot of empowerment that's happening with some of these new features with the, at least Ghost 4.0
Matt: Absolutely. Yeah. And it's, it's such a powerful thing to have a tool and have a voice and be able to build an audience.
And to be able to build a business, as well.
Around Ghost and around these other tools that are popping up to do a similar thing.
Brian: Yeah. I love it. I, there was a episode that we had on this podcast with DevLifts that the founder of that company they started with the email list.
Where DevLifts was essentially, you get a workout for developers so you can start, you know, exercising instead of just writing code.
And they were all approachable exercises that you got on the email list. You got the DevLifts email.
And he eventually migrated that entire product into an actual website product using JAMstack technology.
So, like, I love the idea of, like, just having an idea, and then shipping it.
Or shipping it as a prototype or email list.
I've done a bit of that in the last year. Not successfully.
Maybe one day I'll, I'll successfully get an email list.
I've been toying around with the idea of newsletter, which is why we spent some time on this conversation.
Because I've been growing my newsletter, and I'm doing the same thing that the author for Business Insider is doing.
Where I just share information. I just don't have a place to share, you know, any of my normal channels for work or on Twitter.
If I were to get some long form content and sort of expound on the nature of developer relations, it's what I've been actually speaking on.
That's what I've been using my newsletter for.
But I'm curious Ghost, would you consider a CMS?
Or, I don't want to pigeonhole into like the one little thing, but like, would you, how would you classify this, this product?
Matt: I would definitely classify it as a CMS.
I think it's, while it is focused on one thing and doing one thing really well.
Which is independent online publishing.
It gives enough flexibility to fit 95% of use cases for what you'd want to be doing publishing online.
Brian: Okay, excellent. Yeah.
So my next question is, like, how has it now-- Compare it to WordPress, like, that mission of having a better experience.
More cohesive, but also easy for developers.
Like, where are we at in that sort of, I don't want to say competition, but that, I guess that comparison?
Matt: Yeah, absolutely.
So I mean, the thing that really stands out about Ghost is we don't try to be a one size fits all CMS or website builder. We don't have plugins. We don't have custom taxonomies or post types, which kind of naturally means that we don't fit a lot of people's use cases.
And that's fine because there are some great alternatives out there.
But for someone looking to launch something like an online publication or newsletter, yeah, Ghost is pretty hard to beat.
It's super focused on the writing experience.
It's super clean. It's easy to use. It's fast. And it's just really nice to use.
And it just kind of gets out of your way in a way that something like WordPress doesn't.
A lot of the feedback we get is that you try building a site on WordPress, you're endlessly fighting with things in WordPress.
Ghost is just, it's all about the content and just getting out of the way as a tool.
Brian: Awesome. So, I wanted to take some time to also talk about the developer experience, as well.
Brian: So, with it being a CMS, like, how can folks get started with Ghost? Like what's the first step?
Matt: Okay. So, I mean by far, the easiest way to get started with Ghost is through Ghost Pro, which is our managed software as a service.
A lot of people find it easier to pay kind of $9 a month and have us run it for them.
But because it's completely open source, you can absolutely go to Github, download source, run it on your own server maintain it, everything else.
We have some awesome community contributors who maintain Ghosts CLI, which is our tool for installing and managing a Ghost instance on Ubuntu.
So you can do that all on your own server. We've got comprehensive docs on Ghost.org covering self hosting.
So definitely encourage anyone out there to have a play with it.
See what it's like. It's come a long way in the last couple of versions, especially.
Brian: How about the, does Ghost have, like, a plugin ecosystem?
So, if I wanted to build a solution that hooks into my Ghost blog or a newsletter.
So, what you can do is run Ghost headless and build a custom front end on top of it.
Quite common to use Gatsby or something like Next as a front end to Ghost using those SDK packages to pull in content and basically everything in Ghost is built on top of our own APIs.
So, the admin panel is built on top of admin API.
Our front end is built on top of the content API.
So, anything you can do in Ghost, as it ships, you can do with the SDKs if you're building a custom front end or anything like that.
Brian: Awesome. And I've actually exhausted my questions, but I'm curious if there's something that we missed in the conversation that you wanted to share with the listeners.
Matt: Uh. There 's probably lots that we've missed.
So, I think one of the coolest new features in Ghost 4.0 is portal, which is our no code solution for adding members functionality into anything.
Which is really cool because back in version 3, when members was in a beta version, you could use members, and you can have sign-ups, and you could have paid members, but you had to customize your theme to do it.
Now, it's just a setting in admin that you can enable this little floating button on your site, and you automatically get sign ups and payments and everything else straight out of the box.
So, that's really cool.
Brian: And, would the portal be under membership management too, as well?
Are you able to segment the members?
Matt: Yeah. So, we are actively working on that as we speak. So, great question.
Yeah. I would imagine by the time people are listening to this thing, it's probably possible or at least imminent.
So what we'll be doing is adding the idea of custom products.
So you can set more than one tier of membership and then you'll be able to segment those members based on the kind of membership tier or labels within Ghost admin as well.
So, you'll be able to publish content on your site specific to a membership tier and also deliver email newsletters based on memberships here as well.
Brian: Yeah. What about importing folks from other newsletters, as well?
Like, I already have a setup newsletter and maybe I want to try ghost because now I'm super impressed because I didn't know this existed.
Is that also a feature?
Matt: Yeah. So you can import members. You can even import paid members.
So, if you're coming from something like Substack and you want to migrate over.
We have full support for that.
So, you just get your export from Substack or wherever it is you're coming from.
And then you can import those members, and we will, or Ghost will line up the paid members from your Stripe account inside ghost, as well.
So yeah, we've spent a lot of time working on the import process to make it as easy as possible to migrate.
Brian: The one thing I did want to ask too, as well. Because I just realized I didn't ask.
And the reason why I used Ghost in the first place and migrated from WordPress, was the beautiful template that I, I started off with.
Brian: So, I want to know where are we at with templates? I'm sure it was what got me attracted to it originally.
Where's the best place to find Ghost templates and get my feet wet?
Matt: So, with 4.0, we just launched an official marketplace.
Brian: Oh, Nice.
Matt: And last year we also acquired one of the top theme agencies for Ghost.
So, with that, we are onboarding all of those, all of those premium themes and releasing them as open source.
So, we now have a collection of official themes that you can go ahead and install.
We've made the install process themes so much better in version 4.
It used to be the case that you had to upload a zip file to install a theme.
But now you can go straight in admin, you can click a button, and it will install the theme for you straight from Github.
Brian: Excellent. Yeah. I need to, uh, try it out.
Beause I have a lot of ideas. I've not had a successful idea, yet. But if I had a lot of ideas.
So being able to leverage a theme real quickly, throw it up on a Ghost site, maybe have it hosted as well.
It's kind of checking all the boxes I'm excited about. So, cool. Yeah.
So, I wanted to round up the conversation with picks.
These are JAMpicks. Things that we're jamming on. These could be music, food, movie related.
Actually, I have not watched a lot of movies, as of late.
But I'm curious if you had any picks up your sleeves for us.
Matt: Uh, yeah. So, back in January, I decided to teach myself guitar.
And I found this awesome website run by a guy called Justin Sandercoe. The website is justinguitar.com.
And it's basically a collection of free videos and there's structured course to help people on the guitar learning journey.
And the thing love about is it's all free. It's done on an honor system.
So, it's kind of a pay you what you want basis.
And I just love the idea of people using their skills to give value to the world, unconditionally. And then trusting that the world will repay them for their efforts.
It's just a-- it's a super nice idea that really resonates with me.
And a lot of what we're trying to do at Ghost, as well.
Brian: That is, pretty awesome. How long have you been leveraging this?
Matt: So, I started teaching myself guitar using this back in January.
So, I, I've probably been, probably like two and a half months in.
Brian: Okay. And are you shredding at this point?
Matt: Not quite shredding, no. I can play some basic songs, badly.
So, I mean, I think I've made pretty good progress for a couple of months.
Brian: Yeah, I'm a, definitely going to check it out.
And listeners, if you're interested in learning guitar, justinguitar.com.
I have a pick and well I've got two picks. So I've got one, it's Next on Netlify.
If you didn't know, you could actually get your next JS site on Netlify pretty easily.
I did a video back in October on how to do this on my YouTube channel.
There were a lot of steps involved and recently Netlify as of March 2021 shipped a one step solution, which is, they infer a lot of the next JS stuff for you.
Somewhat of what Vercel is doing. And it just works. Which is nice.
So, if you're interested in getting an illusion of service head rendering on Netlify cause like we do know that Netlify's not running your servers for you, but they're doing this serverless function injection thing at build time.
It all does it by magic. So, if you have a Next.js site, let them test it out and let them know if it doesn't work or if it does work.
I've been doing that with my, my Next.js sites.
Because I'm a big Netlify fan. So, trying to see what works and what doesn't work.
Because I do have one complicated site on Next.js that I have low confidence that it will work because I'm doing way too much in the build.
I don't know. Have you played around with Next.js, Matt?
Matt: I haven't, myself. No, I, I was discussing Next with one of the engineers at Ghost earlier today actually.
And he was showing me how he was doing incremental static generation with his Ghost back end and Next front end on Vercel.
So, that sounds like a really cool--
Brian: It's amazing.
Matt: Cool thing. So how, can you do the incremental stuff in Netlify, yet?
Brian: Uh, I honestly don't know. Because I'm not even doing incremental stuff myself.
It would definitely improve the performance of my site, for sure.
But yeah, I haven't even got that far in Next.js.
I've only started tinkering with it last summer and got a couple of sites, like again, quick ideas that I thought was going to be explosive and no one used it.
So, I haven't really had a need to care about performance if no one's actually logging into the site.
But I'll get back to you on that. I think I should do a deep dive and sort of try to check this out.
And kick the tires more in Next.js.
Matt: Yeah, that sounds great.
Brian: I did have a second pick, which I sent out a tweet last night.
It was like, I did this thing where I wrote a tweet and like, I think I wrote it like really late at night.
And then I was like, uh, I won't send it now. I'll put it in draft.
And I forgot about it. Like it was probably in December.
So, it must have been months that it sat in my drafts for tweets.
So I ended up sending it last night and, like, it was explosive.
Where I had a startup idea of if you could run an app that goes to your calendar and randomly adds vacation days.
Beause like my problem is I don't really think about taking vacation until like, someone's like, "Hey you didn't take vacation."
Or my wife's like, "Hey, you need to take off because we have to do this thing."
So, it'd be cool to, like, every now and then you would just sort of, your calendar shows up and you have a vacation day.
So, I tweeted it out last night and it got a bunch of likes and retweets.
But what my pick is actually the Shortcuts app on apple. So, iOS.
And someone actually responded and wrote a shortcut where they can automate, I didn't even know about this app to be quite honest, but you could automate portions of your iPhone to do things through apps and stuff like that, or automate your lights through HomeKit.
And they built a shortcut to basically open up your calendar.
It opens up a forum, asks you how many days you want to take off and it up until when.
And it'll randomly throw days on the calendar that you're off on the weekday.
And, it worked so well that it, today is one of my days off. But I didn't take it off.
But that's beside the point. The Shortcuts app, it seems like on iOS that I kind of want to dig into it and see what this is all about.
Because I'd never opened it or cared to until just recently.
Matt: Yeah, that sounds cool. So, uh, I think has a Mac OS has a similar thing, right? With Automator?
Matt: Something like that.
Brian: Yeah, very much the same thing.
And another tool that I probably use like once or twice to do like automation of changing file names or something like that.
Like years ago, probably, like, 2008 was when I did it?
And haven't even touched it since, but automation for the win.
Matt: Yeah. That's a super cool startup idea by the way.
Brian: Yeah, it is. I was hoping that someone would run with it.
There was one company that responded and their, it's a calendar app that blocks out stuff on your calendar to take back your time on your calendar or something like that.
Anyway, folks we'll get the show notes. I've got the tweet in the show notes.
So, if you're interested in looking at that thread by all means. Take it, run with it.
And let me know if you need the investment.
But with that being said, before I start pitching myself for more, more angel investment. Matt, thanks for the conversation.
Thanks for catching us up with Ghost and letting us know about the newsletters.
The 4.0 launch. The theme. Soon as we're off air, I can't wait to dig into those and see all the cool themes that are out there.
And listeners keep spreading the jam.
Participate at DevGuild: AI Summit
Join us on October 19th, 2023 for a community summit with 200+ others like you coming together to discuss how AI will change the face of software development.
Content from the Library
Developer Love Ep. #15, Learning in Public with Shawn “Swyx” Wang
In episode 15 of Developer Love, Patrick speaks with Shawn “Swyx” Wang of Temporal. They discuss divorcing your identity from...
O11ycast Ep. #21, Learning Systems with Jessica Kerr
In episode 21 of O11ycast, Charity and Liz speak with Jessica Kerr. Together they explore complex learning systems, how to view...
Jamstack Radio Ep. #51, Community Over Code with Shawn Wang of Netlify
In episode 51 of JAMstack Radio, Brian joins Shawn Wang to discuss his role as a developer experience engineer at Netlify, the...