FacileThings

La nueva FacileThings: Repensar la herramienta desde sus cimientos

AUTOR: Francisco Sáez
tags Detrás de FacileThings
La nueva FacileThings: Repensar la herramienta desde sus cimientos

Hace algo más de un año tomamos una decisión que no fue fácil: en lugar de seguir añadiendo capas sobre la aplicación que habéis usado durante años, íbamos a construir una completamente nueva, desde cero. Aprovechando un pequeño descanso estival, quiero contaros por qué, hacia dónde vamos, y qué tecnología hay detrás de esa decisión.

La motivación nació principalmente de escucharos. Lanzamos una encuesta para entender mejor qué es lo que realmente valoráis de FacileThings, y la respuesta general fue bastante clara: la fidelidad al método GTD, la sensación de que esta es una herramienta pensada específicamente para implementarlo bien, sin tener que construir vuestro propio sistema desde cero encima de una app genérica. Pero también nos dijisteis, con la misma claridad, dónde estaban los puntos de fricción: una aplicación móvil incómoda, una interfaz web algo anticuada y sobrecargada, procesos que necesitaban demasiados clics para hacer algo sencillo.

Llegamos a la conclusión de que debíamos mantener la estructura GTD intacta, pero rehacer una buena parte del interfaz.

Paralelamente se fueron dando también una serie de circunstancias concretas que también empujaban a hacer cambios importantes. El proveedor sobre el que se apoyaba nuestra aplicación móvil dejó de operar, dejándonos sin margen para seguir evolucionando. La estructura tecnológica sobre la que habíamos construido durante años se había quedado anticuada y cada vez costaba más mantenerla, adaptarla y hacerla crecer. Y los costes de infraestructura habían subido hasta un punto en que seguir parcheando el sistema antiguo dejaba de tener sentido, ni técnica ni económicamente.

Reconstruir la aplicación desde cero, con una arquitectura pensada tanto para mejorar ostensiblemente la experiencia de usuario como para facilitar la innovación, parecía la salida más razonable. Girar hacia una arquitectura local-first es la decisión técnica más importante que hemos tomado en los 15 años de historia de FacileThings.

¿Qué es eso de “local-first”?

La mayoría de aplicaciones en la nube funcionan pidiendo permiso e información a un servidor, que se encuentra en cualquier lugar del mundo, para cada cosa que hace el usuario. Guardas una tarea, la operación se envía al servidor, esperas la respuesta, y ves el resultado. Cada intercambio de datos genera un pequeño tiempo de espera que se traduce en indicadores de carga por todas partes: iconos animados girando hasta que la respuesta llega, esqueletos de carga simulando información hasta que llegan los datos reales, etc.

En una aplicación local-first se guarda una copia completa de tus datos localmente en tu propio dispositivo, de modo que todas las operaciones (crear una acción, completar un proyecto, aclarar un elemento de la bandeja de entrada) tienen lugar en esa copia local. El resultado es una interacción prácticamente instantánea, indistinguible de una aplicación nativa, y la posibilidad de seguir trabajando aunque se corte la conexión a internet, algo que en la versión clásica de FacileThings simplemente no era posible.

La pieza que permite el funcionamiento local-first es el motor de sincronización, un software que trabaja en segundo plano y que permite mantener sincronizada la copia de datos del dispositivo con la que está almacenada en el servidor, incluso cuando no tienes conexión a internet. El motor de sincronización se ocupa de enviar los cambios al servidor y de recoger las actualizaciones que hayan ocurrido en otros dispositivos, manteniendo ambas copias iguales.

Aunque la arquitectura local-first existe conceptualmente desde hace tiempo, solo se ha vuelto práctica en los últimos años gracias a la evolución de las APIs de almacenamiento de los navegadores y a la aparición de nuevas herramientas que simplifican la sincronización de datos. Al permitir que los datos residan en el cliente y se sincronicen con un servidor u otros nodos sólo cuando sea necesario, las aplicaciones local-first pueden ofrecer una experiencia de usuario rápida, robusta y respetuosa con la privacidad.

La tecnología detrás

En el frontend hemos apostado por React, React Router y Vite. El elemento que hace posible el comportamiento local-first es Replicache, un software que gestiona la copia local de datos y resuelve la sincronización con el servidor de forma optimista, es decir, aplica tus cambios de inmediato localmente, y los reconcilia más tarde con el servidor. El backend sigue siendo un servidor Ruby on Rails donde se encuentra toda la lógica de negocio y conocimiento acumulado sobre GTD, aunque la comunicación se hace ahora a través de una API optimizada para compartir datos con el nuevo motor de sincronización.

Este motor de sincronización ha sido, con diferencia, la pieza que más trabajo de ingeniería nos ha exigido. Al principio funcionaba muy bien, pero según fuimos incorporando beta-testers con datos reales, algunos con muchos miles de elementos acumulados durante años de uso, empezamos a encontrar casos de uso donde el rendimiento se degradaba de forma inaceptable. Hemos rediseñado y optimizado partes enteras de ese motor más de una vez para que siga siendo rápido sin importar cuánto historial arrastres contigo.

Un único código, muchas puertas de entrada

Esta arquitectura tiene una ventaja adicional que resulta primordial para nuestra visión y la sostenibilidad a largo plazo. Al independizar la lógica de la aplicación del dispositivo en el que se ejecuta, el mismo código que hoy corre en tu navegador será la base sobre la que construiremos, más adelante, aplicaciones de escritorio y móvil, sin reescribir el producto desde cero otra vez. La idea es construir un único sistema y múltiples formas de acceder a él, todas sincronizadas entre sí en tiempo real.

Esa misma arquitectura abre también la puerta a algo que hace un año todavía sonaba lejano, la posibilidad de que agentes de IA trabajen directamente sobre tu sistema GTD. No es casualidad que, en paralelo al desarrollo de esta nueva app, hayamos empezado a construir un servidor MCP que permite a modelos como Claude o ChatGPT capturar, aclarar y, en el futuro, ayudarte con tu revisión semanal, hablando el mismo lenguaje de la API que alimenta la aplicación.

Lo que viene

La nueva app está actualmente en beta con acceso por invitación, pero estará completamente abierta el mes que viene. Cubre el flujo de trabajo completo de GTD (capturar, aclarar, organizar, reflexionar y actuar), pero todavía faltan piezas importantes: la revisión semanal, las rutinas, y más adelante las versiones empaquetadas como app móvil y de escritorio de las que hablaba antes.

Estamos publicando una actualización nueva cada semana, y seguiremos así, ajustando cada pieza con vuestro feedback, hasta que esta aplicación sea, de verdad, la mejor forma de implementar GTD que podáis tener.

avatar
Francisco Sáez
@franciscojsaez

Francisco es el fundador y CEO de FacileThings. Es también un Ingeniero en Informática al que le apasiona la productividad personal y la filosofía GTD como medios para lograr una vida mejor.

Los 5 pasos que pondrán tu vida y tu trabajo en orden

¡Descarga GRATIS el ebook El Flujo de Trabajo de GTD®!

ebook cover

No hay comentarios

¡Comparte tus pensamientos!

Escribe tu comentario:

Prueba FacileThings 30 DÍAS GRATIS y empieza a vivir a tu ritmo

No necesitas tarjeta de crédito para probar. Cancela cuando quieras con un solo clic.