After using the same old template made with jQuery and bootstrap for several years, I decided it was time to reinvent my portfolio. The reasons for doing this were
React and Gatsby would take care of the front end, generating a static site which would make my site fast and secure. I decided there was no need to host a back end, as there's plenty of headless CMS solutions which integrate nicely with Gatsby. I first tried NetlifyCMS, but I didn't like the feel of it and it felt difficult to expand on. I then tried Sanity.io which I immediately found much better: the UI itself is nicer, it's really easy to define schemas and custom objects, and it stores data such as images on a CDN, rather than in the repo itself.
In terms of deployment, I used Netlify where I configured a pipeline to listen to the project's GitHub repo. If any new code changes are pushed, it will rebuild the project and deploy. I have hooked this into sanity too, so if any data is changed on the CDN, then a rebuild will be triggered automatically. This is incredibly useful as I can now update my portfolio through a web app without making code changes (unless I want to add features).