rel:: [[PKM Workflows MOC]] # Craft https://www.craft.do/ ## Evaluation [[2021-12-10]] ### Model They've made some interesting model choices. - JSON file per document, flat structure on disk - Space (vault/notebook) appears to be entirely in memory with periodic serialization to disk - content is completely separate from styling markup - including links, which are decorated on top of the display text. Links are encoded in a blob of string-encoded json named `style` with offsets - arbitrary nesting seems to be supported by the model, but isn't used in practice (only **Documents** seem to use the `blocks` child) - The only parent/child relationships explicitly recorded in the current model version is `Document` -> `rootBlockId` -> `blocks`. - Max nesting: depth 2. (document -> blocks) - as of [[2021-12-10]], block transclusion is 1-way - contents of block duplicated in-line, no styling, with a craftdocs link in the `style` field to make the association. - ref sites are updated when the source block text is changed - if the ref site's duplicated text is changed, the updating stops ### Markdown Support - write-only - markdown can be entered by hand or imported - markdown can be exported - no interactive round-trip support for markdown in UI; once in [[Craft]], can only be retrieved via export. ### Collaboration - built-in publish, easy to use - comments - multi-user, real-time collaboration is coming ### UX - Very pretty UI - native app - fast - nice onboarding docs