Blog Latest

New portfolio website

June 27th, 2023

Web Development
NextJS
React
Tailwind
Markdown

Hi there! If you're reading this, it means I finally found a bit of free time to rebuild my personal website.

My goals for this site are simple:

  • Highlight some of my past work
  • Provide a contact form to get in touch
  • Run a basic blog to chat about some of my work and interests
  • Try out a few technologies or systems that I don't usually use

I recently rebuilt my Tokyo Indie media site in Gatsby using Sanity CMS; my first experience using React and a headless CMS setup. Whilst it was very straightforward, with my personal site, rather than depending on a CMS, I thought it would be interesting to use markdown files to populate all the content and try out one of the most current/popular web frameworks; NextJS. NextJS supports Tailwind CSS out of the box, so I also thought this would be a good chance to play around with that (Tokyo Indie was just good old-fashioned CSS).

I am not sure at this stage if I prefer Gatsby or NextJS; my feeling is that the more complex and interactive a web application, the more NextJS will reveal its strengths over Gatsby. One thing I did really like about Gatsby, though, was the GraphQL query explorer; it made it super easy to plan my data queries and work with external APIs.

In terms of Tailwind or CSS, I must say I was really surprised to find Tailwind very intuitive and easy to use. Still, it feels a bit wrong, given that when I first started playing with CSS when I was 12 or so, the main advantage was said to be the ability to edit one stylesheet and have those changes apply everywhere. Tailwind instead has you write individual styles for each element, almost like an inline style, but a shorthand version. This basically means if you want to change the style of something that appears in multiple places on the site, you have to change that shorthand styling on each element... exactly what CSS was originally supposed to help us avoid. Tailwind fans argue, though, that given the modularity of writing code in React, this idea is no longer relevant, and I have to say I kind of feel that; if I find myself writing the same inline style in multiple places, it's a reminder that I should probably turn that into a React component. Still, it's funny how things change.

So, what else can you expect from this site? Well, there are a few things I didn't get round to implementing; I'll probably turn the tags at the top of these posts and my work profiles into clickable tags which allow you to pull up pages for any markdown files which reference those tags. I'll then probably dump a list of all the tags into a feature on the front page titled "Experience" or "Skills" or some such. However, we'll see if I ever actually find the time!