Readit News logoReadit News
mikece · 4 years ago
Every time I see a mention of Ghost on HN I'm reminded of a 2018 interview the founder of the project did with a podcast (SE Daily) in which he said he wished, in retrospect, that he had chosen Laravel or some other PHP framework instead of NodeJS as they would have been "years further down the features pipeline by now." I wonder if he still feels that way.

Link: https://softwareengineeringdaily.com/2018/07/26/ghost-open-s...

Edit: You can search for "Laravel" in the transcript and see an algorithmic attempt at transcribing that part of the conversation: https://softwareengineeringdaily.com/wp-content/uploads/2018...

johnonolan · 4 years ago
I'm still on the fence about this one a bit! From a product PoV — god yes I wish we just used Laravel. We'd have been able to move about 8x as fast and get so much more built for users just because the ecosystem is so much better developed. When Ghost first launched in 2013, there wasn't even an off the shelf RSS lib!

That said, Ghost succeeded in large part because it was a new and interesting Node thing, and we might never have gotten as far as we have done without that :)

mikece · 4 years ago
> When Ghost first launched in 2013, there wasn't even an off the shelf RSS lib!

Is there a blog post or retrospective about the things y'all had to invent/adapt/overcome in using NodeJS? Your interview was the topic of much conversation where I worked at the time; we were a C# shop instead of PHP/Node but we were moving into Big Data and there was agitation to adopt every trendy language for the various bits of the pipeline (Scala for Spark; Java for Storm; Python just because) and your comments about using a stack you know well and Dan KcKinley's "Choose Boring Technology" blog post[1] were the touchstones for the "let's not get too trendy with our language/tech choices" camp.

[1] https://mcfunley.com/choose-boring-technology

ericcholis · 4 years ago
Having started a large project in 2012/13 (which is still running), I wish I had done the same. Although, if I remember correctly, the ecosystem around Laravel was still very young at the time.
alberth · 4 years ago
Great nugget. Thanks for sharing.

Here is the transcript: https://softwareengineeringdaily.com/wp-content/uploads/2018...

mikece · 4 years ago
Sorry -- didn't see your reply before posting an update to my comment with a link to the transcript.
keraf · 4 years ago
Off-Topic but Ghost's recruitment process was an instant turn off for me. As much as I love the project and would have liked to work on it, I couldn't commit to spend 5 to 10 hours on a coding task without even talking to a human first [0]. I understand resources might be tight in small companies, but the prospect of having someone tell me "oh sorry, we already filled the role" after 10 hours of code was not something I wanted to get into.

On-Topic: Congrats for the new major release, always exciting to see what the team delivers!

[0] https://careers.ghost.org/product-engineer-node-js/en#block-...

beepbooptheory · 4 years ago
I'm definitely sensitive to the unpaid labor thing, but idk how many hours I have spent working on cover letters and my resume anyway, trying desperately to get noticed, only to have no response at all, or just get filtered out in the first step. I have talked to maybe 4 humans total in my couple of years of trying to get a coding job! This makes me excited more than anything, to have something right out of the gate to test my skills on, to be slightly more assured that my work will actually be looked at before I get filtered out... That is absolutely enticing and huge to me, but I get that I am maybe more desperate than most.
djbusby · 4 years ago
Even after the 10h on code or cover letter there is no assurance your submission will be viewed by human. It's easier to filter out code submission than CV/CL. IME the code-first process is even less odds of humans
zasdffaa · 4 years ago
Do a good project, put it on a public repo. Point them at it. That will help. Or OS contribs perhaps. Good luck!
zasdffaa · 4 years ago
I went for a job, was given a vague programming task. I spent days on it and was rejected. When I asked why they told me it wasn't what they wanted. I asked what was. What they told me approximately (and that was pretty unfocussed) I was stunned, there was no way I could have got that. Partly a lack of domain knowledge (but the level of expertise expected wasn't stated, apparently telepathy should have been used or something) but mainly the spec was so utterly vague you could not IMO deduce anything useful from it. I resolved if I was ever given such a non-spec coding task ever again, I'd drop it immediately. I'd recommend to others do do the same.

tl;dr if they don't give you a reasonably clear spec, walk away.

Edit: the situation is very asymmetric. They can well afford to waste your time, where you is any number of candidates that apply. There's no comeback on them for being wankers. Another example, I applied for a job, told them I could do it even though I didn't have language X, but I sure knew Y. They asked me to prove I knew Y so I wrote a very detailed breakdown showing I had immense knowledge, maybe more than he had. He dismissed 12 hours work with 4 words "you don't have X". Draw your own conclusions.

WhitneyLand · 4 years ago
Agreed. I think it’s appropriate to walk away from medium-interest opportunities over this because there are too many out there to consider.

With a high interest opportunity it’s less likely to come up, because those are worth the time to strategically target with custom projects, which works pretty well in my experience.

I don’t mind tech screening or leet code challenges at the right times, but an oversized amount right off the bat seems too inefficient, a ham handed way to connect with good candidates.

Dave3of5 · 4 years ago
Wow ok that is a lot for any company to ask you. I technically couldn't do that as I'm not allowed to have a second job whilst working for my current company.

That coding challenge is nuts!

halfdan · 4 years ago
It's not a job though - you're not paid for it. Your employer can't prevent you from solving leetcode challenges either.
chipotle_coyote · 4 years ago
When this article notes “the product has evolved significantly from humble beginnings,” that’s in a certain amount of tension with the claim immediately before it: “Ghost’s mission from the start has been to create a focused platform for professional publishers.”

In fact, “humble beginnings” is a link to John O’Nolan’s original post introducing “Project Ghost,” and while that post talks about publishing it never mentions professional once. The entire argument being advanced in that post, in fact, is that WordPress evolved so far from its blogging platform roots that there was space for someone to create a new system that refocused on blogging. Ghost’s original slogan, as seen in that very first linked post, was “Just a blogging platform.”

Ghost 5.0 talks about the work being done in the last few major versions: introducing support for Patreon-esque membership tiers, Substack-esque email newsletters, support for videos, podcasts, and other “diverse types of content.” It now describes itself as “a modern CMS.”

To be clear, I’m not saying there’s anything wrong with that. But to paraphrase Mr. O’Nolan: Ghost, by anyone’s definition, is no longer “just a blogging platform.”

So is there space for someone to create a new system that refocuses on blogging? Maybe. Blogging isn’t exactly seeing a resurgence, but I think it’s seeing renewed interest. Hugo, Jekyll, et. al. aren’t that new system, because they’re very much targeted to, if not developers, the kinds of people who read Hacker News. I know I’d personally love a light blogging engine that wasn’t entirely static, and that did have things like a built-in editor and out-of-the-box support for Micropub (or even Metaweblog) APIs and other “IndieWeb” artifacts.

ushakov · 4 years ago
i disagree, because subscriptions and mailing lists is what blogging means today

Ghost is a modern blogging platform after all

alberth · 4 years ago
> “We're a team of 31 people now, spread all over the world, and Ghost's own revenue is now about $5M/year (up almost $2M from this time last year). We're still an independent, self-funded nonprofit organisation that can never be bought or sold. And, everything we do is still decentralised and open source.”

There’s a lot to unpack from this paragraph. Good for them.

ushakov · 4 years ago
i'm wondering if they're operating as non-profit how do they spend the surplus funds? give out to employees?
johnonolan · 4 years ago
100% of profit is reinvested each year and carried forward toward future investments in the product and the team
johnonolan · 4 years ago
Hi HN John from Ghost here. Excited to launch 5.0 today, 9 years after Ghost first got built thanks to a popular post right here on Hacker News. We're hanging out in the comments today if you have any questions or thoughts!
alberth · 4 years ago
Off-topic: I really liked the previous homepage you had instead.

I completely realize that the copy is largely the same (which you have amazingly good copy), but I think you're confusing the potential buyer by having an Analytics Dashboard as your hero image.

You're not an analytics product. You're a publishing platform making it easy for people to make a livelihood using your platform. As such, the hero image should be about that person and/or publishing ... not about clicks and page views.

hedora · 4 years ago
Agreed. I've never heard of Ghost, but my thought process was roughly this as I read the article (Based on comments here, I think most of my conclusions were wrong):

- Oh, an editor that's somehow optimized for professional flows. Maybe that's worth learning.

- Nope, wait. This is an analytics product for people with lots of readers. Meh. ...vague privacy concerns...

- Looks like a "call to ask for pricing" model or something.

- I wonder if this supports RSS, or if it'll break my reading flow if it catches on. (Scroll down, see there's no rss icon). Nope. Back button.

Anyway, congrats on the 5.0 release!

(Please take this as constructive criticism, and note that I'm not your target audience!.)

sph · 4 years ago
Same. Someone recommended Ghost to me for my blog, went on the site and immediately "hmm, this doesn't look like a blogging platform..." Took me a couple tries to dive below the slick marketing speak to find that it is, in fact, a publishing framework.
mikece · 4 years ago
Do you still wish you had written Ghost in Laravel/PHP like you mentioned on the SE Daily podcast back in 2018?

Reference: https://news.ycombinator.com/item?id=31478649

laveur · 4 years ago
Would you consider adding support for PostgreSQL instead of just MySQL. I realize that it can greatly complicate things, but PostgreSQL is generally a much better DB.
johnonolan · 4 years ago
This is answered in some detail in the post :) Ghost uses Knex and Bookshelf, and can work with any database that is fully supported and made interoperable by those packages. So if anyone contributes to the upstream repositories, the Postgres will work automatically. The core Ghost team focuses on MySQL because we're a small team and we can only really have the resources to document and support one environment properly.
vanilla-almond · 4 years ago
Congrats on the 5.0 launch! A few questions below...(thanks)

Back in 2013, Ghost was promoted as just a blogging tool. In contrast, WordPress had become a general publishing tool i.e. a blog, a CMS, an e-commerce store, any type of website (portfolio, news website, etc.) Fast-forward today and Ghost is also a general publishing tool that can do many of the things WordPress does.

How do you see Ghost vs WordPress today? Is it fair to say that Ghost today has become what WordPress is (i.e. a publishing tool covering the same use cases as WordPress)? Or is Ghost's scope more narrow than WordPress?

johnonolan · 4 years ago
I mean I kind of wrote 2,000 words answering this in the post that these comments are about. We've always been focused on a single core usecase: Publishing, and that is still true today. WordPress diverted away from blogging and became a tool for building general websites, ecommerce stores, job boards, real estate listings, social networks (bbpress), enterprise tools (altis), and even full blown applications. In terms of diversity of usecase, you really can't beat WP for how many different things it can do.

Ghost's scope has grown significantly relative to Ghost, but - as I outlined in the post in some detail - our target usecase for the platform has remained pretty consistent, and far narrower by comparison.

All that being said: Apps have to evolve with the market, and Ghost is no exception. It's no use making something and then never changing it, because the world around it doesn't stand still.

Dracophoenix · 4 years ago
This might be a little more out there as a question, but what's your take on future trends and web technologies ? Static vs Dynamic Sites? Will AI/Machine Learning outmode the need for CMSs/platforms Ghost or Wordpress? Are Javascript and its derivatives here to stay or does Rust or some other language have a chance at taking the crown?
ushakov · 4 years ago
i have a couple questions:

does Ghost still depend on jQuery?

do you consider adding server-side code highlighting?

do you consider supporting other mail options other than Mailgun?

i'd love to start a mailing list with Ghost but those issues keep me from it

otherwise i'm always looking out for Ghost and you've made amazing progress so far over the years!

throwaway284534 · 4 years ago
Personally speaking as a developer, I had not-so-great experience building a Ghost blog last year. The choice of Handlebars templates brought all the usual headaches of stringly typed language: no IDE feedback on what’s in scope, unclear variable declarations, and the ever present feeling of a temperamental magic.

The Ghost dev team has opted for a strict control over how local installs can be modified, or really, how they can’t. “Ghost Doctor” is more like a cop, and runs a level 3 diagnostic on startup, refusing to run if the engine has been tampered with in a way that the dev team deems unacceptable. And there is no off switch either.

You can’t, for example, modify any of the template data fetching helpers. The only real way to customize the template language is by switching Ghost to a headless mode and praying someone out there built a starter kit that looks good.

And don’t even think about changing the permissions of files within the engine. This especially burnt me when I tried to implement SVG placeholders that get generated on image upload. The suggested solution is to do all asset pipeline modifications via local web servers and shuttle data back and forth.

The last straw was when I wanted to add custom fields to posts. The ruling opinion at the time was to fork the engine, modify the schema, add the new fields to the admin UI, and then modify your custom templates. Just remember that you’ve now opted out of automatic updates and will be maintaining your fork indefinitely.

Believe me, I am sympathetic to why the Ghost devs chose this path. It’s easier to maintain a smaller and more predictable platform. I just couldn't help but feel silly using software with so many arbitrary and artificial restrictions.

nightpool · 4 years ago
> You can’t, for example, modify any of the template data fetching helpers.

how is this different from forking the engine? I'm not super familiar with Ghost's internals, but wouldn't this basically count as a fork anyway? Seems like you either have the option to change the internal engine code, or you don't. I think it makes sense that there aren't a lot of "in-between" options, because that's just asking for unannounced breakage when your "auto-update" system decides to overwrite whatever files you've already messed with, or change the files that are downstream from that one (breaking compatibility)

throwaway284534 · 4 years ago
That’s pretty accurate. I suppose what I should’ve wrote was that there a some template data helpers that can’t be modified or reimplemented from the vantage point of non-Ghost contributor. And somewhat more painful, adding new Handlebars helpers can’t be done within a custom theme. This would mean either forking the engine or switching over to the headless API mode and building something like a Next.js front-end.
Dave3of5 · 4 years ago
This was one of the first fully remote companies I applied for. I applied via workable on 2016-11-29 as a node.js developer. I think my application was immediately rejected (don't know why). I got a bit pissed and started to write a competitor app.

I gave up on that with the ringing sound in my head that somehow they managed to convince people to buy their blog service when there are many free alternatives out there.

That's the real interesting part about this story. How the f did you manage to get people to buy a commodity for a premium price.

And yes I'm still salty but I now work 100% remote due to the pandemic so that's lessened my hurt.

Edit: Since I'm being misread let me explain, I am saying that I tried and failed to write the same type of thing so hats off to them!

I'm a promoter of Ghost I think they are doing great work. Well done on v5.0!

ushakov · 4 years ago
you have absolutely no idea what you're talking about

Ghost provides guarantees that no individual developer (including you) can

they dedicated over 9 years to work on Ghost and built a company around hosting instances to fund the development

onli · 4 years ago
(Note that I'm not parent)

Let's try to read that a bit more positively. Their trajectory was incredible impressive and really a little bit a wtf. They managed to create a product in a category everyone thought to be conquered by Wordpress and the Medium-of-the-time SV project, pivoted that from clearly a blog to something clearly more commercial. All while using a programming environment that was pretty obviously the wrong choice for the project plus starting with a severely feature-limited system. And even asking more for hosting than seemed remotely reasonable (unsure that this was true or just an impression back then, current pricing looks reasonable, but that might be a changed perspective).

Having worked on two blog engines at that time I can completely relate to the jealousness, without having applied :)

Dave3of5 · 4 years ago
> you have absolutely no idea what you're talking about

Huh? Why the personal attack?

I have no idea about me applying to Ghost and being Ghosted ?

> Ghost provides guarantees that no individual developer (including you) can

Where did I say that I was doing this ? If you mean that they provide an SLA and uptime guarantees and such yip and there are many and I mean many alternatives to this that give the same guarantees and always have done for the full course of the 9 years.

> they dedicated over 9 years to work on Ghost and built a company around hosting instances to fund the development

Yes and good on them ! My OP was how much of a miracle this is in software.

freediver · 4 years ago
Interesting how it went from 'just a blogging platform' to 'turn your audience into a business'.
mkr-hn · 4 years ago
It's hard to sell $300/year managed hosting subscriptions to people who just want a blog. This is probably the same reason Automattic switched to an all-inclusive monoplan at $180/year and got rid of any language that suggested it was suitable for personal blogs.
freediver · 4 years ago
You are probably right. I still feel a lot of the original vision and promise of the project has been lost in this translation.

Ghost origins were a promise of better blogging (it criticised WordPress for becoming a CMS and then it became a CMS itself).

https://john.onolan.org/ghost/

ubac · 4 years ago
Ghost starts at $9 per month though -- obviously depends on people's circumstances but I would say that's reasonable for many people as a personal blog
ulisesrmzroche · 4 years ago
Not really, even if you’re being sarcastic.