For a while now, GitHub has been running a service called GitHub Pages. Based on Jekyll, GitHub Pages allows for the creation of websites as either standalone sites or to accompany code projects on GitHub. This is great, but adding new pages is a little tricky unless you’re a seasoned Git pro.
That is where Prose comes in. Once you’ve authenticated your GitHub account, Prose lets you edit existing text files and create new ones ready for Jekyll to convert them to HTML. Prose is geared towards the creation of new Jekyll pages in the Markdown format. Markdown, if you’re unfamiliar, is a simple type of markup language designed to be both easy to learn and to convert to well-formed HTML.
The question is, do Prose and GitHub make a good enough team to displace more traditional website backends?
First things first, Prose is an excellent, friendly writing tool. It has a succinct but comprehensive Markdown reference and a preview screen to check that your mark-up is doing what you expect it to. The best part of these two tools, though, is their accessibility. Ctrl-Shift-Left takes you to the reference. Ctrl-Shift-Right will bring you back to the editor. Repeat it and you go to the preview. This small feature strikes a nice balance between WYSIWYG editors and code-based editors. No more button-clicking to add a link, and no more spamming the “Preview” button to check everything is looking as you expect. Honestly, if I find myself writing Markdown any time in the future I will using Prose. I’d really like more editors to take a similar tack.
Prose also makes managing posts/pages easier. New pages can be created in-app and pages can be published, de-published and deleted. This means they can be created anywhere and everywhere with a browser and an internet connection, rather than having to be manually pushed to GitHub from the command-line or desktop app. Of course, being GitHub, your entire website can be downloaded to your desktop for safekeeping with just a few commands. Every change is recorded, and it is very easy to rollback to an earlier version of your website. It’s version control with a website and it is very useful.
Sadly, there is a little trouble in paradise. There are two issues here. The first is only temporary – Prose is currently a little on the buggy side because it is still beta software. But there is a dedicated team of developers working on improving it. Even in its current state, though, it works well.
The other issue, sadly, is unlikely to go away, and it is this: GitHub Pages is really quite difficult to set up and customise. This is because of the underlying Jekyll engine. The Jekyll developers made some interesting decisions – they made a product that converts simple mark-up languages like Markdown into HTML, yet their templating engine uses Liquid which, as best I can understand, is very convoluted. This issue is compounded by a shortage of pre-made templates. Unless one of those fits, you have to learn a new language to be able to template what was supposed to be an easy-on-the-coding website. The Jekyll engine also requires a very specific directory arrangement and set of configuration files, but I couldn’t find a pre-made template on either on Jekyll’s website or the GitHub Pages website. In the end, I had to try two third-party Jekyll starter setups.
I’m left conflicted by all this. On the one hand, Prose is an excellent editor, and GitHub Pages has a lot of useful revision control tools and is reliable. Once everything is set up, it works well. But it is far too complicated to set up. It took me around an hour and a half to finally piece everything together and get it all up and running. I could have set up a WordPress installation and written a blog post or two in that time and saved myself a headache. It’s annoying, because this could work really well. Instead, it lacks clear direction: it takes a fair amount of computer competency to set up a system designed to allow you to write a website in a language supposed to require less computer competency.
Here’s what I think needs to happen: GitHub need to pay some more attention to the Pages project. They need to improve their documentation (it took me ten minutes to find a side-note explaining that the repository containing my website needed to be named [username].github.com). They need to add an option in their repository administration to deploy a baseline Jekyll setup, complete with a number of themes designed in-house. And they need to do it quickly, otherwise GitHub Pages is going to be relegated to the domain of those with far too much time on their hands and the excellent work of the Prose team is going to waste away.