PERRICES is a marketplace to buy and sell used music gear (pedals, guitars, amplifiers, basses, synthesizers), with a Portuguese-language interface, published at perrices.nelsonbrilhante.com.
The product is a monorepo of three containerized services. The frontend is a React 19 SPA with TypeScript and Vite, served by nginx, which proxies /api and /uploads. The API is an Express service using Prisma over PostgreSQL, with JWT and bcrypt authentication. Listings distinguish selling from wanted ads, and carry category, status (available, reserved, sold) and up to five images each, processed server-side with Sharp into WebP. Location uses district and coordinates picked on a Leaflet map.
Negotiation happens through proposals between buyer and seller, with pending, accepted and rejected states, and through comments on listings. Email notifications are sent via Resend as branded HTML.
React 19 SPA ──/api──┐
(nginx, Leaflet) │
│ ▼
/uploads ──► Express + Prisma
│ │
▼ ▼
Sharp/WebP PostgreSQL
A personal product, from concept to deploy, on Docker and Coolify.