
Ask HN: What are good blogging platforms for programmers? - hhimanshu
I have been thinking to write blogs for what I learn during weekends.<p>I am looking for blogging platforms where I can share what I learn, share code snippets.<p>Please share your advices on what tools to use<p>Thank you
======
minimaxir
Using Jekyll (w/ a good theme) + GitHub Pages is more than sufficient. More
importantly, it's free, fast, and can handle large amounts of traffic, such as
the front page of Hacker News.

A year ago, I used Wordpress on shared hosting, then my service was terminated
once I hit the front page of HN (~300 concurrent users). I've been using
Jekyll + GitHub Pages since, and I've had no issues whatsoever, aside from the
occasional GitHub outages.

~~~
a-priori
A variation of this is to push your Jekyll site to S3 and put CloudFront in
front of it. It'll cost you a small amount of money each month (my sorely
neglected blog costs me about $0.02/month).

~~~
hamstu
Wow, that's crazy cheap. What would a day on HN do I wonder?

~~~
gjreda
I spent a Sunday at the top of Hacker News about a year ago and I don't recall
ever paying more than $5 a month for my S3 hosting.

For context, last month I had ~20,000 pageviews and my S3 + Data Transfer
charges were $2.43.

------
swah
TIL we are all now mature and educated in the perils of the Not Invented Here
syndrome so nobody will be telling you to _go write your own_.

(and this makes me sad)

~~~
kd0amg
Some people probably don't find blogging platforms all that interesting and
would really rather just say what they have to say and get back to whatever
else they were working on. If someone asked me what's a good kitchen knife, I
wouldn't say, "make your own" (even if that's what _I_ would rather do).

------
billmalarky
Is everyone shying away from wordpress for security reasons? I like the
simplicity of wordpress, but in the back of my mind I am concerned that one
day I'll visit my site and it will have viagra ads all over it. It would be
less of a concern if I blogged daily, but I go to it rarely enough that it
could be hosting malware (and making me look like an idiot) for quite a while
before I realized it.

~~~
Binky_Bob
Wordpress has some downsides: * The hosted version doesn't let you put ads in.

* If you host yourself it is a lot of maintenance to keep wordpress patched, spam cleared, etc.

* It is dynamic, so each page needs to be built based on a query to the mysql database. For a handful of users this is no big deal. If you hit the HN front page your site will be overloaded.

On the other hand, Wordpress is good if you blog on the go and want to use the
ipad app or whatever to post/maintain your blog. It might also be good if you
have multiple contributors, or update your blog so frequently (minutes) that
rebuilding the site to deploy it is an impediment.

Octopress / Jekyll is a good alternative:

* Content is pre-formatted HTML files, no database to get in the way or slow things down.

* Tons of people use it, so it is well known.

* Lots of publishing options -- github, heroku, s3 + cloudfront, etc.

* "Features" like discussion forums can be linked in from disqus or other purpose-built services.

* Publishing is easy via running a script, although that means lugging your laptop around or using an ssh client on your tablet.

* With static HTML the attack surface is substantially less compared to a PHP site with a back-end database, so security should be significantly better and easier to deal with.

~~~
shiftpgdn
To counter your downsides:

* Wordpress now auto-updates, so you don't have to worry about patches.

* WPSuperCache is a Wordpress plugin that serves up static content. Only logged in users see a dynamic page.

------
yummyfajitas
I use Pelican (roughly the Python version of Jekyll, a successor to Hyde). I
just write markdown in emacs, publish and it's good to go. Everything is
stored in git.

See the pelican folder here for code examples - feel free to steal the theme,
just write your own content.

[https://github.com/stucchio/Homepage](https://github.com/stucchio/Homepage)

~~~
gjreda
Another fan of Pelican here. I've also written a theme for it [1]. One let's
you use IPython Notebook for your Markdown + code.

I use S3 to host my blog. It's super cheap and it's really easy to push out
changes with S3cmd [2]. Just a simple:

    
    
      s3cmd put mydir/* s3://mybucket/
    

1\.
[https://github.com/gjreda/gregreda.com/tree/master/theme](https://github.com/gjreda/gregreda.com/tree/master/theme)

2\. [http://s3tools.org/s3cmd](http://s3tools.org/s3cmd)

~~~
Pewqazz
Greg's blog is what inspired me to use Pelican. I'm currently using Travis CI
to automatically build and push changes made to files in the source branch to
the GitHub Pages branch (see this post [1] for further details).

[1]: [http://kevinyap.ca/2014/06/deploying-pelican-sites-using-
tra...](http://kevinyap.ca/2014/06/deploying-pelican-sites-using-travis-ci/)

------
JelteF
You should try Ghost. I've had a good experiences with it. It still has some
quirks though like mobile editing (viewing works fine). But it's officially
still in beta so that is to be expected.

It uses markdown, has lots of themes (some paid, some free, some OSS), you can
host it yourself.

[https://ghost.org/](https://ghost.org/)

~~~
fredgrott
you can also host ghost statically on github pages

~~~
baconhigh
how? link? i'd be interested in this.

------
jordanlev
If you wind up going with a static site generator (like Jekyll, for example),
one thing to watch out for which I experienced on my own technical blog is
that if you want comments functionality then your only realistic choice is
Disqus... and Disqus is absolutely horrible for comments on technical blogs
because it does not allow code snippets! It used to (a few years ago), and
then they changed it... now I have to create a pastie or gist for every little
piece of code I want to put in a comment response... very annoying.

Not a dealbreaker, just something to be aware of. (And if anyone knows of
other embeddable comment systems that can be used on static sites, I'd love to
hear about them!)

~~~
greggman
Disqus does code comments just fine. See other response.

Other things missing from a static site generator though include being able to
post from a multitude of devices. To post to a static site generator you
generally need a full desktop. Or at least that's my experience.

~~~
pocket
Not exactly true. I use jekyll on a VPS, store my site's content in a Dropbox
folder kept in sync on the server, then use inotifywait to watch for new
posts/updates to existing posts and kick off a site regeneration. This means I
can update or post using any mobile/tablet text-editing app that supports
Dropbox.

------
logn
HTML is built for making documents and a blog seems like a perfect case when
you should just open up a text editor and write some HTML. That's how I
started my own blog recently. Then I switched to ghost.io. It's a nice
platform, but I might go back to hand writing it.

To do code snippets, try the <code> or <pre> tags.

I suppose if you want a full commenting system, then a platform makes sense.
However, on low-traffic blogs I think the comments (or rather, lack thereof)
make it seem like someone's talking to an empty room.

~~~
subverting
Too much work if you want anything modern.

As in don't you want some tags to organize the posts? Don't you want an index
of your tags, and an index of your posts? You'd need to edit by hand 10 files
just to add a new post if you wanted those necessary features and yeah they
are necessary if you're not just writing a diary for yourself. If that's the
case you don't need a blog at all just a folder with text files on your
machine.

But I agree with you in that I like to just open up a text editor and start
writing, so I use a script called "Bash Blog" which lets me do just that.

The website it produces are static html files, and it uses a shell script to
reassemble itself after every new post I created so I don't need to end up
editing 10 files, but I still get all the useful features I mentioned above.

[http://cfenollosa.github.io/bashblog/](http://cfenollosa.github.io/bashblog/)

------
oddevan
I definitely recommend deploying static pages (either GitHub pages as people
have mentioned or a static website through Amazon S3/CloudFront). Personally,
I use Ghost and Hipstadeploy:

[http://ghost.org/](http://ghost.org/)
[https://github.com/proudlygeek/hipstadeploy](https://github.com/proudlygeek/hipstadeploy)

And demo: [http://www.oddevan.com/](http://www.oddevan.com/)

~~~
rubiquity
Doesn't Ghost use a database though? It was using SQLite last time I looked at
it.

~~~
oddevan
It does. I run it on my local machine and use Hipstadeploy to render it to
static HTML and send it to Amazon S3.

(I'm the kind of weird person that actually likes using a database and fancy
backend to write/organize my posts, so I didn't want to use Jekyll.)

------
brianbarker
You can share snippets on any platform using either github snippets or an
html/js code formatter like [https://code.google.com/p/google-code-
prettify/downloads/lis...](https://code.google.com/p/google-code-
prettify/downloads/list).

Rather than host your own, I prefer just going with tumblr or something slick.
I do like tumblr for its social connectedness, easy sharing and liking.
Whatever floats your boat, though.

------
lrichardson
Depending on whether by "platform" you mean the actual software package or
not, I will throw [http://tech.pro](http://tech.pro) into the mix. (Full
disclosure: I am the founder)

Tech.pro is a blogging platform / professional network catered only to the
tech world (primarily software development).

Our editor is markdown-based and handles code snippets etc. quite well in
addition to having support for embedded frame sites such as
jsfiddle/codepen/sqlfiddle/etc.

Although you're writing on the TP platform, you still retain full ownership of
your data. You can even download a neatly organized archive of all your blogs
(and revisions) in both Markdown and html format at any time.

My Blog: [http://tech.pro/leland/blog](http://tech.pro/leland/blog) My
Profile: [http://tech.pro/leland](http://tech.pro/leland)

------
austinl
Here's a list of resources, mentioned in this thread and elsewhere. Some of
these are better at sharing code snippets than others, but you might find the
features of the platform more enjoyable.

\- Jekyll + GitHub Pages ([https://help.github.com/articles/using-jekyll-with-
pages](https://help.github.com/articles/using-jekyll-with-pages))

\- Octopress/Jekyll + GitHub Pages
([http://octopress.org/](http://octopress.org/))

\- Svbtle ([https://svbtle.com/](https://svbtle.com/))

\- Medium ([https://medium.com/](https://medium.com/))

\- Ghost ([https://ghost.org/](https://ghost.org/))

~~~
omgitstom
\+ 1 for svbtle, it is a nice minimalistic design that really concentrates on
the content.

Octopress / Jekyll are sort of annoying at times specifically if you don't use
ruby. For example, on my mac, i've had to deal with weird ruby related issues
when upgrading OS X.

------
kazinator
I'm interested in this too, in particular answers which assume that:

* I already have a server running under my desk, running Apache, and a git repo web-served via CGIT, where I can store any serious code snippets that require versioning. So I'm not interested in anything that uses third party hosting.

* I'm the only blogger: no multi-user capabilities needed.

* The publishing side doesn't even have to be web-based; the minimal requirements are that I can log in to a shell account and post a blog by creating a text file and running some command. This then updates the page nicely, including the RSS feed and whatnot.

* No user comment feature required; it's okay if users mail-in comments, and there is a way to publish selections from the mailbag.

------
sharmi
I second what programminggeek says. What is important is you write.

That said, I use the static site generator mynt. Host the generated website on
digitalocean droplet behind an nginx server.

If you want to go the static site route and want to try all the options that
you like, (and lets be honest, that is a big part of the fun setting up a
blog) here are some aggregated lists

[http://staticsitegenerators.net/](http://staticsitegenerators.net/)

[https://www.staticgen.com/](https://www.staticgen.com/)

[https://wiki.python.org/moin/StaticSiteGenerator](https://wiki.python.org/moin/StaticSiteGenerator)

------
medwezys
[http://svbtle.com](http://svbtle.com) is nice. You can use GitHub flavoured
markdown. The code highlighting is not ideal, but other than that it's a very
nice platform.

~~~
evolve2k
I was madly loving svbtle until one day someone pointed out that you can't
access or even export your list of email subscribers, so essentially you are
building a mailing list for Svbtle not you.

------
mostlybadfly
If you're saying programmer I'm assuming there is already this level of
experience, but I went ahead and made my own blog set up. This was mostly
really to learn Rails. Even though I am mostly doing strictly Ruby stuff at
the moment, I hear of or see features I want to add to the blog so little by
little I pick up more rails techniques.

For just having something already set to focus on your writing, I really like
what I've seen from Jekyll, I don't have a need yet but I'm definitely keeping
it in mind for future projects.

------
growlybeard
Hi there! I'm in the early stages of building a blogging platform just for
programmers. My main criteria was ease-of-use and that it support code-
highlighting out of the box. You can check out what I have so far at
www.progblog.io. I must warn you, that it is NOT a mature app at all, and I
wouldn't even call it alpha. I will be releasing (and announcing) something
here on HN in about 2 or 3 weeks, with a much nicer design (similar to Medium
in its simplicity) and a more natural workflow than what exists today.

------
Deusdies
I was using Nikola for some time, but Github Pages + Jekyll is a good
alternative. Though I am currently using WordPress (not that anyone is
visiting it), I think I may look into Ghost.

------
datamoshr
I am partial to Ghost ([https://ghost.org/](https://ghost.org/)). It's a super
easy platform to use. You can host it yourself or get paid hosting. Also it's
open-source so you can contribute to it's development which is something that
you can also learn on. Default theme supports code-snippets out-of-the-box
too.

------
arikrak
You can install Wordpress for free and easily on OpenShift. Setup some simple
caching (or even just cloudflare) and it will be able to handle basically any
amount of traffic. Install a plugin to display code nicely, or embed the code
from elsewhere.

(for more tips, see my kickstarter project:
[http://kck.st/1sYmezD](http://kck.st/1sYmezD) )

------
laacz
I know it's already too late, but recently CodePen announced their blogging
platform [1] which is nicely integrated with their base service - sharing of
code snippets.

[1] [http://blog.codepen.io/2014/06/19/can-write-blog-posts-
codep...](http://blog.codepen.io/2014/06/19/can-write-blog-posts-codepen-now/)

------
s992
I use Octopress on GH pages. Switched from a full blown CMS and haven't looked
back - it works great for me.

------
saj1th
Hugo lacks a couple of features that are present in Octopress or Jekyll but is
much more performant.

Hosting Hugo blog on GitHub Pages ~
[http://hugo.spf13.com/tutorials/github_pages_blog](http://hugo.spf13.com/tutorials/github_pages_blog)

------
motyar
Github pages + Perl + shell script. Check mine
[https://github.com/motyar/motyar.github.com/blob/master/14/u...](https://github.com/motyar/motyar.github.com/blob/master/14/update)

------
jason_slack
I'm using MDWiki
([http://dynalon.github.io/mdwiki/#!index.md](http://dynalon.github.io/mdwiki/#!index.md))
since I am spending a lot of time in Markdown anyway. Easy to scp articles up
to my VPS.

------
wirrbel
I really like python-based [http://tinkerer.me/](http://tinkerer.me/)

It uses Sphinx markup which is great for embedding source code snippets and
extending the blog with own extensions or pre-built ones.

------
quotient
Honestly, I would just write my own HTML/CSS and buy hosting on a server
somewhere. This is cheap, and gives you a great deal of control, while also
honing your web development skills. (And doing it yourself feels good!)

~~~
Nzen
I rolled every page for a while. But after I had fifty pages (most migrated
from old blog), changing the template was a waste of my time. Strictly
speaking, a tool like laser[0] could have helped, but I am young in clojure-
fu.

I currently use piecrust[1] to statically generate my markdown through twig
(templates) and push these to my site host nearlyfreespeech via ssh. It's pay
as you go; I've not needed a dB or CGI, and those are not forced on me.
Perhaps I'll be punished if I ever get front paged, but YNGNI.

I am trying out metalsmith[2] instead, as I'm more familiar with javascript
than php and hence can make plugins for the various bits I need.

0\. [https://github.com/Raynes/laser](https://github.com/Raynes/laser)

1\. [http://bolt80.com/piecrust/](http://bolt80.com/piecrust/)

2\.
[https://news.ycombinator.com/item?id=7361824](https://news.ycombinator.com/item?id=7361824)

------
eddie_31003
+1 for Github Pages and Jekyll. I used a Bootstrap theme that I tweaked a bit.

------
sergiotapia
I use Ghost on ASmallOrange. I have the tiny yearly package.

I wrote my posts using Markdown and done with it. Pretty simple.

[http://sergiotapia.me/](http://sergiotapia.me/)

------
berzniz
Tumblr. You could have your blog up within 10 minutes

------
programminggeek
It doesn't matter what tool you use. Write things, share with people.

Platform isn't important. You can do what you are trying to do on ANY
platform.

~~~
pocket
perfectly valid and admirable advice - although not actually an answer to the
question ;-)

------
tortoises
I like to grab 100s of pieces of unattended plywood & two-by-fours from a
junkyard or not-too-dilapidated forest horror cabin or something and drag them
back to my house. Then I assemble them using hammer & nails, or I climb up a
tree and nail them across some branches. You will need a hotspot for wifi & a
tarp to protect u & ur laptop in case of rain while u are sitting up there.

Some hip ppl might try to use a makerbot or w/e but to get any kind of height
on the platform u will need a LOT of plastic.

------
jMyles
Mezzanine (Django blogging platform) with Pygments for code samples. Not a bad
choice.

------
blooberr
Ghost was super easy to setup on digital ocean (pretty much one-click install)

------
duiker101
I am not sure it's really what you need but coderwall.com is nice

~~~
bosky101
+1. great for sharing snippets and i almost learn something new everytime i
visit.

