
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
Birthday Reminder was my first Redux Toolkit app, tracking dates with localStorage persistence and an upcoming-soon view as a gateway before fellowship builds.
2023

Introduction to Redux Toolkit through a practical problem I actually had. Add and manage birthdays, see who's celebrating soon, data persists to localStorage between sessions. Learned RTK slices, reducers, and state persistence without a backend dependency. Timezone edge cases in date math showed up here and stayed relevant in later billing and scheduling work.
First Redux Toolkit app for persistence, date logic, and Tailwind responsive layout practice.
CRUD for birthdays, upcoming-soon view with timezone-aware date math, localStorage sync for persistence across browser sessions, and responsive Tailwind UI.

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.

I built Customer Connect CRM to learn org-chart software, not another todo app. Three roles (admin, manager, sales rep) get JWT-gated dashboards with pipelines and reports matched to how each persona works.

During my Bytewise fellowship I built a clean Quran audio player with multiple reciters, Redux Toolkit async state, and TypeScript, focused on listening rather than feature bloat.