Caso de producto · SaaS en producción · 2026

Toda la tienda de cartas,en un solo tablero.

Diseñé y construí Snap Stock: la plataforma con la que una tienda de Pokémon TCG entra mercadería, sabe qué tiene, vende, cobra, reparte entre socios y corre el torneo del sábado.

62.000 fichas24 pantallas185 endpoints
Deslizá para escanearla

Anatomía de un escaneo.

Una carta entra a la tienda. Esto es lo que Snap Stock lee de ella.

  1. 01La etiquetaUn código por unidad, no por carta. El QR abre el precio de hoy, nunca uno viejo impreso.
  2. 02La cartaLee el texto, compara la huella y busca por parecido entre miles de vectores antes de preguntarte.
  3. 03La varianteIdioma y acabado son fichas distintas: holo, reverse o primera edición tienen su propio precio.
  4. 04El precioDe noche llega el mercado, se pasa al blue y se redondea. El precio final lo decide el dueño.
  5. 05El stockUna sola fila alimenta el catálogo, la vitrina, el QR, el Modo Venta y Snappy.
01 / 05

El problema

Las tiendas venden por WhatsApp, en ferias y en la mesa del torneo. El stock vive en una planilla.

En Argentina el precio se calcula a mano contra el dólar blue, y una misma carta puede tener decenas de variantes. Cada venta mal registrada es plata que se pierde entre socios.

Dueño de tienda

Saber qué tiene y a cuánto venderlo

El stock valuado en dólares y pesos, quién le debe y cómo va el mes, sin abrir cinco planillas.

Staff en ferias

Vender rápido, con el cliente enfrente

Desde un iPad o el celular, sin teclado, sin perder la venta mientras busca la carta.

Jugador y comprador

Ver el catálogo y la liga sin preguntar

Qué hay disponible, a qué precio y en qué puesto está en la liga del local.

Una sola fila de inventario. Lo que ves en el stock es lo que ven el catálogo, la etiqueta, el mostrador y el bot. Una sola verdad, seis maneras de mirarla.

185

endpoints en el backend

24

pantallas en el tablero

~50

herramientas de Snappy

25

procesos automáticos por día

62.000

fichas de cartas curadas

14

páginas públicas por tienda

69k

líneas de Python en el backend

3

repositorios en producción

Contado sobre el código el 28/10/2026. Las fichas salen de la documentación del proyecto.

Cómo lo hice

De diseñador de pantallas a builder de producto.

Diseño, especificación y desarrollo en un mismo loop, con IA como parte del equipo.

01

Discovery en el terreno

Trabajé desde adentro de una tienda y una mesa de torneo. Mapeé el ciclo real: comprar, ingresar, preciar, vender, cobrar y repartir.

02

Reglas antes que pantallas

Nueve reglas de producto. Una sola fuente de verdad por carta. El precio lo decide el dueño. Toda acción con plata pide confirmación.

03

Specs para un agente

Cada módulo arrancó como especificación funcional: estados, errores, casos borde y criterios de aceptación, lista para Claude Code.

04

Prototipo en código

Las pantallas se probaron en producción con la tienda real. El iPad de feria y el celular marcaron los cortes responsive.

05

Medir y ajustar

Auditoría de precios carta por carta, chequeo diario por WhatsApp y un resumen semanal automático para el dueño.

El producto hoy

24 pantallas, seis trabajos del local.

Entrar mercadería

Nuevos ingresos, compras, escáner, insumos y etiquetas.

Tener el stock

Stock, Pokédex con más de 60.000 fichas, ficha por unidad y diseño del catálogo.

Vender

Modo Venta, ventas del mes, trades y clientes.

Cobrar

Deudas con cobro parcial, órdenes, claims y agenda de claims.

Saber cómo va

Tablero, gastos e ingresos, finanzas del mes y reparto entre socios.

Correr el torneo

Torneos, ligas, mazos y la pantalla del local.

01 · Saber cómo va

El tablero

Todo el negocio en una pantalla, en las tres monedas que usa la tienda.

  • Stock valuado en dólares, pesos y blue
  • Deudas activas y lo que falta cobrar o entregar
  • Atajos a vender, órdenes, compras e historial
Tablero de Snap Stock con el stock valuado y las deudas activas
02 · Entrar mercadería

Nuevos ingresos

Cargar una carta con idioma, set, número, condición y grado. El precio de mercado aparece solo.

  • Precio en dólares, oficial y blue al elegir la carta
  • Importación por CSV o Excel
  • Variantes como fichas distintas, con su propio precio
Formulario de nuevos ingresos
03 · Tener el stock

Stock de cartas

Una sola fila de inventario alimenta el catálogo, la vitrina, el punto de venta y el agente.

  • Total, disponibles y reservadas de un vistazo
  • Filtros por set, idioma, condición y señal de mercado
  • Cada carta sabe si está en el catálogo público
Listado de stock de cartas
Modo Escáner
Modo EscánerAnillo lector en el dedo y una etiqueta QR por unidad: ingresa, compra, vende o reserva sin soltar la carta.
Órdenes y claims
Órdenes y claimsApartar, cobrar y entregar en un mismo flujo. Las cartas quedan reservadas hasta la entrega.
Gastos e ingresos
Gastos e ingresosCada gasto con rubro, medio de pago y quién lo pagó. El reparto entre socios sale solo.
Escaneo de una carta con el celular
Escáner por fotoTexto, huella visual y parecido por vectores para identificar la carta.
Insumos
InsumosCarpetas, sleeves y playmats con costo, precio y margen, desde el mismo punto de venta.

El precio

El precio se arma solo, pero lo decide el dueño.

01

De noche

PriceCharting, PokeTrace, eBay y sellados dejan su precio del día, cada uno en su horario.

02

Al blue

El dólar del día convierte, y el sugerido se redondea a múltiplos de 500.

03

Solo sube

El ajuste diario nunca baja un precio ni pisa uno puesto a mano.

04

Te avisa

Si algo quedó desfasado, el resumen lo dice. Cambiarlo es decisión tuya.

Ancla por carta

Cada ficha queda atada a su página de origen, con auditoría carta por carta que corrige desvíos y rechaza identidades que no coinciden.

Variantes separadas

Idioma y acabado son fichas distintas con precios distintos. La Pokédex muestra el valor sin graduar y en PSA.

Memoria de mercado

Histórico diario, variación a 7, 30, 60 y 90 días, señales por carta y oportunidades según lo que hay en stock.

Snappy

El negocio entero, por WhatsApp.

Preguntale

Stock y catálogo, precio de mercado y variación, carta por código con foto real, ventas del día y de la semana, deudas, finanzas del mes, cartas estancadas y oportunidades.

Pedile

Registrar una venta o un combo con descuento prorrateado, reservar, cobrar una parte de una deuda, cargar compras y gastos, editar precios, crear un claim o mover capital de socios.

Dejá que avise

Cierre del día a la hora que elijas y un resumen los domingos con lo que entró, lo que salió, lo estancado y los precios desfasados. Un aviso por día como máximo, nunca de madrugada.

Snappyen línea
Vendí la Charizard ex a $45.000, cobré la mitad.
Encontré 2 unidades. ¿Cuál?
1 · SS-7KQ4M · NM · inglés
2 · SS-H2XWP · LP · japonés
La 1
Venta de $45.000, cobrado $22.500. Queda una deuda de $22.500. ¿Confirmo?
Sí
Listo. Venta registrada y deuda abierta. Podés deshacerlo durante 15 minutos.
Pregunta antes de tocar la plataToda operación se confirma en dos pasos.
Se puede deshacerVentana de 15 minutos, con asiento inverso.
Si hay dos iguales, preguntaLista numerada y espera tu respuesta.
Cada uno ve lo suyoDueño, administrador y empleado, con permisos distintos.

Conversación de ejemplo. Los códigos son ilustrativos.

Afuera de la tienda

Lo que ve el cliente, sin crearse una cuenta.

Catálogo

Solo lo disponible con precio, actualizado en vivo. El carrito de reserva llega como solicitud: la tienda acepta o rechaza.

Vitrina

Una tablet en el local pasa cartas en loop. Si alguien la toca, se vuelve catálogo; si nadie la toca, vuelve al loop.

Ficha por unidad

El QR de la etiqueta abre esa unidad exacta: fotos reales, estado y el precio de hoy. Nunca datos internos.

Torneos y liga

Pairings, posiciones, mazos, tabla de la temporada y perfil del jugador.

Exportaciones por canal

Archivos listos para subir a cada marketplace, generados en segundo plano.

Feed por tienda

Una dirección fija que se actualiza sola, para quien quiera leer el stock.

Mercado Libre

Por la API oficial: vincular la cuenta, publicar y sincronizar sin tocar la publicación a mano.

TCG Fans

Canal propio con su comisión y su seguimiento de envío, y el neto real del mes.

Cuando una carta se vende por un canal, se descuenta del mismo stock que mira el mostrador. No hay dos inventarios que mantener.

Torneos

El sábado entero, de la inscripción al premio.

Antes

Inscripción y check-in

Inscripción online o en el mostrador, cupo y lista de espera, cobro con comprobante y check-in por QR.

Durante

Suizo con el estándar oficial

Reloj de servidor, el jugador carga su resultado y el rival lo confirma. Se puede volver a la ronda anterior.

Después

Top cut, premios y liga

Premios en créditos o en sobres, sorteo con semilla pública, puntos de liga y resumen para compartir.

Lo oficial entra

Compatible con TOM

Importa el archivo de TOM, incluso a mitad de torneo y sin duplicar nada, y exporta en ese formato.

Mazos y meta

Listas validadas

Validador contra la banlist vigente, arquetipos y el reparto del meta del torneo.

Liga

Temporadas con historial

Puntaje por categoría, recálculo nocturno, cierre con insignias y torneo final por invitación.

Módulo de torneos y liga

El premio en créditos se descuenta del mismo stock del mostrador.

Iteración

Cinco meses sobre el mismo producto.

La v1 era una herramienta de stock genérica pensada para escritorio. La v2 se reorganizó alrededor de los trabajos de la tienda, con identidad propia y cortes para el iPad de feria y el celular del mostrador.

v1mayo 2026
Primera versión del stock
v2noviembre 2026
Versión actual del stock
Decisión

El precio lo decide el dueño

Una fórmula que pisaba precios generó desconfianza. El sugerido ahora solo sube y la venta la fija la tienda.

Decisión

Vender sin soltar la carta

La foto del celular sola identificaba mal las variantes. Sumé etiqueta QR por unidad y lector de anillo.

Decisión

Operar sin abrir el tablero

Snappy suma desambiguación, deshacer en 15 minutos, cierre del día y resumen del domingo.

Software y hardware

Cuando la pantalla no alcanza, diseño el objeto.

Indicador de mesa

La ronda, sin pasar por el mostrador

Va entre los dos jugadores: número de mesa, nombres y cronómetro. Suena al inicio y al final, y reporta el ganador con un botón por jugador.

Prototipo
Contador de daño

56 × 48 × 16,5 mm

Módulo redondo con pantalla TFT de 1,28", microcontrolador XIAO nRF52840 y encoder giratorio, para las ligas del local.

Prototipo
Scanner Station

Identificar, preciar y cargar

Bandeja con marco a medida, cámara cenital y luz con polarización cruzada contra el brillo de las cartas foil, en modo kiosco.

En desarrollo

Planes

Lo mismo para todos, salvo seis llaves.

FunciónMostradorTienda
Stock, ventas, compras, claims y deudasSíSí
Escáner y WhatsAppSíSí
Exportaciones por canalSíSí
Importar torneos de TOMSíSí
Correr torneos en vivo y mazosNoSí
Memoria de mercado y oportunidadesNoSí
Finanzas entre socios y cobros parcialesNoSí
Feed propio y Mercado LibreNoSí

Las llaves se cambian por tienda desde la base, sin tocar el código ni volver a publicar.

Con qué lo hice

Discovery

EntrevistasJobs to be DoneAnálisis competitivo

Diseño y prototipo

FigmaFigma MCPPrototipo React

Especificación

ClaudeSpecs funcionales en Markdown

Construcción

Claude CodeReactViteTailwindPython / FlaskSupabaseCloudflare R2RailwayVercel

IA

Claude APICLIP ONNXGoogle Vision

Hardware

CAD paramétricoImpresión 3DElectrónica de bajo costo

Jonathan E. A. Martínez · Kardia

Diseño productos y los construyo.

Senior Product Designer con experiencia en fintech y salud digital: medios de pago, préstamos y onboarding en Banco Hipotecario, y la Historia Clínica Electrónica de Emergencias. Hoy también construyo con IA, del research al producto en producción. La Plata, Argentina · híbrido o remoto.

© 2026 Jonathan E. A. Martínez · KardiaSnap Stock es un producto propio. Datos de clientes ocultos en las capturas. Pokémon es marca de sus dueños; la carta del inicio es una ilustración original.
Siguiente casoIndicador de mesa→ ← Portfolio