
Why I Joined the Static Blog Movement - farrellkramer
http://farrellkramer.github.io/why-i-joined-the-static-blog-movement.html
======
jgrahamc
If you are going down this route then using a CDN like CloudFlare means you
can have the static blog cached globally. We statically generate our blog
using Pelican and then have it globally cached with 30 minutes timeouts. The
result is almost no load on the origin server at all.

~~~
tomjen3
I guess it might work for a static block, but it is a huge amount of stuff to
put on top of the blog and it seems entirely unnecessary - after all any
computer should be able to fullfil any static request such that it is limited
only by the bandwidth.

------
jagermo
I find the static blog movement extremly interesting. You'd think with
broadband and speedy mobile connectins like LTE it wouldn't matter so much,
but those blogs load so amazingly fast, it's just fantastic. I'm thinking of
switching my wordpress blog to something static, even if its only to get ouf
of the scope of automated attacks.

~~~
jgrahamc
_You 'd think with broadband and speedy mobile connectins like LTE it wouldn't
matter so much_

Quite the opposite. If you optimize the downloading portion of the whole HTTP
transaction because of a high bandwidth/low latency connection then the server
time (to generate the page) starts to be more and more important.

As connections get better increased pressure is placed on web servers. And
there's another subtle effect: faster web sites get more visitors. So if you
make your site fast you get more page views.

------
snide
There's no reason you can't have both the ease of static site generators and
the non-coder friendlyness of a CMS.

If anyone is interested I recently launched
[http://www.webhook.com](http://www.webhook.com) as a way to have both words.
Data is stored in a Firebase so you get clean JSON data so that you don't need
to deal with all the bloat for simple content sites. We're currently cleaning
the code up and will have it all open sourced by the end of August.

~~~
jagermo
I've already checked out webhook, looks great.

However, I run my sites on my own server. Are you planning to offer a version
that you can install on your own hardware?

------
danso
To me, the overriding advantage of the static blog is that it forces
simplicity upon you...it distills the site to the simplest form of "web log":
if you are one person, wanting to write a series of chronologically ordered
posts, then you don't need a database (hence, something like WordPress).

I've rarely found this kind of simplicity to be stifling. For the first 1,000
posts, you can compose and edit in plaintext with minimal difficulty in
"envisioning" the post, as you might in a rich text editor. Even better, you
don't have to deal with the eccentricities and inefficiencies of RTEs...and if
your blog is on a focused topic, where you find yourself re-wording
terminology and grepping frequently...it's a simple Ctrl-F in Sublime Text.

Even the HTML and CSS parts are simplified, since you only have to worry about
the elements needed to keep a post in single layout (and maybe a sidebar
column)...and editing CSS in your editor of choice is far less cumbersome than
the out-of-the-box way of WordPress.

The static blog generator (at least Jekyll and Middleman on the Ruby side)
then does all the clunk that would be tedious if you were to just upload
plaintext to the web: namely, the ordering, timestamping, and internal-linking
of the posts, as well as categories/tags, and things such as SASS
compilation...and then it's just a CLI-task to update the site on S3.

Sure, after a 1000 posts...you'll see the need for a CMS to better organize
and package things (not to mention the ability to update a post without
regenerating the entire site)...but that's a long ways off for most would-be
bloggers. And if you need to convert to non-static, well, all the metadata
that was used in static-generation is easy to parse and import into any blog
system.

On a day to day, or week-to-week basis, though, I find that it's the small
things that can make a difference...the thought of logging into my old
WordPress blog, waiting for my Dreamhost shared hosting to take 1-2min to load
up the post-editor page, and then copy-pasting from where I wrote my drafts
into the rich-text-editor and hoping nothing got kludged...that's enough to
make me not blog...which means I might only blog when I really, really
care...and if you only write when you "really, really care", you're just not
going to be writing enough to be someone who can do it consistently well.

------
ninkendo
Does anybody know if there's a blog suite where blog entries/comments/etc are
stored on the filesystem as dumb JSON files, and rendered using a client-side
javascript framework?

From the server's point of view, it could be all static (both the compressed
.js app and the json files are just files on the filesystem that can be
cached, no database needed), but you can still update the site dynamically
through an API endpoint. The API endpoint can trigger server-side code that
writes new JSON files out appropriately, but for all non-comment-posting, non-
blog-writing traffic, it's all just plain files.

Of course, a decent caching layer at any point can make any dynamic server
behave like this, but it'd be cool to have your entire blog work without any
code running other than a simple nginx/apache config that serves out static
files (and reverse proxies to you app for any POST requests).

Actually the more I think about this, the more I think this could be a fun
weekend project.

~~~
baby
Daring Fireball is kind of like this, every post can be accessed through a
markdown file. The real posts are just generated thanks to those .md files.

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

------
rryan
> Static blog generators are the next big thing.

I don't mean this in a hipster way at all.. but static blogs have been around
and popular for a long time. It's been at least 5 years since Jekyll got
popular which is one of the first static site generators that I remember
catching on. There were surely ones that came before that that I hadn't heard
of. I was building blogs and websites with Hyde (a Python clone of Jekyll) in
2009.

What's old is new again?

It feels kind of silly to call this a movement :).

~~~
MJR
Blogger was a static blog generator well before this. It launched in 1999 and
was around for a few years in that form before it was acquired by Google in
2003 and transitioned . You logged into the Blogger site and wrote your posts
and then published them, which would generate your files and then FTP them to
your server.

------
primitivesuave
Also joined the HTTPS movement, but forgot to update the page resources to
load over HTTPS as well.

------
pothibo
Your site isn't faster because it's only HTML. It took ~360ms for
DOMContentReady in average on your site while on pothibo.com (My blog running
on Ecrire) took an average of ~260ms.

Your post made quite a lot of emphasis on "speed" but the first argument I
checked was false. I used static site generation and it's a very poor choice
for your personal website.

Works fine to create a Readme on github. Sucks if you use it to manage your
personal website (brand).

~~~
colinramsay
In what way does it "suck"?

~~~
pothibo
\- Can't edit anywhere beside the machine that has your source & access to
server.

\- Refactor your posts' tag? You need to manually edit all your post one by
one.

\- Refactor your theme? Same thing as above

\- You can't have dynamic content, ever.

~~~
djur
Use SSH, write scripts to facilitate bulk changes, do dynamic content with
Javascript on the client side. If you need server-side logic, build some APIs
and talk to them from the JS. Much cleaner than hacking additional features
into off-the-shelf CMS/blog software.

~~~
chc
What you are describing sounds like a hodge-podge of workarounds.

Like, one solution is "Use SSH, write scripts to facilitate bulk changes,
write multiple backend services and front-end JavaScript to interface with
them for any actual functionality you want on the site." The other is "Push a
button on your blog software." How is the first one "cleaner"? You're
basically re-inventing half of a blog with duct tape and toothpicks.

------
baby
It's cool, it's trendy, but no. It's not more practical, or quicker to load,
or... Maybe more secure, but to make a blog simple dynamic blog secure is
easier than to understand how to generate a static blog with something like
Pelican.

I actually only see downsides:

* I can't write from another computer easily, or a tablet, or a phone...

* I can't easily add options like a search engine, comments (disqus is pretty bad for SEO I presume), most read post, etc...

* I have to use a setup everytime I want to write. I have to open a text editor, I have to launch a terminal and go through command lines to generate the blog again and I have to upload/commit,push the new generated files.

~~~
icebraining
_I can 't write from another computer easily, or a tablet, or a phone..._

Login to Github, edit file?

~~~
chc
And then nothing happens, since "static site" ≠ "hosted on Github"?

~~~
icebraining
Cronjob polling the Github repo, pulling new commits and rebuilding the static
pages.

~~~
chc
And you can statically cache pages from a proper blog engine. In fact, that's
actually built into some of them, unlike the functionality you describe here
for static site engines, which AFAIK all of them require you to write
yourself.

~~~
icebraining
_And you can statically cache pages from a proper blog engine._

That still requires the blog engine to handle potentially malicious requests,
prevents hosting on static services like S3 and increases load time for any
non-cached page.

 _In fact, that 's actually built into some of them, unlike the functionality
you describe here for static site engines, which AFAIK all of them require you
to write yourself._

There are modules like jekyll-hook, which can do it for you.

------
rewind
Do you find that you're limited to using desktops/laptops because of the
client requirement, or are there good options for adding posts from
phones/tablets?

~~~
icebraining
I use a static personal wiki, and I update it using SGit on my Android tablet
(and any text editor, of course). Commit and push is just a couple of taps.

------
jeffreyrogers
I tried using a static blog for a while, but I found I was spending so much
time fighting with the generators out there that it made far more sense to
just use WordPress. Plus (I and probably nearly everyone else), hardly get any
traffic, so costs aren't an issue (and if it were, there are tons of ways to
cache WordPress pages, so you effectively get a static site on top of the
WordPress CMS; I'm not sure what else you could ask for).

------
omegaworks
Disqus is awful. It never loads quickly, if at all for me. You might as well
just turn off commenting altogether.

------
hkon
I REALLY can't understand the "static blog movement", it makes no sense to me.
As others have said, why sacrifice flexibility and availability....

The only reason I can see for bothering with static blog software is because
that in itself might be fun. At least you have something to blog about...

~~~
opendais
The one thing you are definitely not sacrificing is availability. Making
static content is far simpler and easier to make highly available via a Push
Zone on a CDN. Cheaper too.

~~~
hkon
How does that work from my phone?

~~~
opendais
Do you not know how to download apps?

I'm asking this question as seriously as you asked yours. There are apps for
markdown, ssh, sftp, ftp, and all sorts of related tools that would let you do
this from your phone.

~~~
hkon
I do know how to download apps and I am genuinely curious. The beauty of for
instance the wordpress app, is how integrated it is with the phone. Can insert
pictures and videos from the camera easily. How would this work from the ssh
and ftp apps? Without having tried it out I can't really see how this is
anything but cumbersome.

~~~
opendais
I don't know of any purpose built app for a static website.

However, if you are comparing it to the Wordpress app? Ya, that is easier.
However, you aren't comparing apples to apples at that point.

If I built a purpose built app for my static blog, yes it would be just as
easy.

~~~
hkon
Guess I'll stick to wordpress, sounds easier than making an app :)

------
serf
I always figured that static blog generators were big with the developer crowd
simply because the creation of a static blog generator is a 'bread-and-butter'
beginner CS project.

They are as flexible as you have the capability to make them be. I think that
poses a big problem for most.

------
msane
I think there might be a problem with the date on this article? It says "Sat
02 August 2014" but the content seems to be from 2010?

