← Back to projects

A side project

stevenliew.com

My blog and projects used to live on separate sites. I finally got around to bringing them together here.

  • Astro
  • TypeScript
  • Tailwind CSS

For a while, stevenliew.com was only my blog. I built it with Hugo in 2023 and put it on Netlify, then created a separate React and Three.js portfolio on Vercel in 2024. I liked both projects, but I was writing in one place and showing my work in another. I even wrote at the time that I wanted to bring everything together. It took me a couple of years to act on that thought.

This Astro site is the result. It gives the blog, the projects and the rest of my life one address. I can write about the Synology NAS or Home Assistant, add a side project, then let someone follow the links between the thing I built and the story behind it. That is much closer to how I actually think about my hobbies than maintaining a formal portfolio on one domain and a neglected blog on another.

The parts under the hood

I kept the parts of the Hugo setup I liked: Markdown posts, a static build and a site that does not need a database just to show an article. Astro builds the pages as HTML, while its content collections give the posts and projects their own fields. A new post is a Markdown file with a title, description and publication date. A project has a different set of fields, including the technologies used and where to find it. I can add either without rebuilding the site structure by hand each time.

Tailwind CSS handles the styling. I wanted the pages to feel related without turning the site into a company brochure, so the writing has room to breathe and the project pages can still show the details. There is a light and dark theme. The landing page is where I let myself play more: Three.js brings a cube into the hero because solving cubes is part of who I am, and I enjoy making the web do things beyond laying out text.

The older posts came across with their original dates, including the first Hugo post and the 2024 portfolio launch. Keeping those stories mattered to me. This site should show the path I took, including the experiments and the long gaps between posts, instead of making it look as though I appeared online fully formed this year.

Why I keep working on it

The practical benefit is having one codebase for the writing and the projects. The more personal benefit is that there is finally a place for all the things I want to talk about: self-hosting, Home Assistant, coding for fun, cubing, swimming and family life. I do not need every post to fit into a professional niche. If a project starts as a rabbit hole on my NAS and ends up helping the family, it belongs here too.

I wrote a longer Hugo-to-Astro walkthrough with the terminal commands, in the spirit of my original Hugo guide. This project page is the shorter answer to why I rebuilt the site at all: I wanted one home for the work I do for fun and the stories that go with it. I finally have one, and I will probably keep changing it whenever the next idea takes hold.