Skip to content

Content Addressable Note-taking system

This is a project I'll be working on. Called CAN for want of a better name.

Based on the question: Would it be possible to use some of the concepts from Unison to build a repository of notes? An initial dump of ideas:

  • notes are named with a hash of the content
  • note collections are append-only
    • updating a note makes a new note, links to old one and updates links in notes which refer to old note.
  • friendly namespaces are assigned to notes and can be trivially reassigned
  • semantic links between notes, possibly with arbitrary metadata
    • use friendly namespaces to inter-refer between notes
    • full ability to find, follow backlinks/link-chains trivially
    • transclusion-style links to build larger notes/documents
  • ability to export/render in multiple, pluggable formats
    • use namespaces to render limited subsets
    • render out HTML to build sites
  • store notes semantically as AST-style files
    • semantic note refactoring? split / merge / etc
  • shared / distributed note collections for projects / companies / friends
    • '> pull docs'
      • 'sam updated these notes:'