top | item 31477880

Ghost 5.0

186 points| nreece | 3 years ago |ghost.org

94 comments

order
[+] mikece|3 years ago|reply
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|3 years ago|reply
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 :)

[+] keraf|3 years ago|reply
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|3 years ago|reply
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.
[+] zasdffaa|3 years ago|reply
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|3 years ago|reply
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|3 years ago|reply
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!

[+] chipotle_coyote|3 years ago|reply
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|3 years ago|reply
i disagree, because subscriptions and mailing lists is what blogging means today

Ghost is a modern blogging platform after all

[+] alberth|3 years ago|reply
> “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|3 years ago|reply
i'm wondering if they're operating as non-profit how do they spend the surplus funds? give out to employees?
[+] johnonolan|3 years ago|reply
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|3 years ago|reply
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.

[+] laveur|3 years ago|reply
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.
[+] vanilla-almond|3 years ago|reply
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?

[+] Dracophoenix|3 years ago|reply
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|3 years ago|reply
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|3 years ago|reply
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|3 years ago|reply
> 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)

[+] Dave3of5|3 years ago|reply
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|3 years ago|reply
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

[+] freediver|3 years ago|reply
Interesting how it went from 'just a blogging platform' to 'turn your audience into a business'.
[+] mkr-hn|3 years ago|reply
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.
[+] steve_adams_86|3 years ago|reply
This is really exciting. Congratulations, Ghost team!

To anyone who hasn’t tried ghost and is curious, you really should. I can’t think of many other products as long lived which have consistently improved and stayed true to their goals. Not only that though, it’s actually nice to use.

I got my start in blogging on ghost almost 9 years ago and I’ve tried probably a dozen things. Ghost doesn’t get everything right or do everything the best, it isn’t right for everyone, but it seems the most well rounded to me.

[+] pbronez|3 years ago|reply
Neat. I thought Ghost was just a JS-based static site generator, but apparently they've built out a whole platform to help independent content creators build & monetize an audience. Great to see!
[+] ushakov|3 years ago|reply
Ghost is a CMS, although can be used to source content for a static site generator
[+] ubac|3 years ago|reply
Incredible. Well done to the Ghost team -- every new update is a dream.
[+] ochronus|3 years ago|reply
I wonder whether finally, there's a straightforward way to embed a Ghost subscription form in any other website. Love the product, but the lack of this is a show stopper for me.
[+] atentaten|3 years ago|reply
Ghost seems interesting, but is it a Wordpress replacement? If I wanted to create a simple site for an author, where they can sell a couple of books directly from the site. Can Ghost allow this? With Wordpress, I can quickly grab a theme and install a couple of plugins to get this working for free, save hosting and maybe a single theme purchase.
[+] ulisesrmzroche|3 years ago|reply
And where are you gonna find this supposed author?
[+] marviio|3 years ago|reply
I am a Ghost user and there's a lot to like about it. One omission that I find strange is the lack of support for i18n. Both the payment flow (Portal), e-mail newsletters and transactional emails going out to subscribers have hard-coded English strings and you need to maintain a fork to translate it. Just seem strange to me in 2022.
[+] FR10|3 years ago|reply
Ive installed and used Ghost several times in the past, sadly, the versioning and resource hogging is just too much. (Im specially picky on resource utilization). Nevertheless, I may try the new features and see if its worth it now. Congrats on the release!
[+] infogulch|3 years ago|reply
Maybe this is the wrong way to use ghost, but can you publish from a git repo of markdown files? Markdown in my favorite text editor with git as version control is by far my preferred writing methodology.
[+] urlwolf|3 years ago|reply
I guess it still has no versioning right? this is a key feature for me. I used ghost back in v 3.0 days, but moved on partly because of that.
[+] awill|3 years ago|reply
Ghost was briefly the hot new place to host a blog. And then static sites came along (like Hugo), and a lot of the market moved there.
[+] wiradikusuma|3 years ago|reply
I'm not familiar with Ghost, is this static site generators like Hugo that provides its own hosting? (So, like Netlify)
[+] qbasic_forever|3 years ago|reply
It's database-backed so not really a static site generator. Think of it more like a Wordpress competitor--it's a nice CMS and publishing platform you can host yourself or pay someone to use a hosted version. Ghost is known for having a great editor with a huge focus on ease of writing. Lots of bloggers and writers swear by it.
[+] fbn79|3 years ago|reply
Any good reason for the project to still need "bluebird" as deps?
[+] erisds|3 years ago|reply
Good question, the short answer is no :)

The long answer is it's absolutely everywhere in our codebases, with some code relying on catch-predicates, meaning we have to pull it out in exactly the right order else things will break in weird ways... and we haven't gotten around to tackling that yet.

Would love to get some help to get it out though - I raised an issue here: https://github.com/TryGhost/Ghost/issues/14882