El diseño y desarrollo de aplicaciones web está experimentando un cambio radical. Con el aumento de la conciencia sobre la privacidad y la creciente preocupación por la seguridad de la información, muchos desarrolladores están explorando nuevos enfoques para la gestión de datos en la web. Uno de estos enfoques emergentes es el desarrollo web Local-First.

Durante años, la nube ha sido el centro de atención de los usuarios, profesionales, empresas y desarrolladores. Las normativas europeas sobre gestión y protección de datos personale han llevado a muchas organizaciones a reconsiderar sus procedimientos.

Una de las principales razones por las que el desarrollo web Local-First se está volviendo cada vez más popular es la capacidad de trabajar offline manteniendo la posibilidad de usar las mismas funcionalidades incluso sin conexión a Internet.

Local-First puede contribuir a mejorar el rendimiento y la escalabilidad de la aplicación, reducir la latencia y minimizar el tráfico de red. Estos son beneficios especialmente importantes para aplicaciones que requieren acceso a datos en tiempo real, como aplicaciones de monitoreo y control.

Diferencias con el enfoque Cloud-First

A diferencia del enfoque Cloud-First, en el que los datos se almacenan principalmente en servidores remotos, el enfoque Local-First almacena los datos de forma permanente en dispositivos locales. De esta manera, los usuarios mantienen el control total de sus datos, ya que no se transfieren a plataformas gestionadas por terceros.

Los usuarios no tienen que preocuparse por problemas de conexión o por depender de proveedores de servicios en la nube para acceder a sus datos y aplicaciones.

Como se mencionó anteriormente, el enfoque Local-First puede contribuir a mejorar el rendimiento de la aplicación ya que los datos son accesibles localmente, más rápidamente que en una operación de recuperación desde servidores remotos.

Con Local-First, los desarrolladores se enfrentan a importantes desafíos que se relacionan principalmente con la correcta compartición y sincronización de los datos de los usuarios. Además, pueden surgir problemas de escalabilidad de la aplicación si el número de usuarios conectados y las cargas de trabajo aumentan rápidamente.

Un ejemplo es Automerge, una librería CRDT (Conflict-free Replicated Data Type) muy útil en el desarrollo de aplicaciones multiusuario. Con Automerge, por ejemplo, se gestionan modificaciones simultáneas aplicadas a los mismos documentos, como lo hacen herramientas como Google Docs, Microsoft Office Online o Trello.

Para el almacenamiento de datos, se sugieren herramientas como PouchDB, RxDB, VLCN, TinyBase, ElectricSQL, Evolu, Instant, Gun, WatermelonDB y SyncedStore.