The Changelog: Software Development, Open Source - Ghost Blogging Platform (Interview)

Episode Date: September 26, 2013

Andrew and Adam talk with John O'Nolan about his open source blogging platform Ghost written in JavaScript (Node.js), and how he and his team are working hard to create this beautifully designed platf...orm dedicated to one thing: Publishing.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome back, everyone. This is The Change Log, where members support a blog, podcast, and weekly email that covers what's fresh and what's new in open source. Check out the blog at thechangelog.com, our past shows at 5by5.tv slash changelog. And you can subscribe to the Changelog Weekly. It's our weekly email covering everything that hits our radar in open source. You can subscribe at thechangelog.com slash weekly. This show is hosted by myself as well as Andrew Thorpe. Andrew, say hello.
Starting point is 00:00:37 Yo, yo. Yo, yo, yo. This is episode 105, man. It's crazy. It's crazy. It's just mind-blowing. Mind-blowing. We're going to run out of numbers eventually. I think we might. We might.
Starting point is 00:00:51 But today we have an awesome guest on the show, John O'Nolan. John, you run this really cool thing called Ghost. So John is the creator of Ghost. He's on the show to talk to us. So welcome to the show, my friend. Hello. Thank you. Thank you for having me. Yeah, man. So before we kick off the show, I do want to mention our sponsor for this show, Digital
Starting point is 00:01:14 Ocean. They're a really awesome cloud hosting provider. They've come on to sponsor the ChangeLog for the next, I think, next three shows. We're pretty excited to have their support. They are dedicated to offering the most intuitive and easy way to spin up cloud servers. You get a cloud server up and running in 55 seconds, which is an astounding number. It's pretty quick.
Starting point is 00:01:37 Pricing is really affordable. It starts at $5 per month. You get half a gig of RAM, 20 gigs of SSD drive space, one CPU and one terabyte of transfer and they feature a pretty awesome uptime sla which is 99.9 i don't think you can get any more can you enter it's like that's unheard of i think three three nines three nines the golden the golden egg the golden egg that's the unreachable mark that people aim for nah i see i see but they've got uh data centers in New York, San Francisco,
Starting point is 00:02:07 as well as across the pond over in Amsterdam. Really awesome interface and API to make your own version of their interface if you'd like to. Who is this? I'm sold. Digital Ocean, digitalocean.com. Oh, that's cool. I was talking to them today. No way. About what? Hosting?
Starting point is 00:02:25 Yeah, they're going to set up an auto-installer for Ghost, which is very nice of them. No way. So you're integrating with them. So they seem like very cool guys. Nice. That's good. So everyone should buy their stuff. Yeah. Let me tell you how, then, since John's basically sold everyone on this. We have a $10 promo. When you go to sign up for your services with DigitalOcean, when you enter your credit card information, on that page, there's a promo code field there.
Starting point is 00:02:52 We're going to enter the changelog104. That's the changelog104. You'll save $10. Members, at the tail end of the show, I'm going to mention a special thing for members of the changelog. As you know, we are member supported. So if you are a member, you can go log in, go to slash benefits, the changelog, and you actually get a $20 promo. So if you're sold, become a member, support us, and get an extra $10 off your DigitalOcean services. But go to DigitalOcean.com, sign up today, use our code, enjoy that super fast, awesome cloud hosting service.
Starting point is 00:03:28 We love you, DigitalOcean. Thank you for your support. But let's get done with the show. John, what's up, man? How are you? I'm very good. I'm chilling, as they say. Chilling.
Starting point is 00:03:38 As they say over in America. Yeah. I'm just trying to fit in, guys. Yeah. Well, John, why don't you kind of start off by giving us just an introduction, background, who you are, where you come from. So my name is John O'Nolan. We covered that part already. I'm a designer primarily.
Starting point is 00:03:55 I also code on the front end side of things. And I guess the most relevant part of my background is that I spent two years working as the deputy head of UI for WordPress as an open source contributor, as well as doing a lot of freelance client work, same old, same old stuff. And about a year ago, I came to a point where my frustrations with WordPress and building blogs with WordPress, so really simple blogs or not using the full extent of WordPress's functionality. Got to a point where I decided to put some of my ideas down on Canvas, as it were, in a Photoshop document. And I put that into a blog post, published it hoping to get a couple of thousand views, maybe that would be cool. But the front page of Hacker News and Twitter later,
Starting point is 00:04:48 and about a quarter of a million page views in the space of a couple of weeks, a little thing called Ghost was born. And I guess that's why I'm here today, talking to you lovely people. So Ghost. Yes. What is it? So Ghost is a new blogging platform. It's built entirely in JavaScript, just to be cool like everyone else these days.
Starting point is 00:05:09 And it is aiming basically to stick blogging back to its roots. And the implication is that all existing blogging platforms fall into one of two camps. They're either closed-source proprietary, hosted and locked down, so that would be Medium, Subtle, or Tumblr. Or they used to be open source blogging platforms that have now evolved into fully-fledged content management systems, which would be the likes of Drupal, Joomla, and WordPress.
Starting point is 00:05:37 And Ghost is trying to still be open source, but be only about blogging, and have a real focus on design and usability to make it appealing to consumers as well as developers. So a lot of what I read as going through the, you know, ghost, I don't know what the best way to say it, the atmosphere. No, what's the ghost community? I read about a lot of people comparing it to uh wordpress right and so wordpress obviously as you said and it's no uh it's no secret that i don't know if i would say you're not a fan of
Starting point is 00:06:10 wordpress or you're not a fan of using wordpress for writing or what but when you read through it it's no secret that um ghost is directly kind of aimed at the taking almost taking a shot at what wordpress has become and so it appears mean, from the outside looking in, Ghost is a writing platform. It's just a blogging service. And so it more closely resembles Subtle, Medium, Tumblr, those types of things. So what is the reason that you kind of target your,
Starting point is 00:06:41 I don't know, talk more about WordPress than about the other platforms? I think because it's most comparable, at least in terms of technology. I see subtle, medium, these kinds of things, more social networks. You know, you sign up to them, you get a profile, whatever company it is decides on the design of your site and what your URL structure is and whether or not you're allowed to back up your data or not. Whereas an open source platform traditionally, most of the time you run on your own servers, you have access to your code,
Starting point is 00:07:13 you can install your own plugins, your own themes, whatever. And in that sense, it's far closer to WordPress or any open source alternatives than what it is from a user-facing point of view. From a user-facing point of view, it's definitely much more similar to Medium or Tumblr. But what people, I think, are interested in, especially at the early stages of it really getting built and coming to life, is the technological side. And in that sense, it's much closer to its open source comrades.
Starting point is 00:07:44 But I don't think it's fair to say I dislike WordPress. I think WordPress is an incredible platform. It's pretty much made my entire career up until this point. The thing with WordPress is it really has grown into bigger shoes than it started out in. Back in the days when WordPress was just getting started, there were no real simple content management systems or solutions that people could use. So people deliberately started using WordPress for all sorts of other stuff, building websites with it, way beyond its original intentions of a simple blogging platform, purely because it was the best thing that was around.
Starting point is 00:08:19 And I love WordPress for doing those kinds of things. Our marketplace at the moment that showcases ghost themes is actually running on WordPress. And I use WordPress for tons of other stuff. Our developer site, our VIP developer site, which has all our nightlies and developer docs, also runs on WordPress. But for building a publication, for building a blog, it's too much now for me. And as it turns out, for a lot of other people as well. See, I'm kind of in the middle there because we use WordPress to produce the change. Hey, Adam.
Starting point is 00:08:52 Yeah? Let me cut you off real quick. It's very hard to understand what you're saying. Me? Why? Yeah, your audio's gone. Your audio exploded. Oh, man. I think there's a ghost in your house.
Starting point is 00:09:02 Yeesh. Sounds like there's a vacuum on your microphone. He says, pick up without me. Okay. So I guess it's better for me to say that, not that you dislike WordPress, but that you would say that WordPress is, I don't know, difficult to use when you're just creating a blog. And it's funny because when I talk to friends of mine that want me to work on their website, they have a problem, they have something wrong, and they want me to fix it,
Starting point is 00:09:32 they're almost invariably in WordPress. And I commonly tell people I haven't used WordPress since it was WordPress. Like I don't know anything about WordPress now, and the last time I used it, it was just a blogging platform and so ghost is coming out and as just a blogging platform what do you think is going to help prevent you from growing into something much larger than that so that's probably the most one of the most common questions I get is you know people will build plugins on top of it and they will use it invariably for whatever they want.
Starting point is 00:10:06 How are you going to stop it from essentially following in the footsteps of WordPress? And the answer is reasonably straightforward. The first part of it is we're absolutely not going to try and prevent anyone from building anything on top of it they want to. So people absolutely will try and build content management solutions on top of Ghost. They will, I'm sure, try and build newsletter management systems, e-commerce systems. They're going to try and do all sorts of stuff on top of Ghost, and I'm sure a lot of it's going to be very cool.
Starting point is 00:10:35 The biggest difference is going to be in the actual focus. So as WordPress got a lot of people building stuff on top of it and a lot of demand for content management style features, they shifted the focus of their core development to accommodate those users and that demand that they were getting at the time. So rather than going down a route of focusing on publishing, focusing on extending how posts work, that type of thing,
Starting point is 00:11:00 we've seen them move in the last few years to stuff like custom post types, which allows you to basically create your own types of content and different taxonomies, so different types of categories and tags. For example, you could run a whole bookshop where each thing that you write as a post is actually a book, and it can have properties like an author and a publication date and all those sorts of things. They added functionality for multi-site, so you can run multiple installs of WordPress off a single install. So they moved the focus of Core to enabling all these different types of functionality to the point now where the lead developers and the founder, Matt Mulloway,
Starting point is 00:11:39 call WordPress an online operating system or an application platform. So that's really the route they went with with their focus. And what I'm saying is I can't prevent people building stuff on top of Ghost, but the focus of the core team, the focus of the core platform is always going to be on blogging, on publishing, and on all the workflows that revolve around that. And I think that's going to be the biggest difference as time goes on and it evolves as a platform. Gotcha. So it's more about just keeping the focus very, I don't know if narrow is the right word,
Starting point is 00:12:15 but just very succinct. So you found this niche in between, I think, what WordPress is, right? You took a part of what WordPress is and that's just building an open technology. And then this other thing that's starting to really grow online right now, which is these writing platforms. For some reason, blogging is not new, and it almost seems that it started to kind of disappear with things like Twitter and Facebook and stuff. But for some reason, the desire to write again is really coming back full force, right?
Starting point is 00:12:47 Definitely. You found this niche where you're going to have this elegant user interface, this gorgeous experience for writing and keeping it open. Why do you think that you guys are kind of the only people doing that, or are you? Or do you know of any competitors? And if not, why do you think you guys kind of stumbled upon this when no one else has? Well, I mean, I think we have a lot of competitors
Starting point is 00:13:12 in the form of people like Subtle and Medium. But obviously the biggest difference between us and them is that we're open source. And from an open source point of view, there's a few people doing small projects. I think there's a guy who's got a thing called Medium.js, which is the Medium editor in a single JavaScript file. So you can sort of have a really nice writing experience.
Starting point is 00:13:38 Right. And you can embed that into a website. But there's no one else who's done a kind of full-fledged content management system. But I think the non-open source competitors proved the market. I think the Kickstarter campaign shows the market is there as well. And I think it was, to some degree, right place, right time. And now, luckily, we've got a lot of people who are quite excited about it. Gotcha. So you said a little bit earlier that the traditional, I don't know, open technology
Starting point is 00:14:13 is a self-hosted solution, but Ghost kind of is going to hit both of those, right? Self-hosted and you guys also have your own hosted version. Is that right? Yes. So anyone can download the source run it on their own server obviously like any application and then we're also going to have a click and go effectively hosted service for people who are not developers people who don't want to set up their own stuff but we are going to try and keep that as as flexible as possible so with wordpress you have wordpresscom, which is the hosted thing, and.org, which is the package you download.
Starting point is 00:14:48 And the main reason less people use.com, I mean, there's still millions of them who blog on WordPress.com every day, but the reason you don't get really big blogs running on WordPress.com is that it's fairly tightly locked down. So they have their own themes, and they have no plugins,
Starting point is 00:15:10 which means if you want to have any control of your site or extend it beyond WordPress's core functionality, you have no option to do that unless you self-host. Whereas what we're going to try and do is still have a degree, a fairly large degree of flexibility in our hosted service. So we want to be the go-to host for people. If they need ghost hosting effectively, they can host it on our platform and still be able to use all the plugins,
Starting point is 00:15:31 all the themes that they want to. So that's a little bit of a reverse, almost, of the point of view. You guys are going to try and basically... It's odd. It's a weird way to put it, right? But it's a cool thing, because what you guys are going to try and do is say the't know, it's odd. It's a weird way to put it, right? But it's a cool thing because what you guys are going to try and do is say the community is going to be able to use Ghost
Starting point is 00:15:49 to do whatever they want, but our goal is to build the hosted version so that it's better than almost what you can do on your own or at least comparable, right? So that there's no reason for you not to... Although it's an open technology, you have the option to host it yourself.
Starting point is 00:16:04 We're going to take the pain out of that and do it for you without any limitations. You got it. So that's cool. I mean, that's how you guys are going to obviously make money, or is that going to be free, or how is that going to roll? No, so that's definitely going to be a monetization strategy. Of course, the extra little twist for Ghost to make it more interesting, or in some people's opinion more crazy, is that as well as being open source, we're also a non-profit. So effectively the hosted service will be funding
Starting point is 00:16:33 all of our future development into Ghost. So anyone who is not a developer but wants to support open source software, if they choose to host their blog with us, effectively they'll be doing that, because all of the money that we make from that service will only get reinvested into the company to hire more developers to pay for the life cycle of the product effectively. And that's my idea of what I'm loosely referring to at the moment as sustainable open source, of the people who use the software and who benefit from the software as being able to in some way contribute back into um the pool of money that gets used to develop the
Starting point is 00:17:10 software by its contributors gotcha so we'll talk a little bit about the funding you guys we haven't i don't think we've mentioned it yet but you guys were backed on kickstarter so this project came about and you wrote a blog post and there was some interest so you created a kickstarter project um yes last week we had uh his name is eluding me it was gordon williams from espruino another kickstarter project actually javascript project on kickstarter and javascript as we know yeah yeah and he it was successful right and so he basically quadrupled his goal and his beginning production on it. You went the same route. I think you actually were a little bit sooner or before him. But you wanted 25,000 pounds, and you reached almost 200,000, which is tremendous.
Starting point is 00:17:58 I mean, that's crazy how much more Kickstarter allowed you to raise than you even thought you were going to need. What was that like? What was the reception and the enthusiasm behind it like for you? Crazy. Rollercoaster doesn't begin to describe it. It was probably the most insane month of my life. I think the thing you don't really get from, as an outsider, looking at Kickstarter campaigns when you haven't created one yourself yourself is it all looks very cool and it all looks very
Starting point is 00:18:28 easy. Like someone put up this page that looks kind of, you know, like it might have taken a few hours and there was a video and I guess that took a day or two. And then money rolls in, right? It looks like a kind of a get rich quick scheme. And then you see all these projects that, you know, Pebble and OUYA, which get millions of dollars um and you just it's very easy to look at it and think wow that would be amazing to just sit there and have all that money roll in and then be made for a couple of years when you're on the other side of of the picture it's pretty scary um i mean to put it in context after the first week my hair was falling out the skin was falling off my face, off my arms. That was from the 19-hour days I was pulling just to keep up with the level of tweets, emails, questions, press requests, and everything coming in.
Starting point is 00:19:20 It pretty much hasn't stopped since then. I've tried to curb the number of hours I put into a somewhat survivable amount. But it's unreal how much work it is. It's very fun. It's very rewarding. But it's incredibly, incredibly hard work. Yeah, I mean, when you started, and I asked this question last week. I'll ask you the same thing.
Starting point is 00:19:41 When you started, you have a 25,000 pound goal. So you basically say, I think in order to do what needs to be done, I think I need 25,000 pounds. And obviously you get eight times that amount, which means that A, there's a lot more people than you expected to back this thing. And B, that there's a lot more money to use than you originally anticipated, which means you have to figure out a way to use that money, especially for someone like you who's doing this as a not-for-profit. So what I've heard about and what I've actually experienced in my own life from Kickstarter was a product that somebody puts on Kickstarter, they want to raise a certain dollar amount and they get 10 times that amount. Well, what, what ends up happening is there's so many people that require or desire that product now that it's hard to keep up with the, the, the demand. And so what you're kind of saying is, is your demand might not be a physical product, right? Because you're, you're creating one product that you're going to be able to give to everyone. So you might not have the problem of manufacturing, you know, instances of this product.
Starting point is 00:20:49 But what you do still have is you basically based your team or your future of this thing on a certain goal, and you get way more than that. So how do you keep everybody interested that backed this thing when the growth was so much greater than what you originally anticipated? So that's a good question. It's hard. I was pretty conscious of this before starting. I think it's completely insane. I don't know how the hardware Kickstarter projects manage it,
Starting point is 00:21:22 but you see a lot of Kickstarter projects that put unnecessary fulfillment into their rewards just because they think that will entice people to back so for example projects that say you know back ten dollars and you will get a signed postcard from the creators and then every reward above ten dollars also includes the ten dollar reward right it's all fun and games signing a couple of hundred postcards. When you get up to 6,000 and you have to buy the postcards and you have to pay the postage on the whole postcards internationally, you want to kill yourself.
Starting point is 00:21:53 And you've got people doing T-shirts. You've got people doing back at this reward level and choose from one of five color options. All those things, I think we wouldn't even have shipped any software by now if we had any rewards like that. So I set out to make it pretty clear cut. There would be no physical rewards whatsoever, no postage, no delivery, anything like that.
Starting point is 00:22:19 And I stuck to trying to focus on three main things for the rewards that I knew would scale. So one was the software. Like you say, you make that once, deliver it to everyone. And then to actually give people some incentive to back at higher levels, there was either the hosted service, so various numbers of months free on that, which again would cost us nothing, or not very much, and would scale quite easily. And lastly, the kind of, i don't know what you call
Starting point is 00:22:45 vanity rewards so the the vip rewards you get early access or you get a founder emblem on your name all stuff that would be a value to people that we could add that we could effectively deliver with a few lines of code as opposed to manufacturing overhead but to come back to then keeping up with the demand of having such an increased rate, if we had only hit the original goal, which was £25,000, to put it into perspective, I think that's roughly $32,000, $33,000. I think it's significantly more than that, yeah. Yeah, the target would have been for me to work on it for probably half a year with my development lead, which is Hannah Wolfe, and be able to ship kind of what we have now, maybe a little bit simpler, and then open it up to the community and go from there.
Starting point is 00:23:41 I had a sense that it would either just hit the goal or it would go way, way, way over the goal. The only thing I was reasonably sure of was that we wouldn't end up somewhere in the middle. So I had sort of planned for what we would do if it ended up going the way it did go. And so what we've been able to do with all the extra money is invest that into all the infrastructure surrounding the project, which is setting up a hosted service, which will scale for the next number of years by taking on a couple of extra developers so we could build more features faster, by setting up much more sophisticated projects at this early stage after just four months, and by being able to ensure the future of
Starting point is 00:24:22 the project for the next couple of years, because we now have money in the bank that we can keep working on it while we start to monetize the hosted platform. So we have some buffer in the bank that means we're safe to keep working on the project and it's not just going to fall off the radar. Because a couple of the other open source projects that you might have seen on Kickstarter, they have this big flurry of activity while there's money in the bank. Then the money runs out, and they say, okay, we're not really working on this anymore, and it's up to you guys to maintain it now. And I definitely want to avoid that and make it a product that's really going to stick around.
Starting point is 00:24:58 So I want to talk a little bit about the core team, but before we do that, I want to actually point out that you did actually have one physical reward that was not reached on the Kickstarter project. And I think that's funny because it was the ironic backer special, right? So if anyone backs it, it was 3,000 pounds. Then basically you would get a large WordPress logo tattoo and make a video of it and send it. Yeah.
Starting point is 00:25:23 So no one did it, though. Why don't you think why don't you think anyone did that that'd been hilarious i don't know i thought that would have been awesome there was actually someone created an indiegogo campaign to try and fund the kickstarter reward for the kickstarter campaign which was so like crowdfunding exception it was awesome yeah but uh it didn't it didn't succeed. But, yeah, I figured, I mean, not everyone's going to like it. I figured at least maybe we could get some reward money out of the people who don't like it. But apparently there weren't enough of them.
Starting point is 00:25:53 So in some ways that's good. Gotcha. So I want to get into a little bit. How big is the core team right now? So we have three people full-time and employed which is myself Hannah and a guy called Matthew Harrison Jones who's based in the UK and then we have roughly 20-22 open source contributors who have access to the repo and are writing code for us right now before we open it up public and a network of probably between 15 and 20 more people who are contracted by us and are working on the infrastructure effectively.
Starting point is 00:26:30 So ghost.org, the hosted platform, all the whole network of systems that are surrounding the project. So that's kind of what I want to get into. So you have 15 and 20 contracted and then three full-time. So you have somewhere between 18 and 25 18 23 people that you're paying is that right yeah okay so when you i guess that's what i kind of wanted to ask is when you when you created this project and you had 25 000 pound goal i don't think that if you would have hit just 25 000 pounds you would have been able to afford that and so absolutely was that kind of in the plans was hopefully we'll go much more than that and we'll be able to pay these types of roles?
Starting point is 00:27:07 Or was that just a way to kind of keep it as a nonprofit? Oh, no, no, that was pretty much in the plan from day one. It was hoping, you know, I mean, you don't like to jinx yourself, but hoping we would hit that level and that would be an option. So what would look different if you would have gotten to 25,000 pounds and that's it? We would probably have a really sketchy prototype. It would already be just on GitHub. The websites would just be marketing pages, and you could download the package, and that would be it.
Starting point is 00:27:39 Gotcha. And then we would look to try and do some sort of fake hosted service, probably partner it up with one of the cloud hosting companies just as like an affiliate reseller of them. And it would just look a lot smaller, I think. Right. It's interesting because I don't see on the Kickstarter project, I don't see any stretch goals, right?
Starting point is 00:27:59 I don't see, well, we hit our goal and now we're going to offer more incentive. I don't see, well, we hit our goal, and now we're going to offer more incentive. I don't see that. What I see is that you guys are going to over-deliver on what the project was. You're going to give more. And so people that backed it might not even necessarily be expecting some of the stuff that's going to come with Ghost. And I think that's a good thing. I think the demand is based on the product, not based on the incentive that you're going to give people. And to me, that could help to establish security for this product.
Starting point is 00:28:31 I agree. So we did set one stretch goal, which was £'t, was going to be to create and deliver a full marketplace, effectively kind of a Google Play-style app store. By the beginning of next year, we're going to start a publication with Ghost, kind of like Tumblr's in-house publication did for a while, and give everyone who backed the project, I think, an extra year of free hosting.
Starting point is 00:29:07 We didn't hit that at the end, but effectively, if we had hit that, the only thing we would be doing is scaling up the product itself. But we kind of ended up in the best of both worlds by getting quite close to the stretch goal but not hitting it. We had a lot of extra funds but without a lot of extra responsibilities. So that was actually very helpful. It's almost like you put a 250,000 pound stretch goal, so you really want 249,000 pounds. Right. Yeah. But you don't say that too much. Right. Exactly. So on the website, you have these things called Ghost Launch Partners.
Starting point is 00:29:42 It looks like that's probably the large backers on Kickstarter, or is that what are Ghost Launch Partners? Yes. So we had a £5,000 that's the maximum level on Kickstarter for effectively companies who want to get behind the project, and in return, they get their logo on the website for a year on all our printed banners for events for the next year or however long we end up using them for,
Starting point is 00:30:08 which might be longer than that. And they got early access to the code base and will have their plugins or themes, anything they choose to build with Ghost featured on Marketplace effectively. Gotcha. Two that stick out to me, and this is what's interesting, is Envato and CodeSchool,
Starting point is 00:30:24 who have their own writing platforms. So what do you think it is about them? Why did they decide to jump on Ghost? So, different reasons for the two of them. Envato are really interesting ones, really cool company. They have these huge, their primary revenue source is their marketplaces, and they have huge, huge business in the WordPress themes marketplace. It's one of their biggest money generators, effectively. And they've had a lot of issues over the years, particularly in relation to the GPL and what is and what isn't GPL when it comes to images or PHP or JavaScript. So a very long-sorted history, shall we say. And so they're always interested in platforms which people can build products for,
Starting point is 00:31:13 which effectively can go into their marketplaces. And Ghost is much simpler from the point of view of licensing, being MIT. It makes it much less of a point of potential friction for them. So for them, I think it's a great platform for them to basically set up part of their marketplace for. For CodeSchool, it's actually a really cool one. I did, right at the beginning, before we started on Ghost, I was learning Node.js through CodeSchool and some Backbone as well.
Starting point is 00:31:43 And I absolutely loved their system. I'd used kind of all the obvious ones, like Codecademy and some Backbone as well. And I absolutely loved their system. I'd used kind of all the obvious ones, like Codecademy and some of the other ones. And this was by far the one I enjoyed the most. So I sent them a message when we actually put the Kickstarter campaign live, saying, hey, guys, this is built in Node. You have, like, the best Node tutorials I've ever done.
Starting point is 00:32:04 If you get behind this, I'm sure we would be sending a lot of people your way to learn Node.js so that they could code stuff on Ghost. And a couple of the guys who I kind of got to know inadvertently through Twitter from Code School replied positively, and they were very enthusiastic about it. And it just kind of worked out. Awesome. So the blog on Ghost.org, is that written in ghost? It sure is. I have a, an odd question, but you have the credit where credit is due and you list all the Kickstarter backers. Yes. Someone has to type those in manually. Oh man, that would have
Starting point is 00:32:41 been bad. No, I exported a whole bunch of CSVs, combined them, and then did a find and replace to organize them. And let me tell you, that nearly killed my sublime text. Yeah, I believe it. This is a ton. Was it over 5,000? Yeah, almost 6,000, I think. That's crazy. So let's kind of talk a little bit about the actual technology.
Starting point is 00:33:03 You mentioned that Ghost is written in JavaScript, and actual technology um you mentioned that node or that uh ghost is written in javascript and i think we've mentioned that it's a node project um on the website you kind of we can talk about that a little bit but on the website you were about on the uh sorry on the kickstarter project one of the faqs is um where was it it was about basically like no doesn't have any real-time components. And your response was, well, building this on Node will have some challenges, but we're fascinated by the challenges. What did you mean by that? So Node is an interesting one. The most common question from the technological standpoint that I get is, first of all all why is it not PHP?
Starting point is 00:33:45 You know you came from a WordPress background. Originally when I put up the idea for Ghost it was discussed as a WordPress fog and a lot of people ask why not PHP and why Node.js? And there's a lot of reasons behind it really but the most obvious ones are that Node is fundamentally at such a low level that we are able to solve problems about five levels deep that WordPress has never had a hope of solving. And one example that I use quite often for this is actually the first bug I ever reported to WordPress, which was a problem with their permalink system. And it turned out I was trying to enable a setting in WordPress to change my URL structure. And it was hitting an error with mod rewrite inside the Apache configuration that it didn't understand.
Starting point is 00:34:35 So it couldn't give me a good error, and it was very confusing, and I reported this bug, and that's how I eventually got involved in WordPress. And that turned out to be a problem that WordPress couldn't solve. The only thing it could do was create a nicer error message because WordPress lives on top of Apache, it lives on top of MySQL, it lives on top of PHP, it lives on top of all these technologies about five levels deep which have their own sets of intricacies and problems that WordPress can never get to because it's just on top of them.
Starting point is 00:35:04 Whereas Node.js is, as I'm sure you and all your listeners already know, is at a much lower level where it effectively is the server. So spinning up something like some routes that do permalinks nicely is a problem that is not even thought about. You don't ever run into it, you just do it. And that's possible.
Starting point is 00:35:24 At the same time, that's not to say Node doesn't have its own problems and its own intricacies that we face. And that's where it kind of gets into what I was saying about being excited about solving problems. Because with WordPress, it's sitting on top of all that stuff, which occasionally can actually be helpful as it turns out. For example, when you want to send an email, you pretty much always know with WordPress that send mail is going to be available. And if someone forgets their password, you can send them an email reminder, and that's going to work. With Node.js, it's a lot harder, as we found out recently, to actually figure out if there's any way on the server to send an email to actually detect it.
Starting point is 00:35:59 And most of the time, there isn't a way. So we have a slightly more complicated setup to get going with Ghost where we have to try and detect if there's a way to send email available and if not, ask people to put something in a configuration file using an external mail service. So there's ups and downs. I think overall, we're really excited about building it in JavaScript because most of the future of the web seems to be written in JavaScript. The core fundamental backbone of every HTML5 API is JavaScript. So it makes sense for us to create a really dynamic, responsive, interactive application on both the front and back end with JavaScript.
Starting point is 00:36:38 But it does throw up its occasional challenges. But that's roughly the reason. Gotcha. So you said the backbone, and I wanted to ask, you're using the Express framework and you're using backbone and handlebars, and how much thought goes into these decisions that are made, and how much of it is just kind of the ipso facto, the way it's done? A little from column A, a little from column B.
Starting point is 00:37:08 To some extent, for some problems, we research absolutely as much as humanly possible to figure out what the best solution is going to be. And for other problems, we are looking at it from a point of view of what does our team know how to use and what can we deliver on and use most effectively to get it done. I'm by no means a JavaScript expert.
Starting point is 00:37:29 That's what I rely very heavily on my development lead, Hannah Wolfe, for, who is amazing at that sort of stuff. But I'd be lying if I said that all of us weren't learning as we go with this. I think with every project, if you're not learning, then you're doing something wrong. And we're learning a tremendous amount about all of these technologies and how they fit together as puzzle pieces
Starting point is 00:37:49 and the best ways to do things. And I'm sure we've got a lot more to learn, but very much enjoying it. Gotcha. So Hannah is from moo.com. How'd you find her? She's awesome. So how we actually got to know each other was she banned
Starting point is 00:38:06 me from a forum like eight years ago um we were we were both like beginner web designers around 2006 2005 6 um and i don't know i'm i'm pretty obnoxious even these days but it was much worse back then um so she ended up banning me but we stayed in touch on twitter and there were no hard feelings uh and we've kept in touch over the years and just stayed really good friends um and she's a phenomenal developer uh she walks circles runs circles around pretty much every other developer i've ever worked with and picks up new programming language and is in the space of like a week and builds stuff with them um and she's incredible She's probably the only person who puts in more hours than I do on Ghost and is still somehow alive. Yeah, I think that I've actually, I don't know if I've actually spoken with her,
Starting point is 00:38:57 but I've definitely come across her in different conversations and seen her. So I definitely think she's one of those yeah one of those people out there that you'll if you don't know who she is you will at some point are all the are all the developers that are working on node that both contracted and just the the private open source community I guess I just coined that term private open source are they all node developers or any of them kind of have to learn node just because they were excited to get to work on Ghost? A mix, definitely a mix, and probably a slight majority in the latter category. So people were really excited to learn Ghost,
Starting point is 00:39:35 who ended up learning more Node or more JavaScript to do so. We had one guy who actually thought that Ghost was a WordPress fork or written in PHP, and then he turned up in IRC, and he was like, so this is not what I was expecting. And he actually, his name's Gabor Javorsky, he actually turned out to be one of the most active contributors we've had since the start and worked his ass off to pick up Node and to pick up JavaScript and to do a whole ton of stuff.
Starting point is 00:40:04 It's been really, really good. Awesome. So the code has client and server. What's the breakdown of those two? Can you just kind of give me a high-level overview of where the code breaks down at? I can try. I mean, you probably want to have Hannah back on the podcast for this.
Starting point is 00:40:23 We have, obviously, on on the podcast for this um we have obviously node on the server side and what we started off with was doing everything on the server side so server side views and um loading everything through express um then we had a guy called tim greaser i don't know if you've heard of him he's one of the maintainers of backbone yeah um start working on Ghost with us. And he pretty much sold us on the idea of transitioning our client side to using Backbone. And where we are at the moment is a weird sort of pivoting point, which is that Ghost is kind of half one and half the other. So we have half of stuff happening on the client side and half on the server side. And at the moment, we're trying to figure out
Starting point is 00:41:06 which way we're going to go with that because we're stuck between a rock and a backbone. I don't know what I'm saying. A spine and a backbone. Don't say that because those are competitors. Okay, we won't say that. That's not funny at all. Yeah, edit that out.
Starting point is 00:41:22 Yeah, let's cut that. Just kidding. So we're trying to figure out what the best way to go on that one's going to be. And to some extent that depends on the contributors we get. Obviously we are influenced by having someone who maintains Backbone, who's extremely talented in working with Backbone, in being able to solve some of those problems. And I think it will be pretty natural for the project to evolve
Starting point is 00:41:48 as more open source contributors come on board later and have different skill sets. But for the real technical nitty-gritty, why are you doing this this way and this the other way, I'm afraid you're definitely going to have to bring Hannah back on here. Gotcha. Cool. So ghost.org, the blog, is written in Ghost. Anybody else that is using it in production at any point right now?
Starting point is 00:42:12 Yeah, I think we've got... So we launched to all 6,000 Kickstarter backers last Friday, which was kind of crazy. We've had over a quarter of a million page views in the last five days, and a lot of people getting their first deployments of Ghost up and running, which for some people has been incredibly easy, and for some people has been very frustrating, you know, the classic new software syndrome. But I think there are probably a couple of hundred blogs running in the wild right now on Ghost, which is cool. Yeah, that's awesome. So would you say that right now it is production ready,
Starting point is 00:42:48 or do you kind of say with a disclaimer, like, hey, you can use it in production, but there's a date where we'll say it's actually ready? I don't know. I mean, yeah, it's production ready. You can use it. It works. It's unlikely to explode.
Starting point is 00:43:01 We've patched all the major issues we can find and have found and haven't had any show-stopping bug reports as yet. So it's as ready as ready can be when you call your version number 0.3. You're talking to the guy who's trying to look into the future for the next three years and see where it's going. So I look at it and I'm not remotely satisfied. The only thing I see when I look at it is all the stuff that's missing. So if you ask me if it's ready from, for my personal opinion,
Starting point is 00:43:29 no, absolutely not. Don't show it to anybody. But if we actually look at it realistically, is it ready? Can it work? Can it function? Is it a blogging platform? Yeah, it is. Yeah. It's funny. It's actually the question I get asked all the time when I work on projects, like, you know, especially side projects for friends. They say, is it done? And I'm like, well, it's never done. Exactly. I don't know how to really tell you. No, it's not done, but it's ready. Cool. Well, the timeline kind of says that this month is when it was supposed to be released on GitHub, so you have six days left.
Starting point is 00:44:01 So when's it going on GitHub? It is going to be – this is going to be like a world left. So when's it going on GitHub? It is going to be... This is going to be like a world exclusive. Are you ready for this? I'm ready. We haven't announced the official date until now. We are aiming for October 4th. So we actually said mid-October,
Starting point is 00:44:17 but we're going to go for early October. There you go. You heard it here first, people. Nice. After that, so after the GitHub release, that's just the code will be available for the whole world to hack on. Following that comes the hosted platform release to the Kickstarter backers and then the hosted platform release for the general public.
Starting point is 00:44:38 Exactly. What are you looking at? Maybe like a couple months between those? Pretty much. We're rolling out a beta program for, I never know, like England, US, beta or beta. Like it varies so much, but you know what I mean. One of those programs for backers starting this week. And we're just going to start getting a few people in,
Starting point is 00:44:59 see how it goes, see how it scales, and add people over time. The better it goes, the more people are added, and the faster the rate at which we will add them. I think we're aiming for roughly, optimistically, the end of the year for general public to be able to get on the hosted platform, and perhaps more realistically, the start of next year.
Starting point is 00:45:19 But it really depends how some of the early testing goes. Hosting Node is a whole other ballgame that we're learning a whole bunch about right now. And hosting multiple instances of Node is an even bigger one that's very interesting. Yeah, there's a reason why you had to, in my opinion, you have to contract that out and pay for that, whereas a lot of the actual software development
Starting point is 00:45:42 can just be open source people contributing. It's difficult. It's not the easiest thing in the world right now. You heard the episode a few weeks back where you had Isaac Schluter on the maintainer of Node, and that's one of the things that they definitely want to improve is just the documentation around all that and being able to make that easier for people. So there's definitely some learning and some experimentation that has to go on to do that.
Starting point is 00:46:09 Like I told you, when I started looking through the code, it's almost impossible to look at it and run a little instance of it and not think to yourself, I want to get involved with this. And I think that's a good thing. I think that I see a lot of projects. I see a lot of open source projects, and I don't know what it is about them. But I think, well, this is a really cool project, but I don't have the time or the effort. I don't have the energy required to really get into this.
Starting point is 00:46:36 And I don't know if it's the simplicity of Ghost itself, if it's the community that you can just kind of see is going to come up around it. I don't know what it is, but there's something about it that you say, like, even if it's just a little bit, I would love to get involved and help with this. I think that's something that happens organically and that everybody would hope to kind of acquire, and you guys have. I think that's a good thing. So congrats on that, man, and this is an awesome project. I'm happy to hear that. Thank you. Maybe we'll have, after the public launch, maybe we'll have uh after the uh after the
Starting point is 00:47:05 public launch maybe we'll have you back on with hannah to talk about some of the technical details and the struggles that you guys went through to to get this thing live because i have a feeling this is going to be pretty big so um definitely yeah that's what you mean the struggles or yeah yeah yeah the launch and the struggles and the epic fail that is bound to happen. Just kidding. Hey. Yeah, except not really. Yeah, exactly. So I think we could talk about this for hours, but we do have to wrap it up. So if you're new to the show, we kind of ask the same questions at the end of every episode. So we'll go ahead and start with those.
Starting point is 00:47:38 The first one is for a call to arms. Obviously, the project is not public to the world yet, but in October it will be. Do you have something that you'd like to see the community kind of rally around first when this starts to spring up? Definitely. I mean, what we have right now on ghost.org is a big sign-up button where you can drop in your name and email address
Starting point is 00:48:02 and you'll get an email the second it is open to the world, and you can have at it effectively. So if anyone who's interested, who thinks it sounds like an interesting idea, or it sounds like a terrible idea and you want to rip it to pieces, or it just sounds like an idea you might want to hear more about, drop your details into that box, and we will let you know when it's around. There's a ton of information already on the live site, which is publicly available, so you can read up a little bit more about it, have a ton of information already on the live site, which is publicly available,
Starting point is 00:48:26 so you can read up a little bit more about it. Have a look at the Kickstarter campaign, the video, if you're interested. But yeah, definitely subscribe to the newsletter, and we will let you know when it's there. Gotcha. If you weren't doing this, so if you weren't doing this specifically ghost,
Starting point is 00:48:45 what would you rather be doing? So two years ago, I was doing web design, just freelance for clients, the normal sort of thing, and I got pretty bored of that. I was living in the UK, and what I decided to do, because it seemed like a great idea at the time, was sell all my worldly possessions,
Starting point is 00:49:06 only keep sufficient things that would fit in a single backpack so basically a laptop uh an iphone a couple of like five t-shirts um and just took off and started traveling and i've been i'm still doing it actually i've been going for two years and what i like to do when I travel is pick a spot which has wind and has a beach and I love to go kite surfing and if I wasn't working on Ghost I think I'd just be doing a whole lot more kite surfing whereas at the moment I'm semi-based in Austria, hunkered down a little office and coding away. Yeah kind of a little odd side question. Are you from Austria or did you just find yourself there? hang out with other people who are there. And the manager of that kite school happened to be a very nice Austrian girl, unbelievably attractive, who I got to know over the course of a month. And I liked her so much that I inadvertently ended up following her back to Austria because she was trying to get away from me, but that seemed like a terrible idea.
Starting point is 00:50:17 So I followed her. It's not stalking. She said it was fine. And I've kind of been here ever since, in and out. I'm obviously traveling to and from the UK quite a lot for business, but yeah, I'm spending quite a lot of time here. Cool. So for somebody that has been a world traveler, who's a programmer hero or somebody that's been impactful in your life? I would actually have to say Hannah, probably. Hannah's probably been the most influential
Starting point is 00:50:48 developer, programming hero in my life since the day she banned me back on that forum. Back in the days when I was first learning PHP, she was the one teaching me. When I first started learning JavaScript, she was the one teaching me. And throughout the years, whenever I've had a side project to work on, she's been the one who's
Starting point is 00:51:07 been doing the behind-the-scenes hardcore back-end development work. She's incredible. She's probably my biggest inspirational person from a programming development point of view. You should totally have her on the show and ask her why.
Starting point is 00:51:24 Awesome. I will definitely get her back on the show and ask her why. Okay. Awesome. I will definitely get her back on the show. Hopefully you guys can hear me now. I've kind of been quiet during the show because apparently I had some audio issues on my side, so apologies about that. But, yeah, it's definitely fun to have you on the show. I think just the project itself has a lot of a lot of great things about it you
Starting point is 00:51:46 know you mentioned being a labor of love not for profit and then also the non-profit component to it as well and you know the the overfunding and being able to build the team you have is certainly you know maybe a more of a blessing than has been a curse which i know andrew you're kind of a fan of that question of overfunding Kickstarters and what that means to the actual people executing. But yeah, I just want to thank you again for coming on the show, John, for building what you're building and the love you have for open source and software development. And then I know you're losing skin and losing hair, but taking the time to come on the show and tell your story is certainly much appreciated. Also, and since we both have kind of an affinity for DigitalOcean, I also want to give them another plug because they do help us make this show possible. One of the cool things that they asked me to mention this week was something I thought was kind of unique, the way they're calling for technical writers. I don't know if... I know documentation is a big thing,
Starting point is 00:52:46 but they have this thing where you can go on there and create tutorials about how to use DigitalOcean better. So, you know, optimization, you name it. But you can write a tutorial. They'll give you $50 for writing the tutorial. There'll be a link in the show notes on how to check that out. But it's a pretty unique way they're empowering and engaging the community to kind of pick up this section of their website
Starting point is 00:53:07 and give credit to the authors and those who are helping create that content to make using DigitalOcean services a lot better. So there's no limit to how many you can write out there. So if you want to make mad money, you can. It's kind of neat, though. So everyone should write a tutorial for how to get ghost running on digital there you go there you go there you go but uh yeah other than that i think the other thing i want to mention which i think is is uh we're proud to begin to start saying this
Starting point is 00:53:35 for those who are members of the changelog um as we have partners and sponsors of the show we're working with them to get exclusive offers that are for members only. So in this case and a couple other cases, we're just propping this up now, but you can go to the changelog.com slash benefits. And if you're a member, you can sign in. If you're not a member, you can see what's there but not use it. So these are members only benefits for those who support us. But DigitalOcean's got their $20 promo there, which is kind of neat.
Starting point is 00:54:06 So if you go there and sign in, you actually get $20 off versus $10 off. And that's really it. And then we also have the change all weekly. So if you want to keep up with Andrew's brain, my brain, Jared's brain, and others on what's fresh and new and open source, every Saturday we're shooting out an email
Starting point is 00:54:23 to everyone on that. So it's uh it's pretty neat i wish i could have participated a bit more in this conversation it's kind of fun we'll have to have you guys back on the show for sure whenever y'all uh officially launch and do some more cool stuff because i'm sure you'll bring some challenges back to the table for us but uh um yeah john thanks again for joining us on the show sorry for the extended kind of post show announcements and things like that. Just want to make sure that you all know what we're doing because we're trying to kick butt and take names one day at a time.
Starting point is 00:54:51 Right, Andrew? Yeah. And you've got some good news, Andrew, on the guest for next week. What's going there? Yeah, we're hoping it's not set in stone yet. So no angry emails, please, if it doesn't happen. But hopefully we'll have someone from Balanced on to talk about the Balanced dashboard, among other things. If you listened to our Get It show with Chad Whitaker a while back, he wouldn't stop raving about the Balanced dashboard and just the company itself.
Starting point is 00:55:20 So ever since then, we kind of wanted to try and get him on the show, and it's starting to line up now. So hopefully next week we will have Balanced on the show. But if not, we'll have somebody else. That's awesome, too. You mentioned angry emails. If you're listening and you happen to have an angry email for us, send it to andrew at thechangelove.com. That's where we direct those at. We actually have an automatic forward for those.
Starting point is 00:55:42 We don't get any, though. It's Lex Carcer that looks for angry birds and sends it to me. That's right. Yeah, that's it. But, yes, great show, Andrew. Thank you for teeing this up. John, awesome work. And thanks again to you, the listener, for tuning in.
Starting point is 00:55:59 We've got something fun lined up for next week and the week after. But until then, let's say goodbye. See you all later. fun lineup for next week and the week after but until then let's say goodbye see y'all later you

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.