I like WordPress. I like the community and I like the way I can invite other people in on it. But. I wanted to run a site, a small site, with static content for the most part, no comments, and just the basics. So why not Jekyll? After all, I’m big on self-hosting, and while most people I know seem to be running Jekyll on GitHub, you know me. I want to do it myself, I want to have it all here.
Six drinks later…
My major issue with Jekyll is that the ‘Simple’ directions aren’t obvious the way everyone seems to think they are. I mean, yes, they’re simple, but they lead you to some pretty crazy misconceptions based on how websites and CMSs work, and have worked, for a long time. And given all the posts I’ve read about how terrible WordPress is, my remark on that is: No, Jekyll is not terrible, but it has an audience.
Look, of course WordPress can be terrible. So can your car. It’s all in how you use it, what you add on to it, and what you fuel it with. I have a lot of reasons to use WordPress, and I really like it for many reasons (least of which is if you asked me to explain Jekyll to someone who emails me a PDF of a Word Doc to post on WordPress… Well, yeah, no, it’s not simple.)
Misconception: Where Do I Install Jekyll?
DaFUQ?
Okay… you think “Hey, Jekyll’s running my site so it’s all on Jekyll, right?” Nope! Jekyll is installed on my laptop. It’ll be used to create content that I will deploy to my website. Jekyll generates the webpages. Just bear with me. Yes, it also runs the site, but it doesn’t have to. In fact, it generates all of my pages into a subfolder called _site
, which you can actually load as a webpage. If I copied all of that over to a folder, it’d work as is. So option one here is that I could just do that. But that’s not what I’d call ‘friendly’ and it means all my code has to be on the server where a sneaky person could go get it. Part of why Jekyll interested me is that it’s more secure by being a flat site.
Option two is to use a Jekyll ‘front end’ deployer, like Octopress or Prose. Option three was to stop and think “Maybe I just don’t get this and I should start simpler.” It’s very odd to me to have my ‘content’ on a server, but the ‘source’ not there. While if it’s just me running a site, that’s great. But as soon as I have to tell my dad to check code out… Maybe this is a bad idea. I don’t want end-users to have to learn all this. I want to tell them “Write your content. Save it here. Magic.”
Revise: Needs vs Wants
When I get really bogged down in thoughts like this, I step back and ask my self “What are my needs?” That’s similar to asking “What problem am I trying to solve?” but it’s a little broader, as I may not have an actual problem, I may just need a small change.
I’m looking for a product with a small footprint, no comments, a way to subscribe to updates (RSS or email), separate content and design (so my writers don’t mess with the layout), and it needs to have a workflow that does not involve me having to teach svn or git commands to a music major. Oh and it has to be easy for me to upgrade (one click or git pull will do).
Say what you will that git is easy (it is for me, albeit sometimes confusing). It’s not necessary for everyone to learn. I really feel a journalist shouldn’t have to learn to use it in order to write content! Still, after banging my head on this, I finally decided I was making my life too complicated by trying to self host before I understood the actual workflow of the process. So I went one step further back and decided not to self host right now.
KISS: GitPages
Everyone uses GitHub Pages. So fine, so will I. They walk you through the setup, so that’s nice. It was pretty painless to make a repo. But what did that have to do with Jekyll? I can edit everything within GitHub which is nice but I don’t want that. I wanted to learn Jekyll… Scroll to the bottom and there’s a nice graphic saying I can use Jekyll!
And they link to the Jekyll quickstart. Okay, thank you, I can install Jekyll. How do I hook them up? I had to actually Google to find the link to Using Jekyll with Pages and frankly, after reading it… I don’t want to. Oh I did it, but it’s not “simple.” It’s a total pain in the ass. It reminds me of the old MoveableType when you had to fuss with cgi-bin. It’s all manual. And this is fine for a dev, but I don’t want to have to install this on my Dad’s laptop. Did I mention he was on Windows?
So using this for a version controllable, static website, is actually far less tolerable than I wanted it to be. I can use it, I kind of understand it (the whole source folder is confusing me a little…) but it’s not something I could easily roll out to a medium-technical person without some serious training. In fact, I need some serious training to get good at just pushing my content, and when I compare that to WordPress…
I get why people like it, though. The static files alone are pretty cool, but it’s going to be a learning curve.
Comments
2 responses to “Dr. Jekyll and Ms. Hyde”
Not at all. The various deployment methods outlined in the manual are fairly clear about only uploading the target directory (“_site”) to your web server, and not even your post drafts are included in there if you’re deployment tools aren’t specifically enabling them. In fact, no file or directory that starts with either a dot (‘.’) or underscore (‘_’) is copied into the target directory by default except for “.htaccess” if you have one, for obvious reasons.
Not that it’d be a security vulnerability if you did upload the entire source directory to a publically accessible document root, there’s nothing in there to exploit unless you’re still pushing up useless scripting files for some odd reason (it is still possible to deploy PHP files through Jekyll to a webserver with PHP installed).
In any case, a production web server wouldn’t be running Jekyll at all in it’s ideal setup, and I know because I run one myself on a site that sees over 50k visitors / mo. I don’t even use GitHub pages either since you can’t use mod_rewrite redirects since it’s not even running Apache, which I would miss dearly (though you can still add dummy pages with meta redirects of course).
I generally found the whole process much easier than explaining to new users what MySQL is, and how to create and configure a secure DB for use with WP, and how to properly configure file permissions, all assuming they aren’t using a one-click-installer. In Jekyll, none of that is a security risk. And also, using git is optional, you could deploy from SVN or something else entirely (maybe not even using a VCS at all), it’s just important to heavily encourage version control of some kind to users since it’s Jekyll’s form of post revisions, and an amazing built-in backup system. So if another version control system is easier for your editors/authors, certainly use that instead, or better yet, provide an interface for editing those files that abstracts your authors from version control entirely (GitHub makes this possible as well).
In the end, there really is very little that you can do with WP that you can’t do with Jekyll, and the performance gains are incredible, so it’s certainly a contender in the field. It’s just different.
@Bryan Petty:
Clear to Developer Mika, maybe. Clear to USER MIKA, hellz no.
I snipe about this with Shredder a lot too. Developer ‘clear’ is rarely something a new person can pick up and go “Oh, okay.” The fact that I, someone who does know what the hell I’m doing, had a hicup (mostly from preconceived notions, I admit) means that Jekyll is failing at being ‘friendly’
Is it easier than explaining SQL? Yes and no. We’re used to explaining SQL. “It’s a database that stores your post content and configuration settings.”
But then we’re at ‘Deployment tools’ and that’s back to “So I can write all my posts, but I have to copy them up to my server?”
Yes, I copy one folder up to my server, so I can sync it, but that’s back to the issue of ‘using this anywhere from any PC in the world.’ And THAT is why I said my code would be on a server somewhere. If I run Jekyll off a server, so that I CAN write anywhere, I have to worry about that.
If I just have it on my PC, well then that’s totes safe.