Interview with John O'Nolan of Ghost
indiehackers.com
indiehackers.com
> Honestly my single piece of advice would probably be to stop looking for so much advice. Shut the fuck up and go and build something.
I like this. I see a lot of people, and I fall victim to this myself, over analysing the best way to do X, rather than just trying it and learing / adapting as you go. I think there is some value in figuring things out up front, but not at the cost of never taking the plunge.
One of my favorite hobbies is writing. But it's so easy to get stuck into overthinking it, reading about writing, reading how other people write, etc etc etc...
Instead, I've noticed the best feeling comes from staring at a blank page and just letting the mind work things out in real-time. Sometimes it sucks (maybe most of the time), but it seems like there's plenty of times where it also goes really well.
"Real artists ship".
That pretty much distills it down, right?
Now (for better or worse) i think i'm at the stage where i need to actually improve and deploy them fully. Learn maintenance, learn upkeep, maybe even learn some minor advertising and metrics.
Self taught experience has been so insanely valuable. Value derived from pain.. but still value.
That's fine for a while but then as you say you get to the place where you have to finish. I think this can be almost as big of a hurdle as starting as it can involve a whole host of new challenges, some of which you've mentioned above.
Finishing is also, in my opinion, typically not as exciting. You've likely already solved all the intersting problems and are left with the "lesser" tasks involved in getting it over the line. This is something I've been learning myself over the past year or two.
Re-read the article: only a tiny part of it explains the technical challenges/mistakes. Most of it revolves around finding the problem people face, presenting them the right solution, etc. Checking if people are willing to pay for such a solution.
As said in the article: > Market-specific experience is probably the biggest and most under-valued asset that you can bring to any project. Few people ever talk about it.
Solving the technical problems is the easy part. Knowing which problem to solve, which solution to offer, how to get the right people to notice you, how to get them to give you money. That is the hard part. Start learning that part now.
The company is a non-profit that supports journalism and professional publishing. Everything is open-sourced. I'm leading the work on the Desktop App (https://github.com/tryghost/Ghost-Desktop), but all projects (server, admin interface, etc) can always use more love.
If your company allows you to donate some time to non-profits and you think that democratized journalism is important, consider helping us out
So the pricing model of ghost is problematic because:
1) I don't know what level of plan to buy to support this kind of traffic.
2) $19/mo seems really expensive for a personal blog. (and wouldn't support my traffic load)
3) A $5 instance at DO handled the load really well with room to spare and conservatively took about an hour to setup.
So, I guess I'm not their target customer? I want to pay around $10/mo for a hosted blog and support like 500k uniques. There are some wordpress hosts that handle this level of traffic at this price point I think.
Even so, 300k uniques would price you around $80/mo, which seems extremely high to me for a casual blog that can be self hosted on a $5 DO instance and an hours worth of work.
"One key lesson we learned early on was not to charge too little. $5/month customers are just terrible. They have the highest rate of failed payments, the highest rate of credit card fraud, the highest amount of support tickets submitted, and are the least friendly people. We've doubled our prices 3x since then, and each time we do, we get nicer people who value the product more and create fewer problems.
At this point I would never create a business ever again which charges less than $10/month."
Also you are not going to hit the top of HN on a regular basis as a casual blogger. Look at real data like your blog's historical traffic in the last year to get an accurate picture of the costs.
Ok I know this is possible, but how common is this really? I guess this might be a little bit more typical for very short contracts, like one-off work, but still.
If so, then you have to factor in all the non-billable hours you spend getting clients/contracts, advertising, and general housekeeping required to run a company. Then stuff like health care, car, phone, computer, electricity, office and other expenses.
Just saying that you can't just say: "my time is worth $500/hr" if that's what you bill for 4 hours a day for a client for few weeks.
* Not sure how many programming contracts can sustain a $500 hourly rate for long. If you can charge that, but can realistically only book 10% of the 'available' time, then your calculation should really be using $50, not $500.
* Example makes sense only if you're 100% booked all the time, with no spare hour here and there. If you have any sort of spare whatsoever, you can sell your unused production capacity to yourself at cost price.
* Even if you're 100% taken, not all consultant time is billable time. So that will already reduce your estimate by about 50% or so alone.
* Managing stuff takes time (and is a common full-time profession). Your example didn't account the time you will take setting up whichever third party solution you choose. Unless you have hired someone who you can just take five seconds to say 'get me set up on X and tell me when you're done' (and can be trusted to do it right without taking time to supervise/course-correct), you will perform work in setting up the platform. This work may very well take a non-insignificant fraction of the time you would take by not outsourcing, which you didn't consider in your calculation.
You may very well really hate setting up servers, and gladly pay a large sum to not do it. But then you're really paying to avoid pain, and the whole opportunity cost argument you made may be a rationalization.
The vast majority of programmers in the world (and even in the US) will never see anything $500 for 4 hours of work () (and if they do it would be some one-off lucky gig), so that's a moot point.
() which amounts to 750K/year if sustained
OTOH, what was actually referenced in GPis $500/hr, which sustained is $1M/yr.
The code itself appears to have a very liberal license, so no issues there, even if you to want to extend some things to allow better multi-tenant support and don't want to release your code.
And there is some obvious value add in someone that can simplify things like https setup, version upgrades, security patches, and the like.
I have a couple Ghost blogs set up with Docker, Let's Encrypt SSL & NGINX that run on AWS. It works great for me but I haven't taken the time to open source it yet because I very slightly modified the Ghost code to play nicer on AWS. I'm also using the SQLite database which may not be ideal for everyone but it prevents me from having to pay to use multiple "real" databases from AWS.
The perks are that it is really quick & easy to add multiple blog sites. Each one lives in its own Docker container. It's also very fast on the AWS free tier. Since it's on Docker, I can boot it up anywhere very quickly as well.
If anyone is interested in working with me on improving it, I'll gladly push it to a public GitHub repo.
I added ghost-storage-adapter-s3 to package.json so that the files would be stored on s3 instead.
I think the only other change to Ghost I made is purely optional & was done out of my taste. That was to remove the date directory appended to file uploads. https://github.com/mattferderer/ghost-blog/commit/7d373913a5... I understand why they did that, I just didn't like it. It may have also caused issues with my AWS S3 but I can't remember.
I don't know how I feel about it, slightly negative probably. I think Stripe does a lot of stuff really well, and it makes sense to copy many of the things they do, mostly from the UX and information design aspects. But to copy the branding itself seems like it defeats the point, because it makes Ghost feel cheaper.
Check out the Wayback Machine...
- Ghost 2017: https://ghost.org/features/
- Stripe 2016: https://web.archive.org/web/20160304012926/https://stripe.co... https://web.archive.org/web/20160304013548/https://stripe.co... https://web.archive.org/web/20160304014557/https://stripe.co...
I normally wouldn't have commented on this, but I just saw the "Scale API" startup's site yesterday and noticed that they too were doing a wholesale copy of not just Stripe's information design, but their branding too...
- Scale 2017: https://www.scaleapi.com/
- Stripe 2017: https://stripe.com/radar https://stripe.com/
It doesn't seem like a smart approach to take, but maybe it works.
What web developers say to you when they see something you made with bootstrap: "Another bootstrap site."
What everyone else says when they see the same thing: "I didn't know you were good at design."
Also, thank you for crashing my computer, stripe.com/radar.
I like both pages, but I don't think it feels like a copy of Stripe's design.
One thing I think Ghost is missing right now is a solid mobile experience. I'm working to fill this gap with Quill [1], a native Android app for Ghost with an offline mode, image uploads, full Ghost Markdown support, and a sweet design. And it's open-source :)
Offline support in particular is IMO going to turn out to be an important feature, because I can imagine Ghost's target audience of journalists wanting to publish quick thoughts from places with a spotty connection. Admittedly I haven't actually validated this - building offline support presents an interesting engg+UX challenge, so that was the original motivator.
Feedback has been really positive so far [2], so I'm gonna keep going! Would love to get feedback from HN as well.
[1]: https://github.com/vickychijwani/quill/
[2]: https://github.com/vickychijwani/quill/wiki/What-users-say
Not trying to put you down, just want to make sure you are aware of the potential naming conflict (both things are for authoring content) in case that creates a legal headache for you one day.
However I don't think it will cause big issues, as quilljs is a JS library, while Quill (the app) is targeted directly at Ghost's users who will largely (presumably) be journalists. The slight name confusion within dev circles is something we'll just have to live with.
I'm really happy I went with them, the culture and idea behind the company appeals to me and the lack of bells and whistles is made up for in a really simple and fun to use editing experience. At least in my opinion it far outshines Medium.
Was there a benefit to switching?
I should also ask: how much traffic were you getting?
The benefit to switching was really less maintenance and I could concentrate on writing and to invest in the future of Ghost, win/win!
My traffic is pretty low, no hits on HN yet! :) Quick glance at Google Analytics seems I hit about 1.5-2k visitors a month.
(I know it seems like a small deal to talk about $5 or $25 for your main blog with over 1000 monthly visitors, but a lot of people experiment with dozens of little content ideas.)
I'd consider self hosting again if I was planning on running lots of different domain/content ideas :)
The other main difference is that Ghost(Pro) is a managed service. CDN, WAF, Backups, Security, downtime recovery, threat management, etc - are all included. TLDR you sleep easy at night while we stay awake.
Of course, these things will be of different value to everyone - depending on your situation. We actively encourage people to self-host when that's the best setup for them (which is often!) but for many, having a reliable PaaS is the best of both worlds.
It's also a great way of funding the future development of the open source software that you're using, of course. But that's a whole other thing :)
By day I program so the last thing I want to do when writing down my thoughts and ideas is maintain all of the above that you listed!
For now I'm happy to give my $$ for hosted Ghost as you've gotta vote with your wallet!
The editing experience is what sold me, even when they had very few other features. They had been a bit slow about features currently since they are spending a lot of time making under-the-hood changes but I think it has a bright future.
Honestly I don't know why I'm using it though. I probably should be using Jekyl or something like that.
Figuring out what kind of workflow you want is crucial. A few additions to the Pelican makefile made things much smoother for me.
I wouldn't think 2013 was early stage of cloud VPS services - but maybe I don't have a good enough memory of the time.
The other reason we went with hardware that I didn't mention was that we wanted to cram a whole lot (thousands) of node apps onto every server and we figured being on a bare metal setup would be an advantage to optimising that. (In practice: Not really, as it turns out!)
> I wrote down my thoughts in a blog post, and about 1 week and 250,000 pageviews later, I decided to start working on the idea properly.
> The next question was: Would they also open their wallets? For this, we went to Kickstarter. If we could get enough validation for people to actually fund the development of the software to a production-ready state, then we knew we would be on to something.
I love that his demo for kickstarter was 50% mockups. Truly an MVP.
I remember playing with a minimalist blogging platform in Node.JS at one point a couple of years ago, but honestly that could be one of a dozen or so projects.
I'm currently hosting my own ghost blog and its just as great, just takes more attention to operate it.
The DNS configuration doesn't yet support my provider. I believe they're on cloudflare (!)
> Initially I got a ton of offers for development help from people on Hacker News, which materialized to precisely nothing.
I'm guessing it's because the ghost site was noticeably faster and was mobile friendly, which my old WordPress site was not. I didn't do any SEO tuning or anything.
More people should do this. Recent security issues of WP is kinda horrific, but then again it always been a security nightmare. It makes me sad that people don't realize it, the only answer you get is: " but it's so popular so it must be good", well smoking has also been popular - it doesn't mean it's good for you.
Though that's how django started. So...
Even so, for the casual blogger, $5/month is probably the max.
I view my blog as an extension of my memory. When I write things, I do it mainly for myself, rather than to appeal to other readers. Because of this, my blog gets practically no traffic. I'm happy with github hosting my ramblings for free.
Nobody would relate that to "the business makes $62k per month".
Everyone would think it's some sort of "vertu for blogging"
Active customers: 4,257 ARPU: $14.40 Monthly Run Rate: $62,796
Requests / month: 80M Registered users: 601,492 Github Stars: 24,921 Themes: 481
Nothing against Ghost, but I've spent about a decade in the area of content management and publishing and don't recognise 1 or 2. The proprietary market leader is AEM which is atrocious to actually implement once you get past their sales demos, and in open source you have Drupal which is a well proven solution for large and small scale publishing, particularly relevant with Drupal 8 and its publishing focused distro Thunder (both particularly adept at services and deployment, tricky areas in publishing)