For my first project during my time off I’ve decided to rebuild this website and move it away from using WordPress to using Prismic as a headless CMS and Next.js to statically generate this website. I’ve been curious about creating a site using the Jamstack for a while and I thought this would be the perfect opportunity to get started with a basic project.
I decided to move away from using WordPress because I feel that writing code for it never feels like a good experience. I first used WordPress years ago when I begain my career as a developer back in 2010 – I didn’t like the experience back then and I like using it even less now. After having worked with better and more modern frameworks since my first job, working with WordPress feels like a giant leap backward (I don’t rule out using it again someday, but while I’m doing my own projects I’d rather avoid it if I can).
I considered using a headless WordPress build, but once I played around with it in a test project still found it to be clunky and annoying to use, I also just felt like I had no interest in the platform itself.
After getting a few recommendations from a friend I took a look at GraphCMS, Prismic, and Contentful which all looked like great options, in the end, I decided to go with Prismic. I could have just as easily decided to use either of the other two but I thought that Prismic has excellent features, a great UI and a very good free-to-use option.
I really like React. I think that it is a brilliant framework and has great features that allow me to build high-quality websites easily and quickly. To rebuild this site using the jamstack I wanted to use a react based static site renderer; two good options are Next.js and Gatsby. Both frameworks have a lot of similarities – Gatsby is a static site generator whereas Next.js applications are server-side rendered. I chose Next.js because it has a static site generation feature that can be used to build the site just like Gatsby, it is also an opportunity to learn something new as I have not used Next.js before.