Saltar al contenido
Daniel Fragoso

Wortree

Compañero de lectura para iOS, disponible en el App Store. Compartes una captura de Kindle o fotografías una página en papel y la explicación aparece en streaming sobre el libro, a partir de una memoria de las páginas que ya leíste.

Pantallas

  • Wortree: Biblioteca
    BibliotecaCada página se archiva sola en el libro al que pertenece.
  • Wortree: Lector
    LectorLa página explicada punto por punto, cada uno con la cita de la que salió.
  • Wortree: Preguntas
    PreguntasSeleccionas un pasaje y preguntas sobre él, dentro del contexto del libro.
  • Wortree: La historia hasta ahora
    La historia hasta ahoraUn toque reconstruye el hilo de todo el libro.

Caso de estudio

Producto propio, en el App Store desde julio de 2026. Único autor, 216 commits, más de 250 pruebas del servidor.

El problema

Un libro denso se te va de las manos página por página, y buscar algo implica salir del libro, que es justo donde se pierde el hilo. La meta era una explicación que aparezca encima de la página en la que estás, recuerde lo que llevas leído y nunca te cuente lo que viene después.

Cómo funciona

Captura de páginaPantalla o cámaraShare extensionPanel sobre el libroAPI de WortreeSesión, cuota, memoriaModelo de visiónGemini u OpenRouterRespuesta en vivoLibro, texto, notaBibliotecaPor libro, sincronizadaMemoria del libroUna nota por páginaPreguntas y resumenA partir de las notas

Los recuadros punteados son servicios externos.

Decisiones clave

  • La explicación se abre sobre el libro

    La app está construida alrededor de una share extension de iOS: compartes la captura y un panel transmite la respuesta encima de Kindle, así que nunca sales de la página. La extensión es un proceso aparte y aislado, por lo que lee la sesión y los ajustes del libro desde un grupo del llavero que comparte con la app.

  • Una sola respuesta hace tres trabajos

    La misma respuesta en streaming trae una línea oculta que nombra el libro y otra que condensa la página en una nota de memoria. Las páginas se archivan solas en el libro correcto y la memoria crece sin llamadas adicionales al modelo. Una respuesta que se corta a la mitad se reporta como error y nunca se guarda como tarjeta.

  • Memoria de largo alcance, sin spoilers

    La nota de cada página se guarda por libro y las cuatro más relevantes se recuperan en el siguiente prompt, de modo que la página 90 puede retomar una idea sembrada en la página 12. El contexto sale únicamente de las páginas que el lector capturó, y una página detectada como de otro libro nunca escribe en las notas de este.

  • La primera palabra en menos de dos segundos

    Con el nivel de razonamiento por defecto del modelo, la primera palabra tardaba unos 12 s. Un benchmark local que corre el mismo archivo de prompt que usa la app mostró que el nivel más bajo arranca en cerca de 1.7 s, así que quedó como valor por defecto y la profundidad pasó a ser un ajuste por libro. Cuando el alias del modelo del proveedor avanzó a una versión que rechaza ese nivel, todas las rutas fallaron a la vez; ahora el servidor reintenta un nivel arriba ante ese error exacto y lo recuerda por modelo.

  • Los cambios al prompt parten de páginas guardadas

    Antes de rediseñar el lector se midieron 71 páginas guardadas. Todas se pudieron separar en una estructura limpia, pero 5 abrían a media palabra y 4 de 307 citas terminaban en una palabra cortada por guion. Ambos resultaron ser defectos del prompt y se corrigieron ahí, y ahora el lector presenta cada tarjeta como puntos separados con la cita de la que salieron.

Resultados

38 días
del primer commit a estar en el App Store, con inicio de sesión, sincronización y suscripciones funcionandoMedido
1.7 s
hasta la primera palabra de una explicación con la profundidad por defecto, contra unos 12 s con el nivel de razonamiento por defecto del modeloMedido
0.8 s
para empezar el resumen de la historia hasta ahora sobre 30 notas de página, con la misma calidad que el ajuste que tardaba 7.8 sMedido
71 de 71
páginas guardadas separadas en una estructura limpia punto por punto antes de publicar el lector estructuradoMedido

Arquitectura

App en Expo y React Native con una share extension nativa que se abre sobre la app de lectura, además de un escaneo con cámara para libros en papel que usa el mismo pipeline. Una API en Hono sobre Vercel transmite la explicación con server-sent events desde Gemini o un modelo de OpenRouter, y la misma respuesta trae líneas ocultas que nombran el libro y condensan la página en una nota de memoria, de modo que cada página se archiva sola en su libro. Las notas se guardan en Mem0 y las más relevantes se recuperan en los prompts siguientes. PostgreSQL guarda la biblioteca sincronizada, las cuotas diarias y los derechos de suscripción, con inicio de sesión mediante Better Auth (Apple, Google o invitado) y RevenueCat para el plan Pro. Un módulo pequeño en Swift dibuja cada tarjeta en una vista de texto seleccionable para que funcione el menú de iOS de Consultar y Traducir.

Aspectos clave

  • En el App Store desde julio de 2026
  • Explicación sobre el libro, sin cambiar de app
  • Memoria por libro hecha solo con páginas ya leídas
  • Preguntas sobre un pasaje y la historia hasta ahora
  • En inglés y español, con plan gratuito y suscripción
  • Único autor, 216 commits