Chic Couture
A catalog + inquiry platform for a jewelry reseller. Modeled the seller's actual workflow — browse, ask, follow up — into structured data, then built the interface around it.
- TypeScript
- Next.js
- Supabase
- Cloudinary
- Resend
- Tailwind CSS
Problem
A local jewelry reseller needed a professional way to showcase their products online without the complexity of a full e-commerce system. They wanted customers to browse products by category and easily inquire about items, while retaining manual control over sales and inventory.
Approach
I built a catalog-style website focused on product discovery rather than checkout. Products are organized into categories such as bracelets, watches, necklaces, and rings, with client-side filtering for ease of browsing. Instead of a shopping cart, customers can send inquiries directly to the business via email using Resend. On the backend, I implemented an admin dashboard where the business owner can upload products with images, update availability statuses, and track inquiry statuses.

Technical Decisions
Supabase for Auth & Database
Chose Supabase to quickly bootstrap authentication for the admin panel and store product data. Its row-level security (RLS) policies ensured that only the admin could modify product details while public users could strictly only read data.
create policy "Public profiles are viewable by everyone."
on products for select
using ( true );
create policy "Admins can insert products."
on products for insert
with check ( auth.role() = 'authenticated' );Cloudinary for Image Optimization
Jewelry requires high-quality images, but loading heavy assets hurts performance. I integrated Cloudinary to automatically resize and serve images in next-gen formats (WebP) based on the user's viewport, significantly improving LCP scores.
Tradeoffs
Inquiry System vs. Full Checkout
Opted for an inquiry-based model instead of a payment gateway. This reduces friction for the non-technical owner but adds a manual step to close sales.
Client-Side Filtering
Fetched all products at build/runtime and filtered client-side. Good for small inventories (<100 items) and feels instant, but won't scale if inventory grows to thousands.
What I learned
- 01
Implementing secure file uploads with signed URLs.
- 02
Designing intuitive admin interfaces for non-technical clients.
- 03
Handling email transactional flows with Resend.