
Ask HN: What's your favorite blogging software? (as of Feb. 2017) - whitepoplar
Hi HN!<p>I want to start a blog and I&#x27;m trying to figure out what blogging software to use. Here&#x27;s what I want out of it:<p>1) Custom domain
2) Free or cheap (I don&#x27;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.<p>Any suggestions for your favorite blogging software? I&#x27;m leaning toward self-hosted Ghost, but would appreciate any recommendations. :)
======
brennen
While echoing the "pick a static site generator" advice in the rest of the
thread, my actual personal favorite is still:

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](https://github.com/brennen/wrt)

~~~
bananicorn
I can only second that - you'll learn _so much_ on the way, though it's easy
to get lost in the details, if you're doing most of the work yourself.

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.

------
pleasecalllater
I have written a script in Python. This generates all html/css/images from a
bunch of markdown files, and I host them on Heroku (which gives quite nice
deployment procedure with minimal effort, and costs almost nothing - $7 per
month).

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`.

~~~
stevekemp
That does sound like a fun project! Though it has to be said that most of the
popular static-site creators will allow custom things to be done with plugins.

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/](https://github.com/skx/chronicle2/)

Demo:

[https://blog.steve.fi/](https://blog.steve.fi/)

~~~
pleasecalllater
I have something similar. Although I don't use any database in the middle. I
just read the files. I have a cache layer, which is totally useless since I
got an SSD drive.

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.

~~~
stevekemp
I used to just read all the posts into a big hash, but when you have 1200+ the
RAM usage started to get too high. That's when I started sticking them into an
SQLite database.

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.

~~~
pleasecalllater
I have only 76 posts, and all of them cached on disk take 3MB, so don't have
this problem yet.

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.

~~~
stevekemp
There are definitely different trade-offs to be made on storage, but it would
seem that using both a database and a flat-file structure would be the worst
of both worlds.

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.

------
mod
I self-hosted ghost, as you mentioned. I'm happy with it.

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](https://github.com/cfenollosa/bashblog)

~~~
alexgaribay
I also use self-hosted Ghost. Digital Ocean has a preconfigured droplet that
you can use and everything will be setup for you without any extra work on
your part.

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.

------
BorisMelnik
WordPress is my choice, and it is probably the most popular blogging software
in the world.

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.

~~~
fiftyacorn
Im wordpress too on wordpress.com

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

~~~
BorisMelnik
all valid points - I won't say but, so I'll just say: if you really want to be
hands off you could consider a "WP hosting company"

------
kejaed
I've self-hosted wordpress and it's fine, does the job, and there are a
million and one free resources as well as paid ones out there. Can be a pain
to maintain and there's always a risk of things going sideways with a bad
plugin install or upgrade.

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.

------
oblib
I also wrote my own last year. It was fun and a great way to learn some APIs
I'd wanted to work with.

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](http://ibloc.com)

------
rwieruch
I can recommend to use Hugo [0] as static website generator. They have plenty
of themes [1] to choose from. You can still adjust it with basic knowledge in
HTML/CSS. Afterwards you can chose where to host it. You can use Github Pages
[2] for free or pay for a service like DigitalOcean [3]. I wrote a technical
cheatsheet [4] on how to setup your own website with these ingredients.

\- [0] [https://gohugo.io/](https://gohugo.io/)

\- [1] [http://themes.gohugo.io/](http://themes.gohugo.io/)

\- [2] [https://pages.github.com/](https://pages.github.com/)

\- [3] [https://www.digitalocean.com/](https://www.digitalocean.com/)

\- [4] [http://www.robinwieruch.de/own-website-in-five-
days/](http://www.robinwieruch.de/own-website-in-five-days/)

------
thenomad
Right now? Hugo.

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/](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.

------
diegoperini
Github Pages with Jekyll Bootstrap would be a good start, it supports custom
domains (http only) after all. It will be quite easy to migrate to some CDN
when you have moderate traffic.

------
DrNuke
Less is smart nowadays, the main hassle being the database with users &
comments, it can really escalate quickly from a security point of view. That
said, a minimal, self-hosted, firewalled, closed to users & comments wordpress
would do the trick, even using a default theme with almost to none widgets.
How do you funnel traffic then? Leverage and redirect to your blog from main
and relevant socials / forums, let the giants bear the burden ehehe.

------
simplehuman
I use 3 Ghost blogs on a single VPS and love it. If you want to skip the
hassle of setting things up (lets encrypt, backup, restore etc), you should
check out cloudron.io. They have a self-hosted option that runs on pretty much
any VPS provider out there.

Edit: also wanted to point out that Ghost is non-profit

------
hanniabu
I am currently creating a static CMS with free hosting, custom domain, nice
GUI, has backups, and is open to plugin development. If you're interested in
being notified when it's ready, send me a message(hanniabu at gmail). I'd also
like to hear your feedback to improve.

------
edwinnathaniel
Blogspot (Blogger.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

------
wazanator
Gitlab+Jekyll+LetsEncrypt+domain name has been working out great for me. Every
part is free except for the domain name. It's easy to use but requires some
HTML and CSS learning if you want to stand out.

------
atmosx
A static website generator (octopress, middleman, jekyl, hugo... anything
goes) + S3 + CloudFront for LetsEncrypt support.

Then you need 1 extra step to automate the publishing/sync to s3 of the
generate static pages...

~~~
philtr
This is the setup I use. The "1 extra step" for me is a tool called
s3_website:
[https://github.com/laurilehmijoki/s3_website](https://github.com/laurilehmijoki/s3_website)

It makes publishing to S3/CloudFront extremely painless, and supports advanced
thing like page redirects and Cache-Control settings per file type.

------
lnalx
I switched from Ghost to Hugo[0], I love versioning. I host the overall on
Github static pages.

[0] [https://gohugo.io/](https://gohugo.io/)

------
animesh
Currently I am using Lektor. My plan is to move to my own a custom static
generator in the next two years.

------
cdnsteve
Github pages

\- 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

------
desiredpersona
Jekyll + Forestry [https://forestry.io](https://forestry.io) if you need a CMS

------
returnbuyer
Static blogging software called bashblog using free hosting on Github

------
karimdag
WordPress. It's like the iPhone of the blogging software.

~~~
nkristoffersen
Wordpress is more like the 'old outdated android' of blogging software.

Medium is more like the iPhone of blogging.

