project

Posts tagged with project.

All blog posts
A desk setup with VS Code and a Philips Hue lamp flashing as a status indicator for Codex.

Using Philips Hue as a Status Light for VS Code AI Tasks

I connected the Codex notify hook in VS Code to my Philips Hue desk lamps using a simple PowerShell script. Now, my lights flash whenever a long-running AI task is complete, giving me a subtle ambient signal to return to my terminal.

A screenshot of my frontend developer portfolio homepage built with Astro.

How I Built My Frontend Portfolio with Astro, Tailwind, and GSAP

A walkthrough of the tech stack and design decisions behind this website. I explain why I chose Astro for its speed and content-first approach, and how I used GSAP and a bento-grid layout to make the site feel tactile and unique.

Illustration of PasiLunch fetching and displaying restaurant menus in Slack and on a web dashboard.

Rebuilding PasiLunch: Using Gemini AI to Normalize Messy Menu Data

Traditional web scraping is fragile and inconsistent. I rebuilt my lunch bot into a full web service that uses Gemini AI to translate and structure messy restaurant menus into a clean, unified JSON feed that works every time.

Illustration of a lunch table with various dishes, representing LunchBot project.

Building a Slack Lunch Bot with Node.js and Cheerio

Stop the daily "where are we eating?" Slack spiral. I built a custom Node.js scraper that aggregates local restaurant menus into a single Slack command, saving the team from opening dozens of browser tabs every morning.

A collection of book covers displayed on a digital screen.

Connecting the Google Books API to Astro with Local Image Caching

Don’t let slow third-party APIs ruin your site’s performance. I developed a workflow to fetch book metadata via ISBN and sync covers to my local assets folder, ensuring my digital bookshelf loads instantly with optimized Astro images.

Pixoo display showing a chess rating.

Displaying My Real-Time Chess.com Rating on a Pixoo Pixel Display

I wanted a physical way to track my chess progress without checking my phone. Using Python and the Chess.com API, I built a bridge that pushes my live rating to a Pixoo display on my shelf, creating a custom low-fi data dashboard.

Spotify top tracks section displayed on a website

Building a Smarter Spotify Top 10 Component with Unique Artist Logic

Standard "Top Tracks" lists are often full of duplicate artists from a single album. I wrote a custom Node.js filter that curates my listening habits into a visually diverse showcase, ensuring every slot in the grid represents a unique artist.