Margin
A review room for copy, specs and policies. Each document is shared with the people who should see it, as editor or commenter, and that share is the database's access rule: someone it isn't shared with can't read the document, its comments or its live room. Reviewers comment on a paragraph, reply, react and resolve; every comment, reaction and resolve reaches everyone on the document live, avatars show who is reading it now, and readers see when someone is replying or editing the draft.
Members invited by the team. Each document has its owner, editors and commenters.
What's inside
Documents shared with you, by status. Paragraph comments with replies, reactions and resolve. Who is viewing now, who is replying, who is editing. Edits and status changes that appear live. New document and share dialogs.
Tables
membername, email, title, avatardoctitle, body, review, kind, owner_id, due_on, share_withdoc_accessdoc_id, member_id, role, joined_viathreaddoc_id, paragraph, quote, author_id, resolved, resolved_bycommentthread_id, doc_id, author_id, body, edited_atreactioncomment_id, doc_id, member_id, emoji
Roles
memberMember, staff
Pages
/docsDocuments (member)/accessPeople (member)
Components
MarginLoginSign-in for Margin: email and password, Google, reset, beside a document with live margin commentsMarginDocsDocument review: the documents shared with you, paragraph comments in the margin with replies, reactions and resolve, who is viewing, live edits by editors, status and sharing
Rules on every write
docGive the document a title of 3 to 120 characters.docKeep a document under 50,000 characters.docYou create documents as yourself.docA document keeps its owner.doc_accessA document has one owner: share as editor or commenter.doc_accessA share stays with its document and person.threadYou start threads as yourself.threadOnly whether a thread is resolved changes after it's posted.threadQuote the passage you're commenting on (up to 300 characters).commentWrite something before you post.commentYou comment as yourself.commentA comment belongs to its thread's document.- and 3 more
Realtime
docLive: each change reaches whoever can read the rowdoc_accessLive: each change reaches whoever can read the rowthreadLive: each change reaches whoever can read the rowcommentLive: each change reaches whoever can read the rowreactionLive: each change reaches whoever can read the rowdoc_room:<doc>Channel. Join: member (and can read the doc). Send: members. Shows who is here
How its workflows run
Each one is a server workflow in your project: it runs on its trigger, with retries, and its runs show in the builder's log.
- Make the creator a new document's owner and share it with the people picked
When a row changes:
doc created. Then: Create doc_access, then Look up member, then Notify. - Tell the people in a thread about a new reply
When a row changes:
comment created. Then: Look up member, then Notify. - Tell a thread's author when it's resolved
When a row changes:
thread updated. Then: Look up member, then Notify. - Tell everyone on a document when it's approved
When a row changes:
doc updated. Then: Look up doc_access, then Notify.
Set it up
It starts a new project, with its data, roles and sign-in ready.
- Start the project
Use the button above, or ask your coding agent with the Appbricx MCP server connected (quickstart).
- Sign in as each role
The demo logins open each role's home. Change what you like in plain words or in the contract.
- Deploy
When dev looks right, deploy. Production gets a snapshot first, so you can roll back.
Use it with your coding agent
The agent creates the project, builds it and signs in as each role.
Start a new Appbricx project from the Margin template (slug "margin") with use_template. Call it "My Margin", then sign in as each role, verify it and tell me what to change first.{
"tool": "use_template",
"arguments": {
"slug": "margin",
"name": "My Margin"
}
}appbricx templates use margin --name "My Margin"Goes well with

Huddle
Realtime team chat: public and private channels, live messages, typing indicators, who's online, unread counts and @mentions.

Corkboard
Multiplayer sticky-note board for retros and planning: notes you add, edit, drag between lanes and vote on, live for everyone, with who's on the board and who's editing which note.

Comments
Threaded comments on any record, with replies, @mentions, edits and live updates.



