Vibe Log
Build log & learning notes
Short snapshots of what I’ve been building, breaking, and learning as I become a vibe coder.
Recent vibes
Open Vibe Log →Day 47 — Card of First Food Launch
🍱Launched Card of First Food — a playful card generator to commemorate your first memorable food experience.
Read →Day 46 — Clause Generator Launch
📜Launched a legal clause generator for quickly creating contract terms and conditions.
Read →Day 45 — Accessibility Audit & Improvements
♿Conducted comprehensive accessibility audit and implemented WCAG 2.1 improvements across the site.
Read →Day 44 — SOW Generator Launch
📋Launched a Statement of Work generator tool for streamlined project documentation.
Read →Day 43 — Project Enhancements
🚀Enhanced project listings and improved portfolio project showcase.
Read →Day 42 — New Projects & Seasonal Sous Chef Rebrand
🍽️Added St. Patrick's Basketball and Howlett Law projects. Rebranded Local Sausage to Seasonal Sous Chef.
Read →All tags(46)▼
Jan 24, 2026NewDay 47 — Card of First Food Launch
Launched Card of First Food — a playful card generator to commemorate your first memorable food experience.
🍱
Day 47 — Card of First Food Launch
Launched Card of First Food — a playful card generator to commemorate your first memorable food experience.
Jan 23, 2026Day 46 — Clause Generator Launch
Launched a legal clause generator for quickly creating contract terms and conditions.
📜
Day 46 — Clause Generator Launch
Launched a legal clause generator for quickly creating contract terms and conditions.
Jan 22, 2026Day 45 — Accessibility Audit & Improvements
Conducted comprehensive accessibility audit and implemented WCAG 2.1 improvements across the site.
♿
Day 45 — Accessibility Audit & Improvements
Conducted comprehensive accessibility audit and implemented WCAG 2.1 improvements across the site.
Jan 21, 2026Day 44 — SOW Generator Launch
Launched a Statement of Work generator tool for streamlined project documentation.
📋
Day 44 — SOW Generator Launch
Launched a Statement of Work generator tool for streamlined project documentation.
Jan 19, 2026Day 43 — Project Enhancements
Enhanced project listings and improved portfolio project showcase.
🚀
Day 43 — Project Enhancements
Enhanced project listings and improved portfolio project showcase.
Jan 17, 2026Day 42 — New Projects & Seasonal Sous Chef Rebrand
Added St. Patrick's Basketball and Howlett Law projects. Rebranded Local Sausage to Seasonal Sous Chef.
🍽️
Day 42 — New Projects & Seasonal Sous Chef Rebrand
Added St. Patrick's Basketball and Howlett Law projects. Rebranded Local Sausage to Seasonal Sous Chef.
Jan 16, 2026Day 41 — Dual Deployment & Personal Home Redesign
Set up dual Vercel deployments (personal & portfolio) and redesigned personal home with modern cards, calendars, and family section.
🚀
Day 41 — Dual Deployment & Personal Home Redesign
Set up dual Vercel deployments (personal & portfolio) and redesigned personal home with modern cards, calendars, and family section.
Jan 15, 2026Day 40 — Local Sausage Shop Tracker
Launched a new project to discover and track local sausage shops and specialty meat vendors.
🌭
Day 40 — Local Sausage Shop Tracker
Launched a new project to discover and track local sausage shops and specialty meat vendors.
Jan 14, 2026Day 39 — UI Modernizations
Added Vandy Dance and Girl Scout Troop projects. Enhanced all pages with modern animations and gradients.
✨
Day 39 — UI Modernizations
Added Vandy Dance and Girl Scout Troop projects. Enhanced all pages with modern animations and gradients.
Jan 13, 2026Day 38 — Audio Feedback & Asset Alignment
Fixed workout timer audio for iOS + aligned all artist and venue images.
🔊
Day 38 — Audio Feedback & Asset Alignment
Fixed workout timer audio for iOS + aligned all artist and venue images.
Jan 12, 2026Day 37 — Mobile App MVP Complete
Launched my-vibe-mobile: a fully functional React + Vite mobile app with Workout Timer, Shows, UVA Basketball, and OHMS Basketball.
📱
Day 37 — Mobile App MVP Complete
Launched my-vibe-mobile: a fully functional React + Vite mobile app with Workout Timer, Shows, UVA Basketball, and OHMS Basketball.
Jan 11, 2026Day 36 — UVA Schedule: Show All Games
Removed the 10-game limit from UVA Basketball upcoming schedule.
🏀
Day 36 — UVA Schedule: Show All Games
Removed the 10-game limit from UVA Basketball upcoming schedule.
Jan 10, 2026Day 35 — Two-Column Game Results Layout
Redesigned UVA Basketball page: upcoming games on left, past results on right.
⚖️
Day 35 — Two-Column Game Results Layout
Redesigned UVA Basketball page: upcoming games on left, past results on right.
Jan 9, 2026Day 34 — Three New Tools Landed
Shipped Workout Timer, Poster Generator, and a fully automated Photo Gallery — my biggest feature jump yet.
🛠️
Day 34 — Three New Tools Landed
Shipped Workout Timer, Poster Generator, and a fully automated Photo Gallery — my biggest feature jump yet.
Jan 8, 2026Day 33 — Stability Over Cleverness
Stopped chasing dynamic complexity and made deliberate, stable product decisions.
🧱
Day 33 — Stability Over Cleverness
Stopped chasing dynamic complexity and made deliberate, stable product decisions.
Jan 7, 2026Day 32 — TypeScript Tells the Truth
Learned to stop fighting TS errors and start listening to what they’re actually saying.
📐
Day 32 — TypeScript Tells the Truth
Learned to stop fighting TS errors and start listening to what they’re actually saying.
Jan 6, 2026Day 31 — Entity Cards as a Pattern
Locked in EntityCard as a reusable mental and UI model.
🧩
Day 31 — Entity Cards as a Pattern
Locked in EntityCard as a reusable mental and UI model.
Jan 5, 2026Day 30 — When APIs Aren’t the Answer
Accepted that not every problem needs live data.
🔌
Day 30 — When APIs Aren’t the Answer
Accepted that not every problem needs live data.
Jan 4, 2026Day 29 — Understanding Data Flow
Stopped guessing where bugs lived and started tracing data end-to-end.
🧠
Day 29 — Understanding Data Flow
Stopped guessing where bugs lived and started tracing data end-to-end.
Jan 3, 2026Day 28 — Shipping Without Fear
Built confidence in deploys by keeping changes small and reversible.
🚀
Day 28 — Shipping Without Fear
Built confidence in deploys by keeping changes small and reversible.
Dec 29, 2025Day 26 — Shows Page: Real Data, Real Filters
Cleaned up the Shows experience: two tabs, real concert-only data, and venue filtering that feels intentional.
🎟️
Day 26 — Shows Page: Real Data, Real Filters
Cleaned up the Shows experience: two tabs, real concert-only data, and venue filtering that feels intentional.
Dec 28, 2025Day 25 — The Shape of Truth
Stopped guessing. Logged the raw responses. Fixed the real issue: double-transforming data.
🧾
Day 25 — The Shape of Truth
Stopped guessing. Logged the raw responses. Fixed the real issue: double-transforming data.
Dec 27, 2025Day 24 — UVA Results Pages That Feel Legit
Built real results pages for basketball + football with record summaries, two-column layout, and clean nav.
🏟️
Day 24 — UVA Results Pages That Feel Legit
Built real results pages for basketball + football with record summaries, two-column layout, and clean nav.
Dec 26, 2025Day 23 — ESPN Debugging Wins
Tracked down NaN scores, fixed finals detection, and made the results API reliable.
🧪
Day 23 — ESPN Debugging Wins
Tracked down NaN scores, fixed finals detection, and made the results API reliable.
Dec 25, 2025Day 22 — Shipping Muscle Memory
Tightened my ship flow: smaller commits, clearer checkpoints, and smoother deploys.
🚢
Day 22 — Shipping Muscle Memory
Tightened my ship flow: smaller commits, clearer checkpoints, and smoother deploys.
Dec 24, 2025Day 21 — Navigation That Feels Like a Product
Improved the UX glue: dropdown behavior, route transitions, and page structure consistency.
🧭
Day 21 — Navigation That Feels Like a Product
Improved the UX glue: dropdown behavior, route transitions, and page structure consistency.
Dec 23, 2025Day 20 — Concerts Only, No More JamBase
Cut the dead weight and refocused the Shows page around one reliable source and a clearer goal.
🎶
Day 20 — Concerts Only, No More JamBase
Cut the dead weight and refocused the Shows page around one reliable source and a clearer goal.
Dec 22, 2025Day 19 — Location Thinking
Started treating location as a first-class feature: radius, venues, and time windows that make sense.
📍
Day 19 — Location Thinking
Started treating location as a first-class feature: radius, venues, and time windows that make sense.
Dec 21, 2025Day 18 — Improve Without Breaking
Kept momentum while protecting stability: change less at once, test more, commit smarter.
🧰
Day 18 — Improve Without Breaking
Kept momentum while protecting stability: change less at once, test more, commit smarter.
Dec 20, 2025Day 17 — Small Polish, Big Feel
Tightened UI details that make the app feel intentional instead of accidental.
✨
Day 17 — Small Polish, Big Feel
Tightened UI details that make the app feel intentional instead of accidental.
Dec 19, 2025Day 16 — Scores & Weather Rhythm
Made the dashboard feel alive with refresh cycles, presets, and clickable utility.
📡
Day 16 — Scores & Weather Rhythm
Made the dashboard feel alive with refresh cycles, presets, and clickable utility.
Dec 18, 2025Day 15 — Back to Stable, Forward to Better
Got everything working again, then locked in a plan to improve without breaking stuff.
🧭
Day 15 — Back to Stable, Forward to Better
Got everything working again, then locked in a plan to improve without breaking stuff.
Dec 17, 2025Day 14 — Architecture Cleanup
Stepped back to clean up structure, components, and file organization.
🧹
Day 14 — Architecture Cleanup
Stepped back to clean up structure, components, and file organization.
Dec 16, 2025Day 13 — Refactoring with Confidence
Stopped chasing new features and started shaping what already exists.
🧱
Day 13 — Refactoring with Confidence
Stopped chasing new features and started shaping what already exists.
Dec 15, 2025Day 12 — Components Clicked
Focused on components, reuse, and structure — and everything felt easier.
🧱
Day 12 — Components Clicked
Focused on components, reuse, and structure — and everything felt easier.
Dec 14, 2025Day 11 — Wrestling With APIs
Fought the data, questioned everything, and learned more than I expected.
🥊
Day 11 — Wrestling With APIs
Fought the data, questioned everything, and learned more than I expected.
Dec 13, 2025Day 10 — API Reality Check
APIs stopped being theoretical and started being real. This is where things got messy — and clicked.
🧠
Day 10 — API Reality Check
APIs stopped being theoretical and started being real. This is where things got messy — and clicked.
Dec 12, 2025Day 9 — UX Cleanup & Clarity
Stopped chasing features and focused on clarity, spacing, and flow.
✨
Day 9 — UX Cleanup & Clarity
Stopped chasing features and focused on clarity, spacing, and flow.
Dec 11, 2025Day 8 — Real Content Over Placeholders
Turned the site from a demo into something personal and real.
✍️
Day 8 — Real Content Over Placeholders
Turned the site from a demo into something personal and real.
Dec 10, 2025Day 7 — Shipping the Homepage
Built a homepage that actually tells a story.
🚀
Day 7 — Shipping the Homepage
Built a homepage that actually tells a story.
Dec 9, 2025Day 6 — Motion with Restraint
Learned that good animation is subtle and intentional.
🎞️
Day 6 — Motion with Restraint
Learned that good animation is subtle and intentional.
Dec 8, 2025Day 5 — UI Components & Structure
Started thinking in reusable components instead of pages.
🧩
Day 5 — UI Components & Structure
Started thinking in reusable components instead of pages.
Dec 7, 2025Day 4 — Dynamic Routing Clicked
Dynamic routes finally made sense — and unlocked everything else.
🧭
Day 4 — Dynamic Routing Clicked
Dynamic routes finally made sense — and unlocked everything else.
Dec 6, 2025Day 3 — React Fundamentals
Components, props, and state started to feel natural.
⚛️
Day 3 — React Fundamentals
Components, props, and state started to feel natural.
Dec 5, 2025Day 2 — Tailwind Basics
Utility-first styling started to make sense.
🎨
Day 2 — Tailwind Basics
Utility-first styling started to make sense.
Dec 4, 2025Day 1 — Setup & Momentum
Tools set up. First commit. Momentum started.
🔧
Day 1 — Setup & Momentum
Tools set up. First commit. Momentum started.