35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
|
|
---
|
||
|
|
title: "Online Clothing Store"
|
||
|
|
date: 2025-03
|
||
|
|
status: "live"
|
||
|
|
tags: ["Next.js", "Stripe", "PostgreSQL", "e-commerce"]
|
||
|
|
repo: "https://github.com/example/tienda-ropa"
|
||
|
|
demo: "https://example.com"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Online Clothing Store
|
||
|
|
|
||
|
|
End-to-end e-commerce platform for an independent clothing brand. Catalogue, cart, checkout and an admin dashboard in a single product.
|
||
|
|
|
||
|
|
## Description
|
||
|
|
|
||
|
|
A full-stack e-commerce site built for an independent fashion brand. Customers browse a catalogue, build a cart, and pay through Stripe Checkout; the merchant manages stock, orders, and fulfilment from a custom admin dashboard.
|
||
|
|
|
||
|
|
## Tech stack
|
||
|
|
|
||
|
|
- **Framework:** Next.js (App Router)
|
||
|
|
- **Payments:** Stripe (hosted Checkout + webhooks)
|
||
|
|
- **Database:** PostgreSQL with Prisma ORM
|
||
|
|
- **Rendering:** Server-side for catalogue SEO, ISR with on-demand revalidation when stock changes
|
||
|
|
|
||
|
|
## Main features
|
||
|
|
|
||
|
|
1. Catalogue with per-product SEO-friendly routes
|
||
|
|
2. Stripe Checkout integration without PCI scope
|
||
|
|
3. Admin dashboard for stock and order management
|
||
|
|
4. Webhook-driven order confirmation and stock decrement
|
||
|
|
|
||
|
|
## Learnings
|
||
|
|
|
||
|
|
Keeping inventory in sync between the admin dashboard and Stripe without race conditions was the hardest part. Solved with serializable transactions and an optimistic lock per SKU. On the next iteration, an event-driven approach with an outbox table would be more robust under load.
|