
CaptionForge
I built CaptionForge as my first shipped AI product. Upload an image, get platform-ready captions and SEO hashtags from OpenAI in one click. Next.js 15, React 19, Tailwind 4.

—·Personal Project
I built Metaversus as a motion and performance sandbox for a fictional metaverse agency, with scroll-triggered Framer Motion sequences, page transitions, and layered effects in Next.js at 60fps.
2023

Motion experiment for a fictional agency site. Scroll-linked Framer Motion sequences, page transitions, and Tailwind layout, all while maintaining 60fps on modern browsers and disabling heavy animations on low-end devices. Directly informed portfolio animation choices: subtle motion, not circus. SSR and motion coexist with careful hydration boundaries I still apply in client work.
Motion and performance experiment using a fictional agency site as a Framer Motion sandbox.
Scroll-linked animation sequences, page transitions, responsive layout with Tailwind, and performance tuning including animation disable on low-end devices.

I built CaptionForge as my first shipped AI product. Upload an image, get platform-ready captions and SEO hashtags from OpenAI in one click. Next.js 15, React 19, Tailwind 4.

Meetups is a rendering-strategy study using Next.js SSG with ISR: MongoDB-backed data, build-time pages for SEO, regenerated when listings change.

My ongoing side build for lab report chaos. MedLens+ extracts CBC, LFT, and thyroid values from clinic PDFs into longitudinal timelines. Agents cite ranges from the uploaded report. They never diagnose.