This is my personal website! It is built with React, Vite, TypeScript and TailwindCSS. The source code is avaliable on GitHub.
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.
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.

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!