Pourquoi j’ai créé NoteVault, une application de notes qui laisse vos fichiers tranquilles

Sommaire

Je n’ai pas créé NoteVault parce qu’il manquait une application de prise de notes. Il en existe déjà beaucoup, des éditeurs minimalistes aux outils qui cherchent à organiser toute une vie numérique.

Le projet est d’abord né d’une envie d’apprendre. Je voulais construire une application pour bureau de bout en bout, avec de vrais fichiers à manipuler, un éditeur riche, de la recherche, des contraintes de sécurité et un paquet Linux à distribuer. La prise de notes offrait un terrain suffisamment simple pour rester compréhensible, mais assez riche pour soulever de vrais problèmes de conception.

Joplin constituait un point de comparaison évident. Le projet est libre, offline-first, utilise Markdown et propose déjà un ensemble très complet de fonctionnalités. Il montre qu’une application de notes peut fonctionner sans enfermer son utilisateur dans un service entièrement distant.

Je ne cherchais cependant pas à refaire Joplin fonctionnalité par fonctionnalité. Je voulais explorer un autre compromis : une application plus resserrée, plus directe et visuellement soignée, dans laquelle l’expérience d’écriture compte autant que les fonctions disponibles. Un outil local peut être robuste sans donner l’impression d’être austère.

Cette recherche rejoignait une frustration plus personnelle. Mes notes finissaient souvent par dépendre de l’outil qui les avait créées. Même lorsqu’un export était disponible, une base de données ou un format spécifique restait entre mes fichiers et moi. Je voulais pouvoir ouvrir le dossier du coffre et y retrouver immédiatement des fichiers Markdown ordinaires.

NoteVault est né de ces deux motivations : apprendre en construisant une application complète et créer un outil local que j’aurais réellement envie d’utiliser au quotidien.

Le Markdown comme source de vérité

Le principe le plus important de NoteVault est simple : une note doit rester un fichier.

Par défaut, chaque note est enregistrée sous la forme d’un fichier .md dans un dossier présent sur l’ordinateur. Il est possible de l’ouvrir avec NoteVault, mais aussi avec Vim, VS Code, un script shell ou n’importe quel autre outil capable de lire du texte.

Le Markdown n’est donc pas seulement un format d’export. C’est le format de travail.

Cette distinction change beaucoup de choses. Si NoteVault disparaissait demain, les notes resteraient accessibles. Il ne serait pas nécessaire de restaurer une base de données ou de convertir un format propriétaire avant de pouvoir les relire.

Le coffre, que l’application appelle un vault, reste la source de vérité :

vault/
├── notes/
├── assets/
├── templates/
├── themes/
└── .notevault/

L’index utilisé pour la recherche est reconstruit en mémoire à partir de ces fichiers. Il peut être supprimé puis recréé. Les notes, elles, ne dépendent pas de cet index pour exister.

C’était une contrainte importante dès le début du projet : l’application doit s’adapter aux fichiers, pas l’inverse.

Une application locale par choix

NoteVault ne demande pas de compte et ne dépend pas d’un serveur distant. Il est possible de créer un coffre, d’écrire, de chercher et d’organiser ses notes sans connexion à Internet.

Ce fonctionnement local-first n’est pas seulement un choix technique. Il définit la relation entre l’application et les données qu’elle manipule.

Je ne voulais pas qu’une note personnelle soit envoyée vers un service extérieur simplement parce que l’éditeur en est capable. Je ne voulais pas non plus ajouter de télémétrie ou d’analyse distante pour observer la manière dont l’application est utilisée.

Les références vers des images distantes sont conservées dans le Markdown, mais NoteVault ne les charge pas automatiquement. Cela évite qu’une simple ouverture de note provoque une requête réseau inattendue.

Une option permet également de chiffrer le contenu des notes, leur historique et les brouillons de récupération avec une phrase secrète locale. Ce mode a volontairement des limites explicites : les noms de fichiers, la structure des dossiers, les dates et les ressources ne sont pas masqués. Il n’existe pas non plus de mécanisme de récupération de la phrase secrète.

Le chiffrement n’est pas présenté comme une solution magique. Il protège ce qu’il peut protéger, avec un périmètre clairement annoncé.

La récupération avant l’accumulation de fonctionnalités

Écrire une note semble être une opération simple jusqu’au moment où quelque chose se passe mal.

L’application peut être interrompue. Un fichier peut être modifié depuis un autre éditeur. Une note peut être supprimée par erreur. Une mauvaise version peut être enregistrée avant que l’on réalise qu’un passage important a disparu.

J’ai donc choisi de traiter la récupération comme une fonctionnalité centrale, et non comme une amélioration à ajouter plus tard.

NoteVault propose un enregistrement automatique avec un état visible, un historique des versions, une comparaison des modifications, une corbeille récupérable et un système de restauration des brouillons. Les changements réalisés directement dans les fichiers du coffre peuvent également être détectés.

L’objectif n’est pas de promettre qu’aucun problème ne se produira jamais. L’objectif est de rendre les erreurs et les interruptions moins définitives.

Cette priorité influence aussi les décisions techniques. Les écritures importantes doivent être atomiques. Les données dérivées doivent pouvoir être reconstruites. Une fonctionnalité qui rend la récupération plus difficile doit apporter une valeur suffisante pour justifier ce coût.

Dans une application de notes, éviter la perte de données est plus important que multiplier les options.

Retrouver le confort d’un éditeur moderne

Conserver de simples fichiers Markdown ne signifie pas qu’il faut renoncer à une interface agréable.

NoteVault fournit un éditeur riche capable de gérer les tableaux, les listes de tâches, les blocs de code et les images locales. Les notes peuvent être organisées avec des dossiers, des tags, des filtres et des épingles.

Les liens wiki permettent de relier les notes entre elles :

[[Architecture du projet]]

L’application propose ensuite des suggestions de navigation et affiche les backlinks, c’est-à-dire les notes qui pointent vers la note actuelle.

Il est aussi possible d’utiliser des modèles, de créer une note quotidienne, de changer de thème, de consulter quelques statistiques locales et d’exporter un coffre au format ZIP.

Toutes ces fonctionnalités suivent la même règle : elles doivent améliorer l’écriture, la recherche, l’organisation ou la récupération des notes sans retirer à l’utilisateur le contrôle de ses fichiers.

Pourquoi Go, Wails et Svelte

NoteVault est une application pour bureau construite avec Go, Wails et Svelte.

Go prend en charge la gestion du coffre, les fichiers, l’indexation, l’historique, la corbeille, le chiffrement et les différentes opérations liées à la sécurité des chemins. C’est une partie du projet où je cherchais surtout un comportement prévisible, des erreurs explicites et une architecture facile à tester.

Wails permet d’exposer cette logique Go à une interface web embarquée sans transformer l’application en service distant. Le résultat reste une application locale, avec un backend Go et une interface construite avec les outils du web.

Le frontend utilise Svelte et Tiptap pour proposer un éditeur plus confortable qu’une simple zone de texte. Cette séparation permet de garder les responsabilités assez nettes : Go s’occupe du coffre et de sa fiabilité, tandis que Svelte gère l’expérience d’écriture et de navigation.

Le projet vise actuellement Linux, avec des paquets pour Arch Linux, Manjaro, Omarchy, Debian et Ubuntu.

Ce que NoteVault ne cherche pas à devenir

Définir un produit, c’est aussi décider de ce qu’il ne fera pas.

NoteVault ne propose actuellement ni synchronisation cloud, ni collaboration, ni partage de documents. Il n’y a pas de système de comptes, de marketplace ou de plugins exécutant du code tiers.

Ces absences ne constituent pas simplement une liste de fonctionnalités manquantes. Elles permettent de conserver une application compréhensible, locale et centrée sur une personne.

Ajouter une infrastructure distante pour synchroniser quelques fichiers changerait profondément le modèle de sécurité, la gestion des conflits et les attentes autour de la disponibilité du service. Ce serait une décision de produit complète, pas une case à cocher dans une liste.

Pour le moment, je préfère que NoteVault fasse moins de choses, mais qu’il soit clair sur la manière dont il les fait.

Un projet encore jeune

NoteVault est en développement actif. Le comportement des coffres, certaines fonctionnalités et la distribution peuvent encore évoluer.

Je ne recommande donc pas encore d’en faire l’unique copie de notes importantes. Même avec un historique et des mécanismes de récupération, une application jeune ne remplace pas une véritable stratégie de sauvegarde.

Cette transparence fait aussi partie du projet. Une application qui promet de prendre soin des données doit expliquer ses limites aussi clairement que ses fonctionnalités.

Mon objectif avec NoteVault est de construire un espace calme et fiable pour écrire, retrouver et organiser des notes personnelles. Une application moderne, mais dont on peut sortir simplement en ouvrant un dossier.

Le dépôt

NoteVault est disponible sous licence MIT. Les retours, rapports de bugs et propositions ciblées sont les bienvenus.

NoteVault Une application de prise de notes locale qui conserve le Markdown comme source de vérité. github.com/kvitrvn/notevault