Ask HN: What's your favorite blogging software? (as of Feb. 2017)
Hi HN!
I want to start a blog and I'm trying to figure out what blogging software to use. Here's what I want out of it:
1) Custom domain 2) Free or cheap (I don't mind hosting on a VPS if needed) 3) Can handle a lot of traffic in keeping with #2. 4) Looks great and is pleasurable to use.
Any suggestions for your favorite blogging software? I'm leaning toward self-hosted Ghost, but would appreciate any recommendations. :)
37 comments
[ 4.5 ms ] story [ 102 ms ] threadMedium is more like the iPhone of blogging.
If you are OK with self hosting then you are probably going to be OK with Jekyll & hosting on GitHub Pages. That's free, you can use a custom domain, and it's fast. There are a lot of Jekyll themes out there to make it look good too.
I'm tired of WP and it getting hacked a couple of times per year--even on my barebones blog--and I wanted markdown posts. My girlfriend does a lot of the editing and it's gone smoothly.
Site is snappy & simple. I spent 5 or 6 hours coding the template for a new blog and it wasn't very difficult to get it working well in ghost.
Bashblog mentioned in another comment looks cool. https://github.com/cfenollosa/bashblog
Ghost's interface for writing is really nice. It get's out of the way so you can worry about writing content. Writing your own custom theme is pretty simple as well. I end up redesigning my own website every year or so.
Then you need 1 extra step to automate the publishing/sync to s3 of the generate static pages...
It makes publishing to S3/CloudFront extremely painless, and supports advanced thing like page redirects and Cache-Control settings per file type.
Write your own!
That's what I did somewhere around 2000 or 2001, some years before I could program my way out of a wet paper bag or had a technical career. I'll probably still be using a variant of the same system[0] long after I have fully obsolesced and retired to the proverbial van down by the river to wait quietly for death.
A simple toolchain that you understand and can maintain in its entirety turns out to be very useful for a long-term writing project, and blogging occupies a sweet spot where you can leverage common tools and libraries (for tasks like templating, lightweight markup, and publishing) without sacrificing much of your understanding of the system as a whole. You may not need much more than some blobs of Markdown and a Makefile.
[0]: https://github.com/brennen/wrt
Just start with something dead simple and then build from that - you might make horrible design mistakes, but hey, it's just for fun after all, and it's one hell of a learning process.
And due to my strange requirements, I couldn't use the widely used static page generators. I have a blog about programming, and sometimes I have some source files, data files, some programs - all used in a blog post, which is stored in a markdown file. I wanted to keep them in the same directory as the text file. I also wanted to publish only part of those files. To get there I implemented a couple of things like custom markdown tags, which are converted to proper links to the image files etc. The result is quite nice, I can shuffle the old blog posts to other directories, and the generated output is still the same. I can keep the images, data files next to the blog post, and they don't interfere with each other.
Previously I had all my blogs on Wordpress. That was terrible. Endless upgrades which sometimes destroyed my blog design. Security holes. Endless tries of hacking the page, or guessing the password.
Now I have no password, no hacking attempts (there is nothing to hack, and if someone does - I will redeploy the files from my computer). All posts are in git versioned files. I can edit them locally in Vim. Deployment is as simple as `git push heroku master`.
I wrote my own static-blog compiler, which reads a tree of markdown files, then spits out posts, archives, tags, etc. As an intermediary form it inserts all the posts into a local SQLite database (which can be trashed and rebuilt when required), which means I can efficiently output tags, etc.
Realistically my generator isn't so different from others, but it does integrate well for my personal use and supports comments - something a lot of static blogs miss. (I literally have a CGI script which writes out comments to flat-files, then these are picked up in the build-process, being fetched via rsync first).
Source:
https://github.com/skx/chronicle2/
Demo:
https://blog.steve.fi/
The only problem I have now is generating `similar posts` under each posts, which takes just too much time.
And I have no comments. I used disqus, but didn't like that.
Even if you remove the database post-build, such that each post must be re-parsed and re-added, the reduction of RAM meant things were still very fast on my desktop.
However I'm thinking about something else: I'm going to write a blog software with a nice api. It will be storing posts in a database on the server side, and will store them on the local too (as cache) - however the source files will be on disk, versioned by git. And it will send just new versions to server using a local command line utility. I really love publishing with a one liner.
This way I could have fast search, and comments on the server side.
If the database is used to serve the content it must be online, and so you lose one of the big appeals of static-sites: That they are static and can be served trivially.
If you're writing in text-files you need some kind of update-process which might become tricky if you edit past-entries, etc.
I suspect that publishing with one command doesn't really matter too much on technology; in my own case I just use a Makefile:
* Download the comments from the remote server, via rsync.
* Rebuild the blog.
* Upload the generated HTML-site, via rsync.
This is probably a feature.
That said, it isn't blazing fast (although you can get it really fast) and tends to have some security holes.
Easy workarounds: cache the hell out of it, daily incremental backups, update all plugins and framework updates, keep a secure server in general, reduce footprints (wp-admin, rename db prefixes, etc) and simple stuff like not using bloated themes and plugins.
I love WordPress, I've been using it for 11 years now on my main money making website and as per my website speed checker it is faster than 90% of the websites out there.
I've only been hacked once, and that was when that huge XML-RPC attack came out, and that basically got everyone. I was "down" (I took myself down) for about 1 hour, and didn't lose any data.
This fits your exact needs: custom domain, free, can handle a lot of traffic, and is pleasurable to use.
If you want to learn programming sure, write a CMS. If you want to start a blog, install WordPress.
I keep looking at the options - static, self-hosted - and while id like to host my own domain I dont want to support it. The one time i did host my WP own blog I got hacked - so gave up as I dont need the hassle of learning how to support WP
[0] https://gohugo.io/
- [0] https://gohugo.io/
- [1] http://themes.gohugo.io/
- [2] https://pages.github.com/
- [3] https://www.digitalocean.com/
- [4] http://www.robinwieruch.de/own-website-in-five-days/
It fits all the boxes you're looking for except "Looks great". For that, you'll need a theme - but fortunately Hugo themes are pretty easy to implement given a base HTML theme, or you can use one of the Bootstrap 4-based Hugo themes, which work pretty well and look pretty decent.
IIRC this one works pretty well: http://themes.gohugo.io/bootstrap/
You'll not need a VPS - S3 or Google Cloud Storage will work fine. Having said that, a $5 nginx VPS will also happily handle a Hugo blog even if it's being hit with a Reddit front-page hug of death.
You WILL need to figure out your deployment process, which is a bit more irksome on Hugo than something like Wordpress. But it's not a huge deal.
I used CouchDB/PouchDB, Mustache.js, JQuery, TinyMCE, and a few other open source tools. I wouldn't say it was necessarily "cheap" since I built it on a $20 a month DigitalOcean server but when considered as an investment in learning it was a huge bargain.
Personally, I like mine a lot better than WordPress. I think it's a lot easier to learn how to use and as far as "Looks Great", well, that's also something that I had to make happen so I went with using a Bootstrap template and while I didn't create anything award winning design wise with it I think it's at least pleasant to look at and usable, and it's easy to customize.
I took mine a step further and set it up to let users create accounts and publish their own stuff there, so you could actually use it to blog if you wanted to.
It's written almost entirely in Javascript so almost all the code is accessible. Check it out. If you want to set up your own I'll zip the code and give it to you with a GPL:
http://ibloc.com
1) Supports custom domain
2) Free
3) Can handle traffic (I know a few companies are using blogger.com for their companies News/Blog
4) Any software would require you to figure out how their theme works :)
UI is a bit clunky but it fills my requirements => your #1 + #2 + no maintenance for me
- jekyll built in
- markdown supported
- custom domains
- no hosting fees or servers to manage or security updates to patch
- very fast and reliable hosting
- best for last, it's git, works from command line or within github's site GUI
Edit: also wanted to point out that Ghost is non-profit