blog-cover

TL;DR

  • RabbitHole es una wiki con IA para curiosos: escribes un tema y recibes una guía estructurada de varias páginas, explicada a partir de lo que ya sabes.
  • Cada guía termina con un quiz, flashcards, un podcast y unas cuantas madrigueras nuevas en las que meterte después.
  • Me costó unos dos años y tres nombres llegar hasta aquí: AquaMesh, luego StudyMesh y, al final, RabbitHole.
  • Puedes probar una guía de ejemplo sin crearte una cuenta.

RabbitHole empezó siendo un submarino.

No uno de verdad. Un dashboard verde oscuro lleno de botones de sónar y controles de profundidad, que hice en septiembre de 2024 por un único motivo: quería demostrar que era capaz de construir algo serio con React. No había usuarios, ni un problema que resolver, ni más plan que "que quede bonito".

Dos años después, ese mismo repositorio es un SaaS completo con guías generadas por IA, sistema de pagos, landing page, tráiler y un conejo con cascos que responde a tus preguntas. En este post te cuento cómo pasé de una cosa a la otra y qué ideas solo surgieron porque seguí construyendo.


Qué es RabbitHole

Si alguna vez has intentado aprender algo complejo en un chat, ya sabes cómo va. Haces una pregunta, te llega un muro de texto, preguntas otra cosa, te llega otro muro y, veinte minutos después, lo útil está enterrado en algún punto de la conversación. Yo llegaba a copiar las respuestas de la IA en mi app de notas solo para no perderlas.

RabbitHole recibe un prompt y te devuelve una guía en lugar de una respuesta: unas pocas páginas cortas, cada una apoyada en la anterior, con una barra lateral para moverte entre ellas y un chat de IA que solo habla de lo que hay en la página.

De lo que más orgulloso estoy es de un detalle pequeño que pasa fácilmente desapercibido. Antes de empezar, le cuentas a RabbitHole lo que ya sabes: Docker, cocina, fútbol, Java, lo que sea. A partir de ahí, cada tema nuevo se explica a través de eso.

El panel 'What you already know' con Docker, Node, Java y React añadidos
La lista de la que RabbitHole saca sus analogías.

Así, si sabes Docker y preguntas "¿Qué es Kubernetes?", la guía arranca con un Quick Start que parte de los contenedores que ya entiendes, y solo después explica qué cambia cuando por debajo hay todo un clúster de máquinas. Incluso te dice dónde cojea la analogía.

Quick Start de una guía de Kubernetes, explicado a través de Docker
Kubernetes, explicado para alguien que conoce Docker.

La Key idea se lee en 20 segundos, el Quick summary en unos 60, y solo después vienen las páginas completas. Tú decides hasta dónde bajar.

Ese es el producto hoy. El camino hasta aquí fue bastante menos ordenado.


AquaMesh: la época del submarino

La primera versión se llamaba AquaMesh, y la temática acuática llegaba hasta el último rincón. La idea era una app de organización: tenías Dashboards y, dentro de cada uno, colocabas cajas llamadas Widgets que podías mover y redimensionar. En la captura de abajo, toda la pantalla es un dashboard y cada panel que hay dentro es un widget.

AquaMesh: un dashboard con dos widgets, Control Flow y System Lens
AquaMesh: un dashboard (1 en rojo) con dos widgets, Control Flow y System Lens (1 y 2 en morado).

Al principio solo había un par de widgets predefinidos, así que era más un escaparate que una herramienta. Así que en la segunda versión añadí un Widget Editor: una página de arrastrar y soltar donde podías montar tus propios widgets con textos, campos, botones, interruptores y gráficas. Algo así como HTML y CSS, pero sin código. Hasta había un login de mentira con distintos roles, porque una app de dashboards sin roles no me parecía lo bastante real.

El Widget Editor: creas un widget una vez y lo colocas en cualquier dashboard.

Estaba contento con el resultado, así que se lo enseñé a unos amigos. Su veredicto fue educado y certero: buena idea, poco práctica. Nadie supo decirme para qué lo usaría de verdad, y yo tampoco.

Así que AquaMesh se quedó unos meses en un cajón.


StudyMesh: llega la IA

En septiembre de 2025 quise añadir el proyecto a mi CV, pero no tal y como estaba. Necesitaba una idea nueva que justificara volver a abrirlo. La candidata obvia era la IA: en lugar de construir cada widget a mano, ¿y si pudieras pedírselos?

Esa pregunta le dio al proyecto su primer usuario real, aunque solo existiera en mi cabeza: un estudiante. Un estudiante organiza sus asignaturas en carpetas (Matemáticas, Anatomía, Literatura), cada carpeta contiene dashboards y cada dashboard mezcla widgets con una imagen, un PDF, un vídeo de YouTube o unos apuntes. Encima de todo eso, dos botones nuevos: Create Study Pack, que generaba un dashboard a partir de una foto o un texto, y Create Study Path, que generaba varios en orden.

También pasé el diseño a blanco, sobre todo para que pareciera profesional. El logo seguía diciendo AquaMesh, pero en espíritu ya era StudyMesh.

Create Study Pack: a partir de un texto o una imagen, genera markdown, datos clave y quizzes.

Funcionaba, pero era rudimentario. Recibías algo de markdown, unos cuantos datos clave y un quiz, metidos con calzador en widgets pensados para algo completamente distinto.

La siguiente iteración ya estrenó nombre y logo de verdad. Los dashboards pasaron a una Library, y la pantalla se asentó en tres columnas: lo que puedes crear a la izquierda, lo que has creado en el centro y, a la derecha, un chat de IA que solo responde sobre lo del centro. El study pack se dividió en cuatro opciones más rápidas (quiz, flashcards, apuntes en limpio y "crear a partir de material"), y lo que se estaba generando pasó a aparecer como pequeñas etiquetas en una cola, abajo del todo, para que pudieras seguir trabajando mientras la IA estaba ocupada.

StudyMesh con tres paneles: menú de creación, contenido de estudio y chat de IA
StudyMesh: creas a la izquierda, lees en el centro y preguntas a la derecha. Toca las miniaturas para verlo en el móvil o generando material en modo oscuro.

Ojalá pudiera decirte que este diseño salió de un plan claro. Pues no. Iba aprendiendo mientras construía: probaba cosas, me quedaba con lo que funcionaba, borraba lo que no y comprobaba en el móvil todo el rato que nada se rompiera en una pantalla pequeña. Mucho de lo que hice en esa época ya no existe, y no pasa nada; así descubrí lo que el producto no debía ser.


De proyecto a producto

Hasta aquí, StudyMesh era una app. Lo que la convirtió en un producto fue todo el trabajo aburrido e invisible que la rodea:

  • Cuentas reales, con inicio de sesión con Google y los datos en Supabase.
  • Una landing page, que tuvo una segunda versión completa unos meses después.
  • Tres modos de IA: Hosted, en el que yo pago el modelo y tú me pagas con créditos; Local, que ejecuta un modelo en tu propio ordenador; y BYOK (bring your own key, "trae tu propia clave"), para quien ya paga una API key.
  • Pagos con Stripe y una moneda propia, los Study Credits: una guía costaba 3, todo lo demás 1, y un pack de 2 € te daba 150.
  • Podcasts, para escuchar una guía en el autobús.
  • Una mascota de IA, porque, sin una cara, el chat resultaba frío. Empezó siendo un delfín y acabó convirtiéndose en un pequeño elenco entre el que elegir: una abeja, un delfín y un loro.
Landing page de StudyMesh en un móvil Chat de IA de StudyMesh con la mascota delfín en un móvil

Ninguna de estas funciones es lo que un usuario recuerda. Todas son lo que un usuario necesita antes de confiarte su email, y no digamos su tarjeta. Si solo has hecho proyectos personales, esta es la parte que te sorprende: hacer la app me llevó meses, y convertirla en producto, otros tantos.


RabbitHole: la idea que lo cambió todo

En junio de 2026, una sola función le dio la vuelta a todo lo demás: la lista de "What you already know" del principio de este post.

Cuando las guías pudieron explicarse a partir de lo que ya sabías, dejaron de ser material de estudio. Un desarrollador que aprende Kubernetes, un cocinero con curiosidad por la fermentación, un aficionado al fútbol leyendo sobre teoría de juegos: ninguno está estudiando para un examen. Están siguiendo su curiosidad, enlace a enlace. De repente, el nombre "StudyMesh" sonaba a deberes.

Así fue como pasó a llamarse RabbitHole (en inglés, caer en un rabbit hole es perderse durante horas en un tema, saltando de uno a otro). Y el nombre colocó la última pieza que faltaba: qué pasa cuando termina una guía. Ahora la última página te pone un quiz y, después, un puñado de nuevas madrigueras: temas que parten del que acabas de terminar. Un botón más, Add to what I know, añade el tema a tu lista, para que la siguiente guía pueda usarlo como analogía.

Resultados del quiz con 'Add to what I know' y guías sugeridas para seguir
El final de una guía es el principio de la siguiente.

Ese ciclo es el producto entero en una sola imagen. Cada guía que terminas hace que la siguiente sea más fácil de entender.

El resto vino con el nombre, como suele pasar. La interfaz se rediseñó, el delfín se convirtió en un conejo con cascos y pañuelo verde, y los Study Credits pasaron a ser zanahorias.

Saldo de zanahorias, el coste de cada acción y tres packs de zanahorias
La tienda de zanahorias. Un par de guías al día son gratis; a partir de ahí, zanahorias.
Espacio de trabajo de RabbitHole con páginas, una guía de Kubernetes y el chat de IA del conejo
RabbitHole hoy: las páginas a la izquierda, la guía en el centro y el conejo a la derecha.

Bajo el capó

Para los desarrolladores que estéis leyendo: RabbitHole es una app de React + TypeScript dentro de un monorepo con Turborepo, con funciones serverless en Vercel como backend. Supabase guarda los datos y las cuentas, Stripe se encarga de las zanahorias, y las guías las escriben modelos de OpenAI, Gemini y Cerebras. Los tests van con Vitest para la lógica y Playwright para los E2E.

Todos los servicios externos que usa RabbitHole

Vercel: hosting y funciones serverless.
Supabase: base de datos y autenticación.
Google Auth: inicio de sesión con un clic.
Stripe: pagos de los packs de zanahorias.
OpenAI, Gemini y Cerebras: los modelos detrás de las guías, los quizzes, las flashcards y el chat.
Unreal Speech: las voces de los podcasts.
Tavily: búsqueda web dentro del chat de IA.

El código es público en GitHub.


Autumn/Winter seasonal image

AquaMesh nació para demostrar que sabía programar en React. RabbitHole me demostró algo más útil: que soy capaz de llevar un repositorio vacío hasta un producto con cuentas, pagos, landing page y una idea propia.

Si fue un buen producto ya es otra historia, y los números lo tienen bastante claro. Eso queda para el próximo post: RabbitHole: el post-mortem.

Mientras tanto, el conejo sigue respondiendo preguntas. Elige un tema y métete en la madriguera.