Projects.

Selected work across e-commerce, AI, and fintech. Client builds, a hackathon winner, and products I designed and shipped end to end.

Slō Muse

Slō Muse

Live client site

E-Commerce

A custom e-commerce platform for a luxury loungewear brand — not a Shopify theme. Payments run through Paystack with server-side verification and HMAC-SHA512 signed webhooks, so an order is only confirmed once the payment provider says so. Delivery costs are quoted live from the Fez Delivery API for both local and international shipping. The store owner gets real-time Web Push notifications the moment an order is placed or paid, and runs the business from an admin dashboard covering products with image uploads, order status tracking, and a promotions engine with percentage or fixed discounts, collection-scoped codes, expiry dates, and usage caps.

Next.js 15TypeScriptPrismaPostgreSQL

Syntheos

Hackathon winner

AI / Social

Won the TPIA award at the Brainrot jia.seed hackathon, built with a team of three. Paste a draft social post and Syntheos returns an honest score, the specific lines that are weak, and three finished rewrites tuned to the platform you’re posting on. After the hackathon I rebuilt it properly: Gemini now returns schema-validated JSON instead of markdown, so a malformed response degrades into a sparse result instead of a crash; the draft is passed as user content, so a post containing “ignore your instructions” is treated as data; history moved from a single Firestore document to a paginated collection with a one-time migration; and auth runs on a proper loading / signed-in / signed-out state machine. Users can also track score trends per platform.

ReactViteGeminiFirebase

SpendLens

Live demo

FinTech

Snap a receipt or invoice and SpendLens extracts the merchant, date, line items, tax, currency, and payment method using Gemini vision, then categorizes the expense automatically. It first classifies the image and rejects anything that isn’t a receipt or invoice, and rates its confidence on every read so faded or damaged receipts don’t pass silently as clean data. Supports batch scanning of several receipts at once, editing and filtering expenses, CSV export, and an analytics dashboard with category breakdowns, top merchants, and spending trends.

Next.jsGemini VisionPrismaPostgreSQL

AskDocs

Live demo

AI / RAG

Upload PDFs, Word documents, or text files and ask questions in plain language. Answers stream back with numbered citations pointing to the exact passages they came from, so every claim can be checked. Documents are chunked with overlap, embedded with Gemini, and stored in Pinecone; retrieval is scoped to each user’s own documents and drops low-relevance matches so the model isn’t fed noise. For legal, financial, or compliance questions it also searches the web for current regulations in the user’s location, and keeps what the document says separate from what current law says.

Next.jsGeminiPineconePostgreSQL