Para quien quiere vender productos digitales online.
FiveM Store
Marketplace premium para la comunidad de FiveM: compra y descarga scripts, assets y recursos para servidores.
El Problema
La comunidad de FiveM carece de una plataforma centralizada y de confianza donde adquirir recursos premium para servidores. Los creadores de contenido no tienen un canal profesional para monetizar su trabajo y los administradores de servidores deben buscar en foros dispersos con riesgo de descargar contenido malicioso o desactualizado.
- Ausencia de un marketplace confiable y seguro específico para FiveM.
- Sin protección para el contenido digital: los archivos podían redistribuirse libremente.
- Falta de soporte en tiempo real para resolver dudas de compra o instalación.
- Gestión manual de inventario y pedidos sin panel de administración centralizado.
La Solución
Diseñé y desarrollé una plataforma e-commerce completa orientada a la comunidad de FiveM, combinando pagos seguros, descarga protegida de contenido digital y soporte en tiempo real mediante WebSockets.
- 01
E-commerce Completo
Carrito de compras, sistema de descuentos y pasarela de pago segura integrada con Stripe Checkout.
- 02
Descargas Seguras
Sistema de tokens temporales de un solo uso para proteger el contenido digital y evitar redistribuciones no autorizadas.
- 03
Panel de Administración
Gestión completa de productos, categorías, pedidos y soporte al cliente desde un único dashboard.
- 04
Soporte Real-time
Chat de tickets integrado con notificaciones instantáneas vía Socket.io para una atención al cliente fluida.
- 05
Multi-idioma
Soporte completo para Español e Inglés mediante next-intl con detección automática de idioma.
- 06
Diseño Premium
Interfaz responsive con modo oscuro, animaciones fluidas y una experiencia de usuario de alto nivel.
Stack Tecnológico
Construido con 10 tecnologías modernas, elegidas para que sea rápido, seguro y fácil de mantener.
Ver todo el detalle técnico
Framework
Frontend
Language
Database
ORM
Payments
Realtime
Styling
i18n
Retos Técnicos
Sistema de Descarga Segura
Proteger el contenido digital requirió implementar tokens de descarga de un solo uso con expiración temporal. Cada token se genera tras confirmar el pago, se almacena en base de datos y se invalida automáticamente tras su primer uso, impidiendo la redistribución no autorizada.
// Generate a one-time signed download token
export async function generateDownloadToken(orderId: string, productId: string) {
const token = crypto.randomUUID();
const expiresAt = new Date(Date.now() + 15 * 60 * 1000); // 15 min
await db.downloadToken.create({
data: { token, orderId, productId, expiresAt, used: false },
});
return token;
}
// Validate and consume the token (one-time use)
export async function consumeDownloadToken(token: string) {
const record = await db.downloadToken.findUnique({ where: { token } });
if (!record || record.used || record.expiresAt < new Date()) {
throw new Error('Invalid or expired download token');
}
await db.downloadToken.update({ where: { token }, data: { used: true } });
return record;
}WebSockets en Entorno Serverless
Mantener conexiones Socket.io persistentes en un entorno serverless como Vercel fue el mayor reto. La solución pasó por migrar a Pusher como proveedor de WebSockets gestionado, permitiendo notificaciones en tiempo real sin necesidad de un servidor dedicado.
¿Tienes un problema parecido?
Cuéntame cómo lo resuelves hoy y te digo qué se puede automatizar o mejorar.
Cuéntame qué te frena
