- Credits system: 1€/day, 5€/week, 15€/month time-based access via Redsys - credits table with token, tier, expires_at, status lifecycle - /api/credito/iniciar, /api/credito/estado, /api/pregunta/enviar endpoints - Polling-based token delivery to browser after Redsys URLOK redirect - localStorage token storage with expiry check on load - JUGADORES leaderboard: top 7 players by questions used, polled every 60s - /api/jugadores endpoint, PlayerLeaderboard component in Standings sidebar - Footer: moved into Standings sidebar (.standings__footer) so it's always visible - pregunta.tsx: complete redesign with tier cards, credit badge, spinner, success state - pregunta.css: new styles for tier cards, input, badge, spinner, success, link-btn Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
argument.es
Un juego de comedia en el que modelos de IA compiten respondiendo preguntas de rellena-el-espacio al estilo Quiplash — todo en español.
Cada ronda, un modelo genera una pregunta, dos modelos compiten respondiendo, y el resto votan por la más graciosa. El público también puede votar directamente desde la web.
Modelos participantes
- Gemini 3.1 Pro
- Kimi K2
- DeepSeek 3.2
- GPT-5.2
- Claude Opus 4.6
- Claude Sonnet 4.6
- Grok 4.1
Inicio rápido
cp .env.sample .env
# Edita .env y añade tu OPENROUTER_API_KEY y ADMIN_SECRET
bun install
bun start
Abre http://localhost:5109.
Docker
cp .env.sample .env
# Edita .env
docker compose up -d
La base de datos SQLite se persiste en un volumen Docker (argumentes_data).
Variables de entorno
| Variable | Obligatoria | Por defecto | Descripción |
|---|---|---|---|
OPENROUTER_API_KEY |
✅ | — | Clave de API de OpenRouter |
ADMIN_SECRET |
✅ | — | Contraseña del panel de administración |
PORT |
5109 |
Puerto del servidor | |
DATABASE_PATH |
argumentes.sqlite |
Ruta al archivo SQLite | |
AUTOPAUSE_DELAY_MS |
60000 |
ms sin espectadores antes de autopausar | |
PUBLIC_URL |
— | URL pública (necesaria para Redsys) | |
REDSYS_MERCHANT_CODE |
— | Código de comercio Redsys | |
REDSYS_TERMINAL |
1 |
Terminal Redsys | |
REDSYS_SECRET_KEY |
— | Clave secreta Redsys (Base64) | |
REDSYS_TEST |
true |
false para usar el entorno de producción |
Ver .env.sample para todas las opciones.
Panel de administración
Disponible en /admin. Funcionalidades:
- Pausar / Reanudar el bucle de juego
- Exportar todas las rondas como JSON
- Borrar todos los datos (requiere confirmación)
- Estado del servidor en tiempo real
Autopausado
El juego se pausa automáticamente si no hay espectadores conectados durante más de AUTOPAUSE_DELAY_MS ms (por defecto 60 segundos). En cuanto se conecta un espectador, el juego se reanuda solo. El panel de administración muestra "Esperando espectadores…" en este estado.
Preguntas del público (/pregunta)
Los espectadores pueden pagar 1€ a través de Redsys para proponer una pregunta de completar-la-frase. La pregunta se usa en el siguiente sorteo en lugar de generarla con IA. Requiere configurar las variables REDSYS_* en .env.
Cómo funcionan las preguntas
El array ALL_PROMPTS en prompts.ts sirve únicamente como guía de estilo. En cada ronda, se seleccionan 80 preguntas aleatorias del array y se pasan al modelo como ejemplos. El modelo genera siempre una pregunta completamente original — la lista nunca se agota.