In January 2022 I decided it was about time I revamped my personal website. I
previously had a basic Jekyll [https://jekyllrb.com/] blog, that was set up some
time ago. The problem with it was, that it felt just like what it was: a blog.
What I wanted instead, was an actual personal website, that would give the
viewer an idea of who I am.
Technology
As always, with any web project, there are limitless possibilities when it comes
to deciding how to build the page. I decided to use Next.js, as I previously
enjoyed using it for a university project, where me and my fellow students had
built a highly interactive application with it. I had also wanted to dive in
deeper into topics such as server-side and static rendering, which this
relatively simple and static site would be perfect for.
As far as building the actual React components goes, I decided to use Chakra UI.
This also meant that Framer Motion was already bundled, so it made sense to use
it for animations.
When it comes to hosting, I'm a fan of just running it on my own server. The
plan was to build a docker image and run that behind my Nginx reverse-proxy.
CI/CD
I had also wanted to try building a CI/CD pipeline myself. This project seemed
like a good candidate, as it would stay up for the foreseeable future, and
continually deploying changed versions myself seemed like a chore.
I had previously had some experience with Jenkins at my job, and decided it
would be the best system to learn for me, as I am likely to run into it again.
Home Page
I used create-next-app to quickly create the basic outline of the project files.
The example with-chakra-ui-typescript
[https://github.com/vercel/next.js/tree/canary/examples/with-chakra-ui-typescript]
comes with Chakra UI already configured, which saved me from writing all the
boilerplate code required