← Back to Projects

Personal Website

Ongoing
Total Time Spent: 3 hours

This is my personal website! It is built with React, Vite, TypeScript and TailwindCSS. The source code is avaliable on GitHub.

Devlogs

Refactored static content generation

Written on January 9, 2026Time spent: 0.5 hours

I refactored the static content generation scripts. Previously, they are just strings hardcoded in 3 different places (the Topbar component, blog-generator.js and project-generator.js).

I've now server-side-rendered the React components to static HTML strings in the generator scripts (blog-generator.tsx and project-generator.tsx) and imported those functions in the build scripts. This makes it easier to maintain the HTML structure of blog posts and project pages since I can now use JSX syntax and React components directly in the generator scripts.

A CLI for manging devlogs/blogs

Written on January 7, 2026Time spent: 1 hours

I made a simple CLI tool to help me manage devlogs and blogs for my personal website! It's made using inquirer, and allows me to easily create, edit and reorder devlogs/blogs without having to manually create markdown files and fill in the frontmatter.

Previously I had a script that would create a new markdown file for blogs, but it was quite limited and since I added the devlogs feature, I've extended it to be more powerful, and now it can handle both devlogs and blogs.

A screenshot of the CLI tool, showing the process of how I made this very devlog.

Project page

Written on January 6, 2026Time spent: 1.5 hours

I made a project page for my personal website! It displays all my projects in a nice grid layout (or at least, I hope it will. I haven't filled it with projects yet).

It also shows 'devlogs' for each project, which are basically tiny blog posts about what I've worked on for that project. Each devlog has a title, date, time spent, and an order to determine which log comes first.

I got the idea of devlogs from Hack Club YSWS, where they require students to write devlogs for their projects. I think it's a great way to document progress and share what I've done!