WordPress' Twenty Nineteen Theme ported to GatsbyJS

There’s no doubt that WordPress has become as big as it has because of how easy it is to manage content. Due to the multitude of changes that can be made from within the WordPress admin, it empowers users to make changes without any technical knowledge.

With that ease of use comes a bit more complexity and limitations for developers. While WordPress alone is a great solution for many sites, it’s still subject to various nuances and additional server-side processing that might not be ideal for others.


Since WordPress’ most significant strength is its user-friendliness when managing content, how can developers leverage the benefits while still utilizing a solution that works best for them? By using WordPress as a headless source for their frontend, of course!

For example, a frontend developed with Gatsby can use WordPress as a source for its posts, pages, categories, and even comments!

From the user’s perspective, everything looks and feels like WordPress, but the frontend can be statically generated to take advantage of substantial performance increases and lower hosting costs.


Upon initializing a Gatsby build, existing content from a WordPress source (via the WPGraphQL WordPress plugin) is automatically pulled and built using various templates for posts, pages, archives, etc.

Since Gatsby is generating static pages from the WordPress source, this also means that the frontend is faster more secure than ever before. Additional server-side processing via PHP is no longer needed when someone visits your site!


There are other open source projects that have also used Gatsby as a frontend for a WordPress backend, all with different approaches. If you’re looking into doing the same, it might help to see the varying ways of achieving similar end-results.

Here are a few other open source projects that use a Gatsby frontend with a WordPress source:

Become a member

Get the latest news right in your inbox. We never spam!

Leave a Reply

Your email address will not be published. Required fields are marked *