04 / blog

Writing
in public.

Notes on what I'm building, learning, and figuring out.

ยท2 min read

Day 17 โ€” From Dinky Generator to Interactive Playground

On Friday I was at a total loss for project ideas, so I made a basic haiku generator. Over the weekend I almost scrapped it. On Monday I decided to build on top of it instead.

#day-17#ai#claude#react#dnd-kit
ยท4 min read

Day 15 โ€” MagicLink: Demo Access Without Giving Away Your API Keys

Several of my portfolio projects need API keys to run. I didn't want to put my keys in the code and I didn't want to ask recruiters to bring their own. So I built a token system that gives them up to 5 free uses per project.

#day-15#cloudflare#hono#chrome-extension#ai
ยท3 min read

Day 14 โ€” Cleanup Day

The grid is filling up. Which is exciting. But I clicked through several of my own projects today and realized an outsider couldn't tell what half of them did from the title alone.

#day-14#meta#portfolio#housekeeping
ยท3 min read

Day 13 โ€” Building the Tool I Needed to Build the Tools

I needed a way to brainstorm ideas for the remaining 37 projects in my 50-day challenge. So I built one: a spatial concept map powered by Claude that lets you drill from a vague topic all the way down to a specific, actionable idea.

#day-13#ai#claude#react#visualization
ยท4 min read

Day 12 โ€” Can You Remember Where You've Been?

I built a web game that turns your iPhone camera roll into a geography quiz. The biggest challenge wasn't the quiz itself, it was convincing browsers to read GPS data from photos.

#day-12#ai#gemini#geolocation#react
ยท2 min read

Day 11 โ€” Searching a Video with Plain English

Upload a video once, then run as many plain-English queries as you want to find specific moments. Built on the Gemini Files API.

#day-11#ai#gemini#video
ยท1 min read

Day 09 โ€” Building a Typing Speed Test

A no-backend typing test with live WPM, accuracy, and error tracking. A good exercise in state management without reaching for AI.

#day-09#react#typescript
ยท2 min read

Day 08 โ€” Turning a Wall of Text into a Schedule

A three-phase app that takes your free-form brain dump and hands back an organized task list with dates, durations, and priority buckets. The interesting part was the prompt design.

#day-08#ai#claude#productivity
ยท2 min read

Day 07 โ€” Building a Memory Layer for AI Agents

A Chrome extension that captures page context and shares it with AI agents via REST or MCP. The interesting part wasn't the extension itself, it was building an MCP server into the same Cloudflare Worker.

#day-07#ai#mcp#cloudflare#chrome-extension
ยท4 min read

Day 02 โ€” Portfolio Skins, or: Teaching an AI to Have Taste

Building a theme switcher with AI-generated styles taught me something unexpected: Claude can write perfect code for a visual effect it has never actually seen.

#day-02#ai#design#cloudflare#css
ยท1 min read

Hello, World โ€” Starting the 50 Projects Challenge

Why I decided to build one small project every weekday for 50 days, what I hope to learn, and how I'm going to track it all on this site.

#meta#challenge#next.js