Outil de notes / Outil web

SelixyBrain

Second cerveau : notes reliées, graphe et notes volantes

Vue 3TypeScriptNodeCodeMirrorGraphePodman

SelixyBrain est mon outil de prise de notes. Je m’en sers pour capturer des idées, des lectures et des expérimentations, et pour retrouver ce qui se relie à quoi.

Graphe et éditeur

Les notes sont reliées entre elles par des liens, et l’interface les montre sous forme de graphe. L’éditeur affiche, pour chaque note, les rétroliens : les notes qui la citent. J’ai posé une règle de conception : ne jamais perdre de texte. L’état de l’éditeur est séparé par note, et la frappe en attente est envoyée dès qu’on change de note ou qu’on quitte la page.

Notes volantes

Les notes volantes servent à capturer vite : texte, voix, photo, fichier, liens. Elles sont mises à part, à trier plus tard puis à promouvoir en vraies notes.

Couche d'accès et droits

Les notes vivent dans un vault tenu par SilverBullet. Entre lui et l’interface, j’ai écrit une couche d’accès en Node et TypeScript strict, sans dépendance d’exécution : comptes, rôles, sessions, et relais vers le vault.

  • trois rôles : administrateur, spectateur en lecture seule, et invité qui peut créer et modifier sans supprimer ;
  • les droits sont appliqués côté serveur, l’interface ne fait que masquer les actions ;
  • une note est visible par défaut et peut être réservée à l’administrateur ; elle disparaît alors des listes et du graphe, comme si elle n’existait pas ;
  • ces marqueurs sont tenus dans un registre à part : rien n’est écrit dans les notes ;
  • si le registre est perdu ou corrompu, les comptes non administrateurs ne voient plus rien.

Déploiement et tests

L’interface (Vue 3, Vite, CodeMirror) et la couche d’accès sont livrées dans un conteneur unique. Des tests unitaires, un audit modulaire et un test vérifient qu’aucun identifiant ne se retrouve dans le code livré.

Note-taking / Web tool

SelixyBrain

Second brain: linked notes, graph and quick-capture notes

Vue 3TypeScriptNodeCodeMirrorGraphePodman

SelixyBrain is my note-taking tool. I use it to capture ideas, readings and experiments, and to find what connects to what.

Graph and editor

Notes are linked to one another, and the interface shows them as a graph. For each note, the editor lists the backlinks: the notes that cite it. I set myself one design rule: never lose text. The editor state is separate for each note, and pending keystrokes are sent as soon as I switch notes or leave the page.

Floating notes

Floating notes are for fast capture: text, voice, photo, file, links. They are kept apart, to be sorted later and then promoted into proper notes.

Access layer and permissions

The notes live in a vault run by SilverBullet. Between it and the interface, I wrote an access layer in Node and strict TypeScript, with no runtime dependency: accounts, roles, sessions, and a relay to the vault.

  • three roles: administrator, read-only viewer, and guest who can create and edit but not delete;
  • permissions are enforced server-side, the interface only hides the actions;
  • a note is visible by default and can be reserved to the administrator; it then disappears from lists and from the graph, as if it did not exist;
  • these markers are kept in a separate registry: nothing is written into the notes;
  • if the registry is lost or corrupted, non-administrator accounts see nothing.

Deployment and tests

The interface (Vue 3, Vite, CodeMirror) and the access layer ship in a single container. Unit tests, a modular audit and a test checking that no credential ends up in the shipped code come with it.