Agates From Mexico
Custom e-commerce platform for Agates From Mexico, with storefront, admin panel and role-based access control.
Contexto
Agates From Mexico es una tienda en línea construida a medida sobre Next.js. El proyecto cubre toda la experiencia: storefront público, flujo de compra y un panel administrativo con control de acceso por roles.
Arquitectura
El App Router se organiza en route groups —(landing), (shop), (auth)— más las secciones admin y api. El código sigue una separación estricta:
services/— única capa de consultas a base de datos, por dominio (producto, carrito, orden, descuentos, envíos, roles, permisos), con consultas tipadas.integrations/— wrappers por proveedor (Stripe, PayPal, Cloudinary, ShipStation, PostHog, Redis, SMTP, reCAPTCHA).lib/— autenticación, pool de base de datos, server actions, validadores y carrito.migrations/— migraciones SQL connode-pg-migrate.
La autorización es un modelo RBAC: catálogo de permisos en código, membresía de roles en base de datos y enforcement vía requirePermission() en páginas y server actions.
Stack
- Next.js + TypeScript + Tailwind CSS.
- PostgreSQL con consultas tipadas.
- Pagos: Stripe y PayPal. Envíos: ShipStation.
- Media: Cloudinary y Backblaze B2. Caché: Redis.
- Email transaccional: Resend + React Email. Analítica: PostHog.
- Listas administrativas con
@pibytelabs/listkit.
Retos técnicos
- Orquestar múltiples proveedores externos (pagos duales, envíos, almacenamiento, mensajería) detrás de una capa de integraciones limpia.
- Implementar un RBAC editable por administradores manteniendo invariantes de seguridad en cada server action.
Resultado
Un e-commerce completo y extensible —catálogo, pagos, envíos automatizados y administración tipada— en producción en agatesfrommexico.com.