Settings

Theme

Ask HN: What are good blogging platforms for programmers?

59 points by hhimanshu 11 years ago · 86 comments · 1 min read


I have been thinking to write blogs for what I learn during weekends.

I am looking for blogging platforms where I can share what I learn, share code snippets.

Please share your advices on what tools to use

Thank you

minimaxir 11 years ago

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 11 years ago

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

  • krat0sprakhar 11 years ago

    Cant +1 this enough. Jekyll is damn easy to get started with and host on github. To start off, you can simply clone any of the existing blogs[0] or create a new one and get started. I also have a few rake and grunt tasks written to help you manage asset packaging (all of this totally optional, btw).

    [0] - https://github.com/prakhar1989/prakhar1989.github.com, http://getpoole.com/

  • archagon 11 years ago

    What makes Jekyll (and other static blogging engines) so great is that they give you far more flexibility than CMSes in certain areas. Just the other day, to see if I could do it, I wrote a Jekyll plugin to parse LilyPond music notation inside a custom Liquid tag[1]. After a day or two of research and fiddling — including learning basic Ruby — I can now have beautiful sheet music in my blog posts without any actual binary dependencies server-side. (In other words, the generated site is unencumbered by my build pipeline, and I don't have to worry about maintaining LilyPond/Inkscape on my server.) If I want to change the output in the future — PNG, SVG, even HTML/CSS — I don't have to touch my original Markdown content at all; it's just another render pass. And the best part is, Github will host the HTML files for free, regardless of whether Jekyll is actually running server-side or not. All your site updates are just a git push away.

    The idea that your Markdown articles are definitive, that you can add custom grammar, and that your blog is strictly a view into your writing rather than a separate content platform, should be very appealing to programmers!

    [1]: http://a-jekyll-blog.archagon.net/programming/2014/06/23/sec...

  • shebson 11 years ago

    Jekyll with GitHub Pages is a great solution, but it's worth mentioning that other static site generators serve the same purpose and may be a better fit for you, depending on your preferences. Hyde is a very flexible static site generator based on Django, and Metalsmith is a very promising static site generator built on Node. Whatever static site generator you use, hosting on S3 is easy and cheap, and it's easy to automate deployments via Grunt or Gulp.

  • billmalarky 11 years ago

    Were you using caching at all? There's a decent plugin called wp super cache that builds flat html files of all your posts and serves those instead of hitting PHP.

    • minimaxir 11 years ago

      Yep, I was using WP Super Cache and CloudFlare.

      Whether or not it was actually working as intended on the shared environment, I'm not sure.

  • srom 11 years ago

    As an alternative, you could consider Hugo (http://hugo.spf13.com/overview/introduction), which gives more flexibility regarding the organisation of files and urls.

  • rubiquity 11 years ago

    I use this same exact setup and for the same exact reasons. Jekyll + GitHub pages is a godsend.

  • pron 11 years ago

    And you can use prose.io (or even GitHub's own editor) to edit posts on the go.

swah 11 years ago

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)

  • archagon 11 years ago

    I've often thought about doing this. But I always end up coming back to the question: do I want to spend a month (or more) writing a blogging engine, or do I instead want to focus on my actual writing? And what will a custom engine actually give me, aside from sleepless nights and headaches?

    Jekyll is a great answer in this regard. You don't have to reinvent the wheel (pagination, RSS, categories, dates, etc.), but you can still customize it with great ease. (Kind of like the Backbone.js of blogging engines, I guess.)

  • kd0amg 11 years ago

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

  • oddevan 11 years ago

    Fair, but I think most of the things being suggested here are open source, so the truly curious can use them as a starting point.

    Alternatively: it's good to see what's out there so that when you do (inevitably) write your own, you know /what you want/.

    • thaumaturgy 11 years ago

      > Alternatively: it's good to see what's out there so that when you do (inevitably) write your own, you know /what you want/.

      Just as a counterpoint, I've realized recently that using other things before making your own changes what you'd make, and not necessarily in a positive way. You find yourself thinking in terms of the constraints and features of what you've used, rather than starting with a blank canvas and coming up with something you haven't seen before.

  • thaumaturgy 11 years ago

    Don't be; I came to the comments section to suggest rolling your own. You are, after all, a programmer.

    ...although I might not've hit submit, since I'm not sure I'd want to participate in the argument that'd be sure to come next.

  • justinpaulson 11 years ago

    TIL what TIL means. You are too lazy to type "Today I Learned" and your answer to someone asking for a blog platform is to build it themselves?

    • Havvy 11 years ago

      "TIL" has more memetic meaning behind it than the full phrase spelled out.

      • justinpaulson 11 years ago

        Well, my point is that I'm more saddened by the overuse of acronyms in language than by a developer who just want to find a nice blog platform without having to take a ton of extra effort to create and debug their own.

billmalarky 11 years ago

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 11 years ago

    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 11 years ago

      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.

  • SheepSlapper 11 years ago

    I like WordPress for the basic use case, and if you're self hosting it's super easy to get up and running.

    The downside is that it's popular (thus a target), and left unpatched or unprotected it's easy to mess something up and become part of those Viagra ad rings ;) I've hosted, set up, or fixed dozens of WordPress blogs, and a few have been compromised for one reason or another (you find lots of PHP shells in upload directories).

    Not to mention the fact that once you get outside the basic use case (blogging), and/or you start using plugins, things get convoluted FAST. There're a million plugins for WP, and if you're lucky the one you pick will do exactly what you want. But chances are it won't, and you'll spend hours digging through spaghetti code to get it to work for you.

    • billmalarky 11 years ago

      Yeah I've actually had several wordpress sites I've been involved with in years past get hacked before. One was the guy I built the site for refusing to keep it updated (this was before auto-update). The other if I recall correctly wasn't the fault of our site but some other site got compromised on the shared server and the attacker was able to hit all the sites on the server. You can see why I'm always a bit wary of WP even if it is irrational.

  • x3sphere 11 years ago

    Never had any security issues with WordPress, and I run it on a fairly popular site. The auto updating feature is actually great for a site you won't be working on daily.

    Also I think the WP core is well secured. It's when you start adding plugins into the mix things can get dicey.

    For spam, Akismet is pretty effective and comes with WP by default, just have to enable it. I consider WP very frictionless for publishing content so it's a good choice in my book.

  • TezzellEnt 11 years ago

    Typically these advertisements find their way onto a site through vulnerable plugins. To minimize this, you can install the Wordfence Plugin and it will email you when to update. Another good plugin is rename-wp-login.php which will move the site.com/wp-login/ to site.com/somethingDifficultToGuess and have Wordfence not cache and robots not index that page.

    • billmalarky 11 years ago

      I have basic auth protecting login and no plugins installed because I know they are usually the source of vulnerabilities.

  • pc86 11 years ago

    You should visit it at least often enough to keep the core and plugins updated, in which case you should be fine.

yummyfajitas 11 years ago

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

JelteF 11 years ago

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/

jordanlev 11 years ago

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 11 years ago

    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 11 years ago

      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.

  • NaNaN 11 years ago

    You can still do that, but it is a little complicated.

    https://help.disqus.com/customer/portal/articles/665057-synt...

logn 11 years ago

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 11 years ago

    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/

oddevan 11 years ago

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/ https://github.com/proudlygeek/hipstadeploy

And demo: http://www.oddevan.com/

  • rubiquity 11 years ago

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

    • oddevan 11 years ago

      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 11 years ago

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

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 11 years ago

Depending on whether by "platform" you mean the actual software package or not, I will throw 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 My Profile: http://tech.pro/leland

austinl 11 years ago

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)

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

- Svbtle (https://svbtle.com/)

- Medium (https://medium.com/)

- Ghost (https://ghost.org/)

  • omgitstom 11 years ago

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

  • startjumper 11 years ago

    I'm using Silvrback and I love it: http://silvrback.com

kazinator 11 years ago

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 11 years ago

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/

https://www.staticgen.com/

https://wiki.python.org/moin/StaticSiteGenerator

medwezys 11 years ago

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 11 years ago

    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 11 years ago

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 11 years ago

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 11 years ago

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 11 years ago

I am partial to Ghost (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 11 years ago

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 )

laacz 11 years ago

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

s992 11 years ago

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

saj1th 11 years ago

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

motyar 11 years ago

Github pages + Perl + shell script. Check mine https://github.com/motyar/motyar.github.com/blob/master/14/u...

jason_slack 11 years ago

I'm using MDWiki (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 11 years ago

I really like python-based 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 11 years ago

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 11 years ago

    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

    1. http://bolt80.com/piecrust/

    2. https://news.ycombinator.com/item?id=7361824

  • zhte415 11 years ago

    I agree. The amount of flexibity is huge, especially if you deliberately want a different look on various pages.

    And yeah, it feels good.

eddie_31003 11 years ago

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

sergiotapia 11 years ago

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/

berzniz 11 years ago

Tumblr. You could have your blog up within 10 minutes

programminggeek 11 years ago

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 11 years ago

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

tortoises 11 years ago

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 11 years ago

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

blooberr 11 years ago

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

duiker101 11 years ago

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

  • bosky101 11 years ago

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

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection