Synora

Des notes par blocs, rapides et hors-ligne, sur mobile et desktop.

Année
2026
Type
App mobile & desktop
Rôle
Conception, design & développement
Statut
En développement

6plateformes, une base de code

  • Flutter
  • Dart
  • SQLite
  • Firebase
  • WebCrypto

Code source privé

Le contexte

Synora part d’une idée simple : la souplesse de Notion, repensée pour le téléphone. Rapide, hors-ligne et belle par défaut. Chaque idée est un bloc : texte, to-do, code, base de données et plus encore.

Ce que j’ai construit

Une seule base de code Flutter qui cible Android, iOS, Linux, macOS, Windows et le web.

  • Éditeur par blocs : conversion Markdown à la frappe (# suivi d’une espace devient un titre), menu « / » navigable au clavier qui passe au-dessus du curseur quand la place manque, arborescence de pages et de sous-pages.
  • Bases de données : quatre vues natives pensées pour le mobile (tableau, kanban, calendrier et chronologie), avec un type de colonne date.
  • Espaces partagés : invitations par email, rôles propriétaire, admin, éditeur et lecteur, synchronisation en temps réel.
  • Extension navigateur (Manifest V3) pour créer et modifier ses notes depuis le navigateur, sans SDK ni bundler : uniquement l’API REST de Firebase et WebCrypto.

Points techniques

  • Hors-ligne d’abord : stockage local SQLite avec migrations de schéma. Seules les métadonnées des pages sont chargées au démarrage, les blocs à l’ouverture de la page, et les longues pages utilisent des listes virtualisées.
  • Synchronisation sans conflit : CRDT au niveau du bloc (LWW-Element-Set) avec des positions en indexation fractionnaire, pour fusionner proprement les modifications faites hors-ligne.
  • Chiffrement de bout en bout : AES-256, reproduit octet pour octet entre l’app Dart et l’extension en WebCrypto. Une note chiffrée sur le téléphone se déchiffre dans le navigateur, et inversement.
  • Résilience : chaque opération réseau est isolée, pour qu’une erreur de synchronisation ne casse jamais l’état local.
  • Tests : sérialisation des modèles collaboratifs, schéma de la base, menu « / » et calculs de fusion et de réordonnancement du CRDT.

Et ensuite

Un bloc IA est en cours d’intégration, avec un modèle local via llama.cpp. Le site vitrine de Synora, construit avec Astro, attend ses démos vidéo avant sa mise en ligne.

Un projet similaire ? Parlons-en.

Démarrer un projet