8 ms·
Ghost 5.0
- iruoy 4y agoI couldn't even install this on my server because it has Node 18 instead of 16
- nicoburns 4y agoIf you're trying to run more than one application on a server you probably ought to install dependencies in such a way that different applications can use different versions. Either using a toolchain-specific version manager such as nodenv (or nvm or asdf), or a more general tool like Docker. It's pretty reasonable for projects to require a specific language version. Especially in this case as 16 is still the latest LTS version of Node.js. EDIT: They even say "Ghost can work with other operating systems, node versions, and databases (particularly those supported by Knex) - but as a small team, we only document and support one narrow stack that we know works really well." Can't really see how you can fault that.
- iruoy 4y agoThis is not a production server. Just something I'm running for personal services. And I would expect a new major release to run on the latest even version of nodejs. The uneven versions are for development purposes. Version 18 will become the active LTS in a few months.
- johnonolan 4y agoThen we will support it in a few months. That's how LTS works. We can't just add support for Node 18 if all the upstream packages we depend on don't support Node 18.
- eddieroger 4y agoWhat a time we live in where you don't have to worry about running software because your OS is too old, or you don't have a Pentium 2, or enough RAM. If they document their requirements and you can't meet them, then the software isn't for you right now. That's not really their fault.
- ushakov 4y agothey provide ready to be deployed Docker images https://hub.docker.com/_/ghost/ https://hub.docker.com/_/ghost/
- zimpenfish 4y agoAlthough, to throw some historically anecdotal salt into the fire, I was kinda forced to switch from Ghost to Hugo when firstly, the migration to v1.0 (late 2017) using the Docker images was a right old faff and secondly, a few months later (early 2018), said Docker image managed to wedge itself into an inoperable mess.
- ushakov 4y agoyeah, but just like with everything else you self-host - requires maintenance
- neurostimulant 4y ago> said Docker image managed to wedge itself into an inoperable mess Can you elaborate on the issue you encountered? Most issues I've seen in the wild related to docker deployments is due to not specifying a version tag on the docker image, which means docker will pull the image with the `latest` tag. Fast forward a few years, when you need to restart the container, and for some reason you pull the `latest` image again (either accidentally or automatically by your container system), the new version is now too far ahead from your previous system and break spectacularly when run with your existing data. Some apps even attempt to migrate the data, but failed and leave the data in corrupted state so you can't go back to the previous version.
- zimpenfish 4y ago> Can you elaborate on the issue you encountered? Alas, no, I didn't keep detailed notes at the time (2018) because I was too busy trying to recover my blog from the disaster. > Fast forward a few years [...] the new version is now too far ahead It was 6 months after the migration to v1 and 5 months before v2 came out.
- moomin 4y agoWait, they’re saying that 4 of every 10 dollars made by a ghost customer goes to Ghost? I’m sure the product is good but that sounds like a large overhead.
- johnonolan 4y agoIt doesn't say that anywhere - there are 0% payment fees on transactions in Ghost.
- ohgodplsno 4y agoNo. Ghost.org provides a hosting service, that makes 4 million dollars a year. Users of Ghost (whether on Ghost.org, or self hosted) who have set up payments, bring in 10 million dollars a year to themselves, in total.
- hedora 4y agoSo, 4 dollars out of less than 10 total, then (subtracting out self hosted sites' revenue)? This part of the copy confused me too. What percentage of ghost users set up payments at all? I'm guessing it is a tiny fraction, making the ratio of the two numbers meaningless. (Independently, the two numbers are each a great achievement!)
- ohgodplsno 4y agoThe two numbers are entirely unrelated. Ghost does not take 40% of your earnings. If you take a platform such as Wordpress, you can pay $5 every month to have it hosted, and eventually set up a payment system on top. It's not Wordpress taking a cut of your payments, it's you paying them for a service you would have to pay them for anyways, payments setup or not. Same thing for Ghost.
- ochronus 4y agoI 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.
- ushakov 4y agoyou can just use the API? https://ghost.org/docs/admin-api/#members https://ghost.org/docs/admin-api/#members
- mikece 4y agoEvery 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-source-publishing-platform-with-john-onolan/ 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/07/SED638-Ghost-with-John-ONolan.pdf https://softwareengineeringdaily.com/wp-content/uploads/2018...
- alberth 4y agoGreat nugget. Thanks for sharing. Here is the transcript: https://softwareengineeringdaily.com/wp-content/uploads/2018/07/SED638-Ghost-with-John-ONolan.pdf https://softwareengineeringdaily.com/wp-content/uploads/2018...
- mikece 4y agoSorry -- didn't see your reply before posting an update to my comment with a link to the transcript.
- johnonolan 4y agoI'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 4y 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 https://mcfunley.com/choose-boring-technology
- alberth 4y 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 4y agoi'm wondering if they're operating as non-profit how do they spend the surplus funds? give out to employees?
- johnonolan 4y ago100% of profit is reinvested each year and carried forward toward future investments in the product and the team
- ushakov 4y agothanks for the response! that's seems like a great way to run an open-source company (and also scare potential VCs!)
- coldtea 4y agoAre VCs even a thing for non-profits?
- alberth 4y agoYep, https://ghost.org/help/funding/ https://ghost.org/help/funding/
- coldtea 4y ago"Yep" in what sense? The link refutes a "yep" answer. It shows one VC interested in funding them, and they answer to him: "But we're a non-profit org with no share capital, making FOSS. So there's nothing to invest in :)"
- johnonolan 4y agoHi 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!
- laveur 4y agoWould 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 4y agoThis 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.
- mikece 4y agoDo 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 https://news.ycombinator.com/item?id=31478649
- alberth 4y agoOff-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 4y ago
- fbn79 4y agoAny good reason for the project to still need "bluebird" as deps?
- erisds 4y agoGood 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 https://github.com/TryGhost/Ghost/issues/14882
- ushakov 4y agoi have the same question about jQuery and lodash (underscore) use in Ghost do you have a plan to modernise these parts?
- Dave3of5 4y ago> Would love to get some help to get it out though Is this genuine ? So If I created a small PR refactoring out a bluebird style promise to native node it would be merged ?
- jtwebman 4y agoI still use Bluebird library for things like property based promises resolutions and the map is a quick way to run only so many promises at a time instead of all of them or in series.
- Dave3of5 4y agoThis 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 4y agoyou 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 4y 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 4y agoThanks I've edited my OP to give a more clear indication of what I meant. Not sure why the downvotes it's quite incredible what they've managed to achieve far more than what I have in the 9 years to be honest!
- ubac 4y agoIncredible. Well done to the Ghost team -- every new update is a dream.
- throwaway284534 4y agoPersonally 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 4y 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 4y ago
- pbronez 4y agoNeat. 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 4y agoGhost is a CMS, although can be used to source content for a static site generator
- keraf 4y agoOff-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-10 https://careers.ghost.org/product-engineer-node-js/en#block-...
- beepbooptheory 4y agoI'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 4y agoEven 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 4y agoDo a good project, put it on a public repo. Point them at it. That will help. Or OS contribs perhaps. Good luck!
- beepbooptheory 4y agoHaha thank you, I knew I was doing something wrong!
- wiradikusuma 4y agoI'm not familiar with Ghost, is this static site generators like Hugo that provides its own hosting? (So, like Netlify)
- qbasic_forever 4y agoIt'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.
- steve_adams_86 4y agoThis 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.
- chipotle_coyote 4y agoWhen 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 4y agoi disagree, because subscriptions and mailing lists is what blogging means today Ghost is a modern blogging platform after all
- freediver 4y agoInteresting how it went from 'just a blogging platform' to 'turn your audience into a business'.
- mkr-hn 4y agoIt'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.
- ubac 4y agoGhost 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
- mkr-hn 4y agoI tried it once. It's extremely limited with only being able to use their few built-in integrations and stock themes with no ability to edit them. $108/year is a lot of money to not be able to touch your theme. An extra $72/year will get you wordpress.com with custom theme and plugin support. Drop $3/month and you can get write.as. The starter plan is a bad deal.
- freediver 4y agoYou 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/ https://john.onolan.org/ghost/
- ulisesrmzroche 4y agoNot really, even if you’re being sarcastic.
- awill 4y agoGhost 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.
- atentaten 4y agoGhost 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 4y agoAnd where are you gonna find this supposed author?
- atentaten 4y agoI personally know two authors who have approached me about creating simple sites where they can sell their self-published books and blog about their book's content.
- ulisesrmzroche 4y agoI doubt it but even then it doesn’t extrapolate any further. As a dev, it’s your job to tell the client what’s good for them and it sure isn’t this.
- FR10 4y agoIve 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 4y agoMaybe 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 4y agoI 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.
- marviio 4y agoI 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.