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