
Ditching Wordpress for Pelican - razius
http://razius.com/articles/ditching-wordpress-and-becoming-one-of-the-cool-kids/
======
davexunit
I really like Pelican. I think a lot of people commenting here are missing the
point about why some people would want a static site. It's not really about
performance, it's about simplicity. It's trivial to set up a web server to
serve static HTML pages. All I needed was Apache, SSH, and rsync. I keep all
of my blog posts in ReStructuredText files which are stored in a git
repository. When I want to publish, it's as simple as `make rsync_upload` and
I'm done. No database, no web interface for managing content. Just plain text
and command line tools.

I am having one small issue with Pelican, though. When I change my theme from
the default, it uses the new theme's templates but the default theme's
stylesheet. As expected, the result is awful. Has anyone else experienced this
issue?

~~~
razius
Could you share your pelicanconf.py? Maybe it's a configuration issue.

------
jval
You're all missing the point on why people have static sites.

In the words of Paul Graham - "Static sites are the fixies of the
Internet."[0]

[0]
[https://twitter.com/paulg/status/402205795552489472](https://twitter.com/paulg/status/402205795552489472)

~~~
read
What does that mean?

~~~
officialjunk
It's a common term for a bicycle without the ability to change gears; a fixed
gear (aka fixie). They generally are low maintenance and simple to repair. I
think he's making an analogy that static sites are also low maintenance and
easy to repair.

~~~
tacticus
Actually you're thinking of a single speed here.

A fixie is one that runs with a fixed gearing (without a freehub [0]. When the
wheels turn the pedals must turn. many hipsters also run them without brakes
which requires them to use their legs to slow the bike. these are most
commonly seen on velodromes and anywhere with lots of coffee shops.

[0]
[http://en.wikipedia.org/wiki/Freehub](http://en.wikipedia.org/wiki/Freehub)

~~~
officialjunk
thanks for the clarification.

------
PetrolMan
_Yes, it’s not really a fair comparison, I also changed the theme to a much
simpler one which is a big boost too, but still._

But still nothing. Comparing a page that is 15% the size of the original is
ridiculous. I'm left wondering what happens to the page loads on a WordPress
site if you reduced the overall size and number of requests.

~~~
razius
Rather than adapting the existing Wordpress theme to Pelican I decided it
would be better to just start from an existing Pelican theme, the article
wasn't meant to be a benchmark.

------
mindstab
imho static page generating sites is optimizing at the wrong level. That's
what app caching, caching servers and CDNs and such are for. Static page
generation like this is ok at a very small level/scale but doesn't scale use
wise. You cannot build interesting big dynamic sites with it. So I guess for a
blog fine, but, not for me thanks

~~~
sytelus
Static generators are useful for quick, very low maintenance products with
limited out-of-box features that are not very extensible. Most people probably
want just that - they want to create content and don't give a damn to add
fancy new geeky feature on their blogs or whatever. You would hit a wall
sooner or later if you do try to do something more. For example, how do you
generate pages that return posts per category or date range. How about
automatic page of "Popular Posts"? Technically you can but it would be lot of
duplication and bit of a mess.

~~~
smacktoward
The problem is that while that while static page generation is definitely the
best fit for what _most people need,_ it is not the best fit for what they
_think they need._ One of the big reasons WordPress was able to dethrone
Movable Type as the #1 blog software was precisely because of its dynamic
pages -- that was a big point of attraction for people over MT's static page
generation approach. So much so that Movable Type's developers eventually felt
the need to graft a half-baked dynamic page system onto their product, just so
they could tell people who wanted dynamic pages that they shouldn't rule out
MT altogether. (It didn't help in the end, but the fact that they felt they
had to do it at all speaks volumes.)

Why do they think they need dynamic pages? The upsides of dynamic pages (no
more waiting for pages to rebuild) are right there in their face, while the
downsides (your server falling over if you get more than three readers at a
time) don't become evident for a while. So to non-technical folks, dynamic
pages seems like a no-brainer. They don't learn the downsides until they leap
up and bite them.

This mismatch between what people think they want and what they actually
really should want based on their needs is sadly quite common in tech
products, and explains how a lot of crappy products managed to become more
popular than a techie would ever have expected them to be.

------
chris_mahan
I don't even use a site generator. I just edit the html directly via ssh. I
use putty from win machines, ssh from nix machines, and connectbot on android
(with Hacker'S Keyboard).

Once there, I use nano, it's fine for editing small text files.

the VPS I'm on costs $10/month, but you can get them for $15 a year. Yes, I've
had to learn how to use debian from command-line, but I am very, very glad I
know how now.

If you want, you can use a sftp-capable text editor, and that works too. I
used to use jEdit, but it's not installed everywhere, and it's definitely not
installed on my smart phone, so...

Also, for those who complain that the site looks like 1993, that's intended,
as it looks fine and loads very fast in mobile, and that's essentially my only
target platform.

~~~
jacques_chester
I have some static sites I build with Nanoc. The source content is mostly HTML
with a sprinkling of ERB.

I could do all of it by hand, but using a SSG lets me factor out a lot of
repetitive scut work. For example, I have a function that takes a hash and
builds the HTML for a collection of references. Doing it by hand would be time
consuming and error-prone.

More obviously, when I update my page layouts, it happens across the whole
site. I don't have to go around copying and pasting, again introducing more
busy work with room for error.

"What about grep and sed?", I hear you ask. By the time I'm building ad hoc
build pipelines each time I fiddle with the site, I once again introduce new
opportunities for error. Why not just automate the whole pile of wax and be
done with it?

~~~
chris_mahan
About updates to the site layout, I've come to the realization that the site
doesn't need to have a uniform look and feel for the whole site, or sections
of the site. I came to the understanding that each page can do, can be, what
it needs to be. Plain html5 (no css, no js) is enough for my needs, and each
page is customized for its own purpose.

I have a crumbs navigation at top, that may go away too. most people (99.9% i
think) navigate forward, then use the back key in the browser to go back, so I
may get rid of the crumbs someday.

each page on the site is accessible from the whole internet. If Joe the poet
links to a page on my site, essentially, my page becomes part of the web
experience Joe is building. I want to show respect to Joe, and not suck in his
readers into my own site. if people want to get to the root of my site, they
already know how to edit the uri down to the domain name.

(sorry for philisophizing! )

------
yummyfajitas
Just curious, I currently use Hyde. Pelican seems to be the new coolness and
Hyde seems pretty stable and not much forward motion.

Any compelling reason for me to consider switching, features that Pelican has
which Hyde lacks?

------
ereckers
It's the dream of the 1890s as if caching and CDNs were never invented.

~~~
swalkergibson
For me, the site's latency is not the issue. I find myself pulling my hair out
trying to make the Wordpress admin area work the way I want it to work. If I
can just stay in vim, I am a happy camper. If you force me into some WYSIWYG
editor inside of an admin panel, I am going to get frustrated.

~~~
ereckers
I hear ya. I work in VIM and the command line all day too and for a simple
blog I can see the frustration with the WYSIWYG editor. That won't fly with a
marketing team of a couple inbound marketing experts though.

WordPress does have a Command Line Interface and you can in fact write to a
text file and import it as a new blog Post:

\- [http://wp-cli.org/commands/post/create/](http://wp-
cli.org/commands/post/create/)

You can actually do a ton with it. I don't know how familiar you are with
WordPress but with CLI you can upgrade WP core, update/add/activate/deactivate
plugins, and much more with it:

\- [http://wp-cli.org/](http://wp-cli.org/)

It's a nice tool for WordPress developers that want to bypass going through
the admin panel.

~~~
swalkergibson
I had no idea that existed! Pretty cool! Thank you for the tip. That is slick!

------
semerda
Have you thought about using Varnish in front of your web servers? That would
do nice static content caching.

Unless the mess of code under the bonnet of Wordpress is a concern and you
want more flexibility in controlling it then I see your decision as sound.

However it is hard to beat Wordpress's extensibility and ease of use for
publishing content online.

~~~
ishener
plus the fact that wordpress has numerous good plugins for generating static
files...

------
calebm
I, too, migrated from Wordpress to Pelican
([http://calebmadrigal.com](http://calebmadrigal.com)). I love not having all
of my content inside of MySQL tables. I also love writing in Markdown in vim
instead of the Wordpress editor.

------
tomkin
Conflicted. On one hand, we have a camp of people who would say "static
content" almost always equals _garbage content_. Documentation aside, who
would ever want a static website? I don't see much advantage of having to
setup environment, ensure libraries are installed, etc. – every time you want
to do a simple change from a computer other than your own. I'll take WordPress
over that any day.

Scenario: You just noticed a major typo on your new, statically generated
microsite - using Markdown, pelican, etc. ...but the only computer you have
access to is running a fresh copy of Windows 8.

Talk about your non-portable website.

~~~
lambda
You download PuTTY, ssh to your host, and rebuild it? It's not like you can't
run the static site generator hosted somewhere.

~~~
JohnTHaller
Or just plug your USB key in with PuTTY Portable and FileZilla installed on
it. If the static site generator tools run on Windows, we could probably make
those portable, too.

------
omegote
I'm in a really similar situation to the author's. I've been using WordPress
for quite a long time, among several (usually shared) hostings, only to
realize how disgusting it is to move a WordPress website from one place to
another. With Pelican I can have the entire source of my website in Dropbox or
a pendrive, and edit the articles in Markdown anywhere.

Lately I had been all the cool kids using Octopress, but I don't like Ruby,
not to mention its programming environment (installing rvm, for example).
Also, Octopress's default theme is a total mess. I love Python, so Pelican is
a total win for me.

~~~
omegote
Not to mention that using something like Disqus to manage comments is years
beyond moderating the comments yourself using the WordPress admin panel...

~~~
krapp
I don't see how, wouldn't wordpress still give you more control over the
content?

------
wooptoo
Here is an optimized Wordpress install, with caching turned on and a
lightweight custom theme: [http://imgur.com/j16xIY0](http://imgur.com/j16xIY0)

You can see that there's virtually no difference from your static blog.

For me the main selling point of Pelican is the Markdown syntax and the ease
of running it on any host. I hear some even run it from Dropbox.

On a side note: where can I fork and improve on your theme? :)

~~~
mitchtbaum
> On a side note: where can I fork and improve on your theme? :)

It's at
[https://github.com/razius/razius.com/tree/master/theme](https://github.com/razius/razius.com/tree/master/theme)
, which is a modified version of
[https://github.com/danclaudiupop/pure](https://github.com/danclaudiupop/pure)
. The underlying framework is [http://purecss.io](http://purecss.io) , and a
lot is possible with it.

I started hacking that theme too, and then I realized that it may be difficult
to merge efforts if I build what I want. I think it would help a lot if
Pelican had theme inheritance (
[https://github.com/getpelican/pelican/issues/1092](https://github.com/getpelican/pelican/issues/1092)
) and we all reused a common PureCSS base-theme. This is probably an easy
issue to tackle for a skilled Python coder.

------
irfan
I moved my personal blog from posterous to pelican long ago and hosting it
over heroku for free. Optimized it for exceptional performance and got 99 page
speed score: [http://www.i.com.pk/exceptional-performance-without-
mod_page...](http://www.i.com.pk/exceptional-performance-without-
mod_pagespeed-or-apache-page-speed-score99/)

~~~
razius
That's some sweet loading time. Thank you for the tips and pointers in the
article, having a go at page load optimizations is what I'm going to do next.

------
amorphic
I finally got tired of the pain of hosting my own Wordpress-backed blog a few
months back and made the switch to Pelican. Here's a post detailing my
overwhelmingly positive experience so far:

[http://jimter.net/switching-the-jimternet-from-wordpress-
to-...](http://jimter.net/switching-the-jimternet-from-wordpress-to-pelican/)

------
zachrose
Many developers have written about ditching a CMS-like thing for a static site
generator for their own personal use. I've done it too, it's great!

Is there anybody who's had a good experience getting less technical
partners/colleagues/clients to do the same, possibly with something like the
GitHub file editor and continuous deployment?

~~~
bobfunk
I think there's a big future for static site generators (that's why I'm
building BitBalloon [https://www.BitBalloon.com](https://www.BitBalloon.com)),
but the big hurdle for using them for projects for clients is the lack of
browser based admin tools.

Stuff like prose.io goes some of the way, but for most users even WordPress
requires training, and showing them the raw filesystem is gonna be way to
geeky in many cases.

Would love to talk to anyone interested in building a great open source admin
panel for a static site generator.

~~~
mutagen
I've been thinking about leveraging existing open source interfaces for static
site generation, creating something between a full cached (Varnish, etc)
interface to a dynamic site and generating each page on the fly. So rather
than have Wordpress or Drupal or some such thing generate the full site the
new post is dumped into the existing static site generator and a site
generation pass is triggered.

I'd prefer to retain some dynamic site features like commenting, discussion,
and form submission. While there are very successful companies that outsource
these features I prefer to have the option to take ownership and control of my
content. So I'm envisioning the only dynamic part of the site besides the
admin interface is an API to enable these (and more) features. Depending on
design and the type of interaction these could trigger a page or site rebuild
or update a Javascript framework on the page to reflect the new comment, the
successful form posting that updates a calendar, etc.

~~~
jacques_chester
I wrote a project proposal back in 2010 for something like this. Essentially
the key is to turn site updates from being GET-driven to being PUSH-driven.

------
zobzu
the major issue still remains that you're hosting comments externally. when
this is the case you could also have whatever free service handle the site
entirely.

whats missing for larger adoption of generators is a super simple comment
engine that just work and that you can host. there are some but they aint
convincing.

------
donniezazen
1\. If you are not familiar with either Ruby or Python which one would you
choose - Jekyll or Pelican.

2\. Can you use Adsense with Github Pages?

~~~
razius
1\. I try to learn to use Octopress, it should be simpler to set-up than
Jekyll as it comes with a theme and a sensible config by default. 2\. Sure you
can, Adsense is loaded via client-side via javascript so all you have to do is
embed the javascript in your templates.

