Portfolio Site V2

Portfolio Site V2

Feb 2025 - Aug 2025

Category:Portfolio
Obsidian iconObsidian
Used in 4 projects
Netlify iconNetlify
Used in 16 projects
GitHub iconGitHub
Used in 22 projects
Zod iconZod
Used in 1 project
Jest iconJest
Used in 2 projects
Umami iconUmami
Used in 3 projects
Typescript iconTypescript
Used in 9 projects
ESLint iconESLint
Used in 8 projects
Prettier iconPrettier
Used in 7 projects
Cursor iconCursor
Used in 8 projects
Playwright iconPlaywright
Used in 2 projects
Astro.js iconAstro.js
Used in 1 project
Tailwind CSS iconTailwind CSS
Used in 4 projects
Preact iconPreact
Used in 1 project
Node.js iconNode.js
Used in 6 projects
Claude Code iconClaude Code
Used in 4 projects
Uptime Robot iconUptime Robot
Used in 2 projects

Description

An updated personal portfolio website for displaying my skills and past projects, building on my previous site with my newly learned skills.

Every project, skill, role, company, education and reference is stored in Obsidian Markdown notes, processed by Node.js scripts and loaded into the Astro site for display. This system centralised my previously scattered notes about my career.

After writing the backend Node setup for gathering the data from the notes, I built the framework from a template, extending the design to include special sections that I wished to display such as the skills bubble graphic, the timeline and carousel components.

I've added a set of custom Umami events throughout the code and automated emails to myself weekly reviewing user behaviour on the site to understand the value of features.

North Star Metric

Increase the number of users clicking to learn more information about me and my work

Lessons Learned

Initially I set the project up with an Astro front end and started doing GraphQL calls to my Backend Server project to collect the portfolio data I had stored in the Neo4j graph. However I soon realized that I was undoing the speed of Astro and switched to a script that loads the required portfolio data (stored in Obsidian Markdown files) into the portfolio repo and used Astro collections to gather and display the data that way.

The project taught me about defining npm functions in the `package.json` file and how to pass variables through to these scripts using the `cross-env` package.

It was also my first taste of Tailwind CSS and although I began to grasp the utility class names towards the end of development, I found it easier in a lot of situations to extract a class and define it in the main CSS file. I see it's benefits for fast prototyping, but I'm not a big fan from what I've seen.

This was the project I first learnt to use Umami analytics on, apply custom events across the code to analyse the user behaviour and find understand the value in features added.
Project Links: