Jungmann - A one-pager, from Gatsby to Contentful.

First contact: 2021
jungmann-header
Tech stack: Gatsby, Contentful (eventually), LAMP (hosting)

The Gatsby Awakens

It's been a while, but this was likely my second production Gatsby project. It started out like so many projects in the past have:

It's just a simple one-pager - get it done quickly, we need it to launched it asap.

Famous last words. The amount of content on the "simple one-pager" grew gradually and then suddenly, causing some performance issues. I don't mean performance issues in terms of client-side rendering or bandwidth issues, as Gatsby has excellent support for modern image formats (WebP and AVIF) and lazy loading strategies (Safari didn't get support for native lazy loading until 2022 🤯).

The performance issues I'm referring to are to do with content editing. I had not bothered with implementing a CMS to deal with the influx of content, so I was working with ever more complicated JSON objects containing various types of content, which became increasingly annoying to deal with, just like me.

jungmann-services-grid
I initially considered using image masks, borders and/or and PNGs for these but ended up going with JPEGs. You want those borders to scale with the images anyway, and given the variety of borders there was no guarantee that there wouldn't be yet another style of image down the road that would torpedo my careful planning.
jungmann-hero
A parallax effect using GSAP was initially used, but after performance complaints from VIPs with low-end hardware, background-attachment: fixed was what ended up being used.

Revenge of the CMS

Eventually I did implement Contentful as a CMS, in a piecemeal fashion. As content editing requests came in, I would focus on converting that section of the site to pull its content from Contentful, with the hope of eventually relying on Contentful exclusively for content updates.

The cautionary tale of one-pagers isn't just that you don't integrate a CMS early enough, it's that design thinking is lulled into a false sense of "this is just a one-off" rather than "let's build a robust system."