Mark Pollmann's blog

Gatsby

Introduction

So I when I started this blog I wanted something simple to get started which let me focus on writing content. GitHub pages worked well with Jekyll for writing in Markdown so that’s what I used.

In the last six months I thought about doing some cooler things on this site than just writing content and when I heard about Gatsby I decided to check it out when I have some free time. And since I’m currently on vacation that was the perfect time to tinker with it. So let’s get started.

What was the process like

When you start a new Gatsby project you get the default template of a simple two-page website, which is a good start. So for a new static page you create a new file in the src/pages directory where the filename corresponds with the URL: about.js becomes yourwebsite.com/about.

Blog Posts

You could create a new static page for every blog post you write but there’s a better way. We create a blog post template and let Gatsby create a new page for every entry .md file in a directory you specify. You can read more about how this works here .

Gotchas

One thing I ran into is that (as far as I know) you have to explicitly add the path entry in the markdown file’s frontmatter which might take some time if you have a lot of files. Jekyll was able to create it from the file name.

Also styled-components somehow worked in dev mode without installing the gatsby-plugin-styled-components plugin but not in a production build. Check your site (gatsby build && gatsby serve) before you publish it.

Hosting

I moved from GitHub Pages to Netlify with the same private GitHub repo. The process is exactly the same: You push to master and Netlify takes care of the build and publish just as GitHub Pages did before. No complains.

Next

  • Convert the code base to TypeScript.
  • Play with MDX .
  • Add a dark mode.
  • Add a Table of Content to blog posts.
  • Convert the site to a Progressive Web App.
  • Build some sweet React things.

Conclusion

10/10, would do again 👌.

Setting everything up took a bit more time than I expected. Mainly because I wanted to do everything by hand. If you don’t want to write your own CSS and pages you can just pick a Gatsby Starter that you like and be ready in no time.

Now the site is blazing fast and I can use it as a big React playground.