Four years ago we switched from a PHP generated site to one built in Octopress, so it would be easier for people to contribute, and we would not have to worry about keeping servers online.
Things have changed since then. The Octopress version we used is no longer supported, and the new 3.0 is leans heavily on Jekyll.
With the backing of GitHub for GitHub Pages, Jekyll itself has improved tremendously.
Combined, I felt we reached the tipping point where it made more sense to port things to Jekyll so we can profit from their speed of development, ecosystem, and the fact that many developers are already familiar with it.
Long story short, I just completed the migration, and if you want to work on the website, here’s what you’d do.
Jekyll runs on Ruby, so make sure you have that installed, preferably with a working version of bundler. The rest of the site-building dependencies are node-based, so make sure you have a working
npm as well.
To install the dependencies:
To start a local version of the website and open a browser that will auto-refresh on changes, type:
npm run website:start
Now hack on the files in the
./website folder, until you’re happy with the local results. Commit the changes to Git or send in a PR if you don’t have write access to the repository. This means the sources are saved, but someone with write access still needs to deploy.
To do that, type:
npm run website:deploy
That’s it : )
P.S. We have a few custom build steps such as rendering the functions, that make it hard for us to only use the GitHub Pages provided Jekyll, this means for the time being we’ll be relying on our own scripts and Jekyll version. That said, it’s still possible to orchestrate auto-deploys whenever there’s a change to
master, by using Travis CI and encrypted environment keys. If I have time, I’d like to set this up too. This way people could propose changes, and merging them would be enough to see them go live.