How Moment works
Local-first by default
When you create a new document, it exists entirely on your local machine as a collection of Markdown files in a Git repository. You can edit pages, commit changes, create branches, and work offline, all without a network connection. For more details on how files are organized, see Local disk structure.
At this stage, Git is the sole source of truth. Your main branch tracks the document's history, and you have full control over when and how changes are committed.
Sharing and collaboration
Once you're ready to share a document with others, Moment leverages Reboot to make the document collaborative in real time. When a document is shared:
The central server becomes the source of truth. Reboot manages a collab/main branch that represents the live, canonical state of the document. All collaborators see and edit against this branch.
Changes sync in real time. Edits from any collaborator are propagated to all others immediately, without manual commits or pushes.
Versioning while collaborating
Even while a document is being collaboratively edited, you can still snapshot versions in Git. This means you can capture a point-in-time state of the document as a commit, giving you the same version history and rollback capabilities you had when working locally.
Branching
You can pull changes from the collaborative collab/main branch into different local branches if you wish. This lets you experiment with changes, draft new content, or work on a separate version of the document without affecting the live collaborative state.