Syncular es un framework de sincronización offline-first para TypeScript, actualmente en fase alfa, que combina SQLite local en el cliente con Postgres en el servidor mediante un registro de commits append-only. La propuesta resuelve un problema habitual en aplicaciones que necesitan SQL local en cada cliente sin renunciar al control del servidor: las lecturas y las escrituras optimistas se ejecutan contra SQL local (SQLite o PGlite mediante WA-SQL), mientras que el servidor valida cada escritura, la etiqueta con scopes y la registra en un log ordenado que los clientes pueden consultar según sus permisos.
El sistema se compone de paquetes npm diferenciados: @syncular/server y adaptadores para Hono, Postgres o Neon en el backend; @syncular/client y @syncular/client-react en el lado del navegador, con dialécticas para wa-sqlite, PGlite, better-sqlite3 o sqlite3 según el entorno (Node, Bun, Electron, Deno, Cloudflare Workers, D1). Los esquemas de cliente y servidor se modelan de forma independiente con Kysely y se conectan mediante table handlers y resolveScopes.
El flujo distingue escritura local, push, pull y señal de wake-up por WebSocket, manteniendo el tráfico de datos sobre HTTP. La autorización es explícita: cada cambio lleva asociado el scope que lo autorizó, lo que facilita la auditoría. La resolución de conflictos no es automática; se ofrece detección basada en versiones y utilidades de merge a nivel de campo, pero la estrategia la define el desarrollador. Incluye además un plugin opcional para Yjs que permite edición colaborativa almacenando el estado CRDT como columnas dentro del mismo commit log. El proyecto incorpora un kit de pruebas con inyección de fallos, cobertura de múltiples runtimes y suites de rendimiento, y se distribuye con una consola web para inspección operativa. Su responsable advierte que las APIs y formatos cambiarán entre versiones, por lo que no se recomienda en producción sin fijar versiones.
