How I reduced my Jekyll build time by 61%
At the time of writing, Jekyll’s performance is still actively being worked on by the Core Team for an upcoming version 4 release. One of the main complaints about Jekyll for users is often the build times of larger websites. I want to take this opportunity to see just how much I can expect to improve my current site’s build times by using the latest master branch.
Sound good? Let’s get started.
Announcing Image Handling with S3 🖼️ + Update Billing Contact Information 💵 and more
Happy New Year! We’re starting into 2019 with an exciting new feature.
Today we can announce support for S3 as an image storage provider for Forestry. The S3 integration makes it possible to efficiently store, organize and deliver images while keeping the editing experience in Forestry simple and clean.
Editors, marketers and writers can continue to use the Forestry Media Library without even knowing that they are using S3 in the backend.
Is it Time to Move on From WordPress?
WordPress 5.0 has been released, and with it comes their much-hyped new editing experience, Gutenberg. The inclusion of Gutenberg in this release has caused no shortage of acrimony in the WordPress community. The new editor is opt-out as opposed to opt-in (and opting out requires installing yet another plugin), and is such a significant departure from their original content editor that it is guaranteed to cause major issues with third-party plugins and themes (Gutenberg, for example, does not support WordPress’ meta box API, an essential component of customizing the current editing interface used by countless plugins.
Data Files, Directories, and Duplicating Pages
The lumberjacks have been busy lately! Here’s what we’ve been up to:
Agnostic Data File Handling We have removed support for our old way of handling data files. Previously, we used some heuristics to automatically discover data files in your Jekyll and Hugo projects. Data files must now be manually configured by creating sections for them.
VuePress Now Out of Beta Abstracting data file discovery in our content manager has paved the way for more easily supporting other static site generators.
An Introduction to Theming in VuePress
When I first looked at VuePress, I marveled at how quickly you could install it alongside your project’s existing markdown docs to create a polished documentation website. This is without a doubt one of VuePress’ biggest strengths, but documentation is not the only thing it can do. VuePress is a highly flexible static site generator, and provides the ability to completely customize the way your pages are built via its Layout component.
Demystifying Hugo Conditionals
When we published our comparison of Jekyll and Hugo, we got a lot of flak from Hugo die-hards for suggesting that Jekyll had a more intuitive templating syntax. While the intuitiveness of a particular language is somewhat subjective, criticism of Hugo’s template syntax frequently comes up in discussion with other developers.
Hugo is a great choice for a static site generator: it’s compiled into a static binary, so it’s easy to install on any system, and it’s fast.
Using JSON Configuration With VuePress
Here at Forestry, we think VuePress is pretty cool. When it came time to set our sights on supporting SSGs beyond Hugo and Jekyll, we selected VuePress as our guinea pig. Our adoption of VuePress has helped to highlight the differences among the variety of Static Site Generators, and move us in a direction that will enable users of SSGs beyond Hugo and Jekyll to take advantage of Forestry’s content manager.
Introducing Custom Build Commands
We’re excited to announce Custom Build Commands! You can now decide what build command should be run for your project.
Until now Forestry chose the build command that needed to be run for you, which worked fine for most cases. However, this meant that projects that needed a custom build process were unable to use Forestry’s deployment tools and (in some cases) previews.
Picking your own commands enables you to really choose your own workflow and give you the flexibility you need.
Creating Lambda@Edge and Route 53 Resources with CloudFormation
Previously, I showed you how to automatically provision AWS resources with CloudFormation. CloudFormation provides a concise, declarative syntax for configuring a “stack” of AWS resources. Given the sizable catalog of services provided by AWS, and the need to connect services together for most use cases, being able to declare a stack of connected services all together in a single configuration file will help you keep track of your project’s infrastructure and reduce the likelihood of misconfiguration.
Custom Configuration for Data Files 📊
We’re excited to announce custom configuration for data files.
A little over two months ago we made it possible to customize the sidebar for your content files (i.e. .md and .html). With today’s update we expand that capability to data files. You can now use the sidebar settings to import other file formats (e.g. .json, .toml, .yml) and choose how they are displayed.
All new sites will have this feature enabled by default.