Présentation
Ink & Switch célèbre son dixième anniversaire avec Tenfold, une page d’accueil interactive où chaque clic ou glissement déclenche une animation. Le nom fait référence à la fois aux dix lettres du mot « Tenfold » et aux dix années d’existence du laboratoire. Le projet affirme être construit « avec la technologie issue de nos recherches », ce qui implique l’utilisation de leurs cadres de local‑first software, d’encre programmable et de contrôle de version universel.
Architecture technique
Le cœur de Tenfold repose sur Automerge, la bibliothèque open‑source d’Ink & Switch qui implémente des Conflict‑Free Replicated Data Types (CRDT). Les CRDT permettent de synchroniser les états de l’interface entre plusieurs onglets ou appareils sans serveur central, en appliquant des opérations commutatives qui garantissent la convergence des données même en cas de modifications hors‑ligne. Cette approche élimine les conflits de version classiques et assure que chaque interaction utilisateur (clic, glissement) est immédiatement reflétée localement puis propagée de façon asynchrone aux autres instances.
En complément, le concept de Programmable Ink est exploité pour associer des comportements dynamiques aux éléments graphiques, comme si l’on « programmait » de l’encre sur une toile numérique. Chaque forme affichée possède un petit script JSON décrivant son état et les déclencheurs d’événement, ce qui rend le rendu hautement modulaire et facilement extensible. Le système de Universal Version Control enregistre chaque changement dans un historique immuable, offrant la possibilité de revenir à une version antérieure de la page ou d’explorer des branches alternatives de l’interaction.
Analyse des performances et limites
Le modèle local‑first minimise la latence perçue, car les actions sont traitées instantanément dans le navigateur grâce à la réplication en mémoire. Cependant, la taille du journal CRDT croît avec le nombre d’interactions, ce qui peut entraîner une consommation mémoire notable sur des appareils mobiles. Ink & Switch compense ce risque en compactant périodiquement le journal et en purgeant les entrées redondantes, mais la documentation ne précise pas le seuil de déclenchement de ces optimisations.
Sur le plan de la sécurité, les données synchronisées sont chiffrées de bout en bout, conformément aux pratiques de leur projet Keyhive. Néanmoins, l’exposition publique du code source sur GitHub signifie que les vecteurs d’attaque potentiels (injection de scripts malveillants dans les définitions JSON) doivent être validés côté client, ce qui n’est pas détaillé dans la description publique.
Implications pour le futur du web interactif
Tenfold illustre concrètement comment les principes de local‑first et de programmable ink peuvent être combinés pour créer des expériences web qui restent fonctionnelles hors ligne et résilientes aux conflits de synchronisation. Si le modèle se généralise, il pourrait réduire la dépendance aux serveurs centralisés pour les applications collaboratives, tout en offrant un historique complet des interactions utilisateur. La réussite de ce prototype dépendra toutefois de la capacité à gérer l’échelle du journal CRDT et à sécuriser les scripts dynamiques intégrés.