Un juego del mundo físico dentro de la web: escondo objetos reales, los publico como drops en un mapa y quien los encuentra los reclama con su nombre. Mobile-first, sin apps ni cuentas.

01
Geocaching es una caza del tesoro real: escondo un objeto en un sitio concreto, lo publico en un mapa y quien llega hasta él lo reclama. Quería que viviera dentro de mi web, como El Lobo y El Impostor, no en una app aparte.
El mapa era la parte fácil; el punto de partida real era que el juego se jugara con el teléfono en la calle y que reclamar un drop significara algo: que apareciera tu nombre y contara para un ranking.
02
Un juego del mundo físico tiene una tentación técnica peligrosa: verificar proximidad por GPS, pedir cuentas, montar antifraude. Todo eso es una excusa perfecta para no lanzar nunca.
El reto real era la integridad con el mínimo de fricción: que no se pueda reclamar un drop desde el sofá, y que «la misma persona» cuente como una sola en el ranking sin obligar a nadie a registrarse.
03
Reutilicé el módulo de mapas que ya había construido para las analíticas (MapLibre sobre tiles sin API key) en lugar de traer una librería nueva. El mismo componente sirve para el mapa público del jugador y para el picker de coordenadas del panel de administración.
Desde el admin publico un drop con su ubicación, una foto y cuándo se activa (ya, programado o borrador). El mapa del jugador muestra cada drop con su estado (sin reclamar o «Claimed by …») y, al tocarlo, una ficha con la foto y quién lo tiene. El enlace para reclamar nunca aparece en el mapa.
04
El secreto vive en el sitio físico: dentro del objeto hay un QR con un token único. Sin estar allí no puedes reclamarlo, así que no hace falta verificar GPS. El token es secreto y nunca viaja al cliente público; el mapa enseña la ubicación aproximada, no el enlace.
Un solo ganador por drop, el primero. El claim es una única operación atómica en la base de datos (buscar-y-actualizar con «aún sin dueño» en el filtro), de modo que dos personas reclamando a la vez no puedan ganar ambas.
Sin cuentas: honor system. Pones tu nombre y ya está. Para el ranking normalizo el nombre (sin acentos ni mayúsculas) de forma que «José» y «jose» cuenten como la misma persona. Fotos en Vercel Blob y datos en la misma base que la analítica y el login.
05
Un juego jugable de principio a fin desde el teléfono: abres el mapa, ves qué drops siguen libres, vas a por uno, escaneas su código y quedas en el ranking. Nada que instalar.
El juego es contenido de la marca, no un anexo: vive en /laboratorio como los demás, con la misma estética editorial y el mismo gate de calidad (typecheck, lint, tokens, build y tests) antes de cada cambio.
0
apps que instalar y cuentas que crear: todo desde un enlace
06
La integridad de un juego así es una decisión de datos, no de interfaz: el «primero gana» se garantiza con una operación atómica y con el secreto dentro del filtro, no con validaciones en el cliente.
Reutilizar el sistema de diseño (el mismo módulo de mapas de las analíticas) recortó el trabajo a la mitad. La verificación por proximidad GPS y las cuentas quedan como una posible v2; para la v1, el secreto físico y el honor system son suficientes para que el juego funcione y sea divertido.
Del Laboratorio
No es una demo ni un vídeo: es el proyecto funcionando en esta misma web. Ábrelo y juégalo.
Ya que conoces un poco de cómo trabajo, cuéntame el tuyo: tratemos marca, producto y código como un solo sistema.
Hablemos de tu proyecto