Software Development

Building this Website: Part 1

Or what my initial decisions were

27 June 2025

I've been wanting to create my own website as a personal blog for a long time, ever since I first started studying Computing at university about six years ago now. I of course had basically no experience in coding and setting up a website at the time, although on that course we did play around with using Drupal to build a site. Since then I have, as stated elsewhere, gotten four years of experience in software development, and one major project I worked on in that time was an Angular site.

In my time off, I turned to using Angular for the front-end of a large personal project I've been working on, but I soon found out that there were better options for it. Enter Next.js.

I'd already started looking into using React for my previous job, although I never got round to using it professionally. Still, it remained in the back of my mind and I eventually released that for the specific project I was working on, React and in particular Next.js would just be better for it overall. (I can't really give any more details without revealing what that project was). So I started watching courses and learning about Next.js and I really enjoyed it. I found it incredibly easy to get my head around, and I wanted to work on a smaller project with it right away. That's when I figured I would use it for this website.

Looking up how to write a blog with Next.js, I came across Markdown. Pretty much every tutorial on how to make a blog with Next.js recommends using Markdown which is essentially a way to write text that can then be formatted into HTML for the webnsite. What this means is that I only need to create one page for all the blog posts, that takes the relevant Markdown file and present it.

Markdown Example

This makes writing a blog post significantly easier and simplere since I don't have to create a new folder, with a new 'page.tsx' file, and add new code to showcase it on the front page and the journal page. Now, I simply need a 'post' folder, followed by a folder titled '[slug]' that can hold just the one page for all blog posts, and I have some simple code on the journal and front page that just takes the markdown files and presents them.

There are other advantages to using Next.js, and that is Vercel. Vercel is a platform for hosting static websites that works perfectly for a blog like this, and it's incredibly easy to use for a first timer. All I had to do was create a Github repository for the website, create a new project in Vercel and then link that project to the repository and the rest is basically done for you. There are Pro features you can pay for, but the necessary stuff is completely free. All I had to pay for was the new domain name. You can even add analytics to the site which again is incredibly easy.

Initial Analytics

It wasn't perfect, there were many bugs and issues that I came across on the way, but that's a story for another blog post.