Ask HN: Best Blogging Platform
I’m curious what everyone would recommend for a new blog? I really want to focus on the writing and not deal with updates and viruses. But I’d still like to do a good degree of customization and plugins and a custom domain name.
134 comments
[ 2.4 ms ] story [ 205 ms ] threadI recommend [1] hexo, for it's simplicity. You can write in markdown files and generate a static blog for static hosting.
But [2] Gatsby is another similar framework, but it uses React.
[1] https://hexo.io/
[2] https://www.gatsbyjs.org
[1]https://www.11ty.io [2]https://ghost.org
A Hugo static website on Github.
Netlify hosting that Github repo.
It's really turnkey and zero maintenance, and free.
https://sergio.dev/posts/genserver-webcrawling-in-pure-elixi...
But Blogspot as a blogging platform is still a viable choice.
If you go with the managed hosting route, most companies handle security and updates for you, so you can focus on writing and leave everything technical to someone else.
I am working on one myself — and have a private beta running, if you are interested [2], —, but of the top of my head, some companies that will go above and beyond as far as WordPress is concerned, include Kinsta [3], Pantheon [4] and Presslabs [5]. The last one is based in Romania and open sourced a bunch of their stack, worth checking out.
[1] https://wordpress.org
[2] Just email me at help@madpony.co for information
[3] https://kinsta.com
[4] https://pantheon.io
[5] https://www.presslabs.com
I will never, ever, ever advocate for running Wordpress for much of anything, but I would also argue that any nontrivial piece of software has a fair number of security issues and that Wordpress vulnerabilities are particularly visible because of how widely used it is and the public-facing nature of the software.
Simple, clean, fast. Updates and viruses are a non-issue.
Depends what plugins you're talking about, but if you're a non-programmer/dev type, then you're probably better off using Wordpress as a blogging platform if some serious customisation is wanted.
Trying to build anything beyond a super generic blog is a huge chore. Hugo has a much, much better community IMO
I'm amazed that they got funding for it...
That said, I am happy to hear I'm not the only one with this sentiment.
Can use it with your custom domain, pretty customisable, and since its a static site, relatively secure.
There are literally tens of thousands of themes - open source and commercial - that you can try out in a matter of minutes instead of wasting days or weeks designing your own theme.
You rarely have to code stuff by yourself because there is a plugin for any functionality you can imagine.
Latest version of WordPress comes with the new Gutenberg editor which I'm personally not a huge fan of as it obfuscates too much of WordPress' inner workings. You might, therefore, want to use the Classic Editor plugin as a solution.
If you haven't already bought a domain name, I recommend Porkbun. Moved several domains to them in the past months and have found them to be cheap and yet reliable straight shooters.
[0] My list of must-have plugins: Yoast (for SEO), Autoptimize (caching/performance), Wordfence Security (multi-layer security).
I wrote 5 articles that I thought were interesting. Then I bought a domain name, wrote a php script to serve them. (If url1 do x, if url2 do y) nothing fancy.
Only when I saw that I could sustain writing regularly I started worrying about the platform. And there is no best platform, only the one you are familiar with.
It is freeing. Anything is possible, and nothing is in your way. It really doesn't take that much time.
https://github.com/pauldotknopf/pauldotknopf.github.io/blob/...
https://pknopf.com/
I publish my blog as a static site served by nginx on a $5 / node (which also hosts a dozen other things—I don’t get much traffic). Every once in a while I ssh in and run an apt upgrade but no updates to manage beyond that. I use https://getstatik.com/ to generate the site from markdown files. I’m surprised it hasn’t caught on more given how flexible it lets you be with defining how your site should work. The whole thing is stored on git and I can deploy with a push to my server remote.
That said if you want to focus on writing I would start with something as simple as ghost of medium to see if you’re actually as into writing as you think.
Self-hosted Ghost is a pain in the ass to maintain.
Disclaimer: the above is my own experience, and not necessarily that of others.
I ran into several problems writing Ansible automation to spin up and configure a Ghost server. Eventually I gave up and used a different blog engine that was more amenable to automation.
Granted, this may just be a low motivation on my part to use Ghost, in favor of just getting something up and running.
I'd actually recommend writing in plain html+css at first, and then moving over to a static site generator once you have ~10 posts. You'll have a much better idea about what makes a good system at that point.
(I wrote my own static site generator after ~100 posts, which is longer than I'd recommend going!)
I find Gatsby and Hugo very powerful; but miss the simplicity of Jykell. Even if you don't think nextjs is great for blogging, it's still worth checking out! Their docs + getting started guide are some of the best.
For example; writing up a small MVP site to test out a business idea (https://www.hiredsomehelp.com/), it's in progress, but even still, only took about 15 minutes to push up via netlify.
That being said, I feel like all these new static site generators are terrific; a real sweet spot in web development in my opinion :)
Stay the hell away from Wordpress. It. Will. Get. You. When you least expect it ️
This is assuming you are willing to pay for at least your own server. Their hosted option is also great and highly recommended if you want to just start writing before thinking of customizations.
I find static site generators to be awesome but generally a hindrance to the flow of wanting to start writing spontaneously. More often than not, more time goes into figuring out the perfect workflow for the blog system rather than writing. Caveats, YMMV etc apply :)
If you look at the various options being suggested in the comments here you'll see many of them don't come with comments out of the box. Jekyll, Gatsby, Hugo, 11ty all require you to use a third party service or roll your own.
Yes none of those static site generators support commenting, making them not very suitable for blogging(they dont even support searches). That is why I am not a proponent of static generators as a blogging platform.
Like the GP, I was also under the impression that Ghost doesn't support commenting by design but you are suggesting otherwise. I find it hard to believe that adding commenting system(something that all major CMSs have had since forever) would be that technically challenging that it hasn't been added even six years after its first release.
There are a ton of good static site generators out there. My blog[0] runs on Jekyll[1]. Hugo[2] is a popular option. I've fiddled with Gatsby[3] and heard good things. Eleventy[4] looks as close to Jekyll-but-in-JavaScript as I've seen.
Since you want to be able to customize it, I'd probably take the static site generator's language into account. Do you like...
Ruby? -> Jekyll[1]
Go? -> Hugo[2]
JavaScript? -> Gatsby[3] or Eleventy[4]
Some other language? -> google "[language] static site generator" and see how many GitHub stars it has.
Once you've figured that out, most of the hosts support custom domains. Netlify[5] is free, and works very well. It's what I use currently. I used to host my site on DigitalOcean[6], but Netlify is definitely more painless, especially from a devops/patching standpoint. Plus it has a CDN so your site would be faster.
[0] https://daveceddia.com/
[1] https://jekyllrb.com/
[2] https://gohugo.io/
[3] https://www.gatsbyjs.org/
[4] https://www.11ty.io/
[5] https://www.netlify.com/
[6] https://www.digitalocean.com/
that said i'm not sure how it fares wrt to plugins, i think it's pretty vanilla in terms of user-facing features (though plenty of very straightforward theme tweaking is possible).
Rarely have I seen interesting discussion happen in the comments of a personal blog. All great discussion is held in aggregators like HN.
Similarly search is best left to specialized platforms such as a search engine. Blogging software may have decent search by why recreate a search engine when duckduckgo.com will far exceed capabilities with site: and filetype:?
For me a personal site and blog are mostly single visit kind of stops. I end up on a blog via a link but almost never do I feel the need to read the top 5 best posts of some blog. I got some interesting information from the current article but then I’m of to the next link that shows up in my feed.
In my opinion a website needs readability[0] and an ATOM/RSS feed. All the rest is part ego ("my content is so great people just have to see what else I wrote") and part feature creep.
[0] https://www.sinax.be/blog/general/guidelines-for-spartan-web...
>Rarely have I seen interesting discussion happen in the comments of a personal blog.
I disagree with this and even more so if we are talking about programming blogs. A lot of interesting discussions and rebuttals happen in the comment sections.
Regarding outsourcing search to a dedicated search engine, its a mixed bag. 99% of the users don't even know about the `site:` and `filetype:` stuff. You also have the option of embedding Google site search but the first four results are ads which isn't very ideal. Wordpress search is decent out of the box but if you want something advanced, it has some nice plugins that allow advanced searching with fuzzy matches.
What I've found to work well for commenting is to put an e-mail address on the page where people can send their comments. When there is a good comment, I put an update in the article.
The main advantage of this approach is that it weeds out garbage responses. By making it ever so slightly harder for people to post a comment, they are forced to take an extra few seconds to consider if they really have something meaningful to add.
I had once thought about a different approach - Creating a Google form (for each blog post) and then embedding it on the blog post. Then whenever anyone submits a comment via the form, it would get saved to a Google spreadsheet(this needs to be made publicly readable). The unwanted comments can just be deleted from the spreadsheet. The contents of this spreadsheet can then be obtained in a JSON format and displayed on the blog post using Javascript.
A difference could be that, with a 1st party commenting service, your whole blog might get banned, instead of only the comments. (Depending on how banning gets implemented.)
Also, Ghost doesn't even have a commenting service of their own and one would need to rely on Disqus to add comments on a Ghost powered blog :)
Anyone can ban you, even your hosting company. In practice banning is pretty rare.
> I might as well just use Disqus or Facebook comments that I can embed on the site
And you will contribute to unethical tracking practices even if your users are not logged in to Facebook or Disqus[1].
[1] https://replyable.com/2017/03/disqus-is-your-data-worth-trad...
>And you will contribute to unethical tracking practices even if your users are not logged in to Facebook or Disqus[1].
I don't care much about that because one way or the other one of the tech giants is going to track us anyway. I would much rather install Google analytics and get a great overview of my visitors. I don't think anyone who is an active user of the tracking behemothos Facebook or Google(which represents most of the internet users) should be concerned about tracking.
But coming to main point, I am actually against Disqus or facebook comments. I prefer plain old self hosted comments(wordpress) for other reasons and this solves your concern as well.
If you moderate a subreddit it's extremely unlikely a ban would happen since you have control over the content.
But hey, I get it, you like Wordpress.
> saved to a Google spreadsheet(this needs to be made publicly readable)
Hmm, then, people's email addresses cannot be remembered, meaning, no reply notifications?
In most cases this means tapping on the link and typing the response. Mobile OSes make it pretty seamless.
I wouldn't go with Wordpress or any other CMS unless I absolutely needed permissions for multiple authors and such or if the author couldn't handle writing markdown and using a terminal command.
>if the author couldn't handle writing markdown and using a terminal command.
I would say this represents more than 99% of the bloggers. Even I prefer a WYSIWYG interface to markdown any day even though I consider myself somewhat tech-savvy. I find markdown to be very hacky when its a bit more than just headings and paragraphs(eg. nested lists with ordered list inside unordered list are so hard to do in markdown)
Searching should be left to Google. I'm skeptical blog users actually search on a site though I admit I've never seen any metrics about that.
If you insist on having comments on your site and force users to sign-in etc this can be easily implemented with an API and some client-side code.
> I would say this represents more than 99% of the bloggers.
This thread is about HN users, not the general population.
> I find markdown to be very hacky when its a bit more than just headings and paragraphs(eg. nested lists with ordered list inside unordered list are so hard to do in markdown)
Well, no wonder you prefer Wordpress.
They do, please be assured of that. There is a reason companies like Algolia exist to provide better on-site search.
>If you insist on having comments on your site and force users to sign-in etc this can be easily implemented with an API and some client-side code.
Yes or without signing up and just commenting as guest. Welcome to Wordpress :) (And if I have to build another API just for comments, doesn't it defeat the simplicity of using a static generator like Hugo?)
>This thread is about HN users, not the general population.
I am not sure where you got that from? The author never said he was going to create a blog targeted for the HN crowd or anything like that. Maybe I am missing something?
>Well, no wonder you prefer Wordpress.
At least you acknowledge markdown's inferiority in this case.
I didn't say users do not search on-site, I said users do not search on blogs.
> And if I have to build another API just for comments, doesn't it defeat the simplicity of using a static generator like Hugo?
Not really. That is solved once and all your hosting problems are solved forever.
> Maybe I am missing something?
Maybe I'm wrong, but OP seems to be asking for himself, and this is HN after all.
> At least you acknowledge markdown's inferiority in this case.
No, I'm acknowledging your lack of technical skills.
I think they do. Also, Algolia has an official Wordpress plugin for one click installation. Why do you think that exists? Many of the highly trafficked sites in every niche are blogs. Take Mashable, ZDNet for instance. If you really think people don't do on site search on those blogs, then I have no say.
Yes the OP is asking for himself but he doesn't mention he's targeting the HN crowd.
>No, I'm acknowledging your lack of technical skills.
Yes, I already said `I consider myself somewhat tech-savvy` so no need to be snide. But that is beside the point, and you actually just proved what I am trying to say - for a regular user, accomplishing those things is much easier with a WYSIWYG editor that Wordpress or other CMSs offer, than with markdown.
There's still few every year https://wordpress.org/news/category/security/
And that's just the core WordPress. Plugins and themes carry their own issues. Reputable or not.
Also static generators aren't as convenient as WordPress is. I'm OK working with markdown or hacking the code, but it's too difficult for my wife, for example. So, she's running a WordPress blog.
Commenting is also better on WordPress. She used to use Discuss for commenting and people are more to reluctant leave Discuss comments than to leave WordPress comments. I believe that's because you don't have to register to leave a comment in WordPress - just type your email and you're ready to go.
None of them do anything novel, or particularly better than all the others. They just have some quirk that makes people choose them. "This one is a static binary!" "This one uses a specific programming language!" "This one uses a unique templating language!"
Would having a dedicated, generic standard for templating even be possible? Something with extra standards for specific uses, so you could just learn the extensions that are useful for your particular application? Maybe that would eliminate the need for 1,000 identical-but-incompatible solutions.
After a while, what you actually want is a CMS, but the good ones usually are not free.
In my case [0] because I wanted to generate the site from a single Markdown file. I wrote a Perl program to accomplish this. Then I got bored and wrote a Python version as well. And it works, I have kept up posting to my blog [1] for 150+ days since it went live.
[0] https://github.com/john-bokma/tumblelog
[1] http://plurrrr.com/
Did you consider pandoc?
https://getnikola.com/
It's been running like a charm for ~1 year.
Add your content to the `content` directory. Then run `python3 makesite.py` to generate the static blog. It writes the generated blog to the `_site` directory. Finally copy this directory to wherever you want to serve your blog from, e.g., GitHub repo with GitHub pages enabled, virtual private server, cloud storage, etc.
It works pretty well out of the box and it is highly customizable too because doing so involves just modifying the existing Python code or writing your own Python code.
Disclaimer: This project has been written by my wife. I use it myself to render my static blog at https://susam.in/.
Aww... That's so sweet.
[1] https://blog.getpelican.com
[2] http://nil.wallyjones.com
Easy to set up and try and you can customize it as well. With lots of plugins for everything.
You can go with the paid WordPress.com and they will handle all the updates for you.
Static sites are good but when it is time for SEO and customisation you will realize that it can get really painful in a static site generator.
My experience has been quite the contrary. I've found it super easy to get good SEO with Jekyll sites.
What have you found to be painful?
care to explain? because that makes _no_ sense to me. SEO is primarily about content these days. The little "add this tag for SEO WIN" type things stopped being useful years ago. Have a good title, have good content, link your stuff well, update regularly: success!