Bootstrapware Comments
Put the conversation next to the work.
Free local · BYO $9.99 / mo · Hosted $19.99 / mo. Workspace pricing. No seat charge.

Try it
Same widget. Local data only.
@bootstrapware/comments package with a local adapter. The seeded task is “Approve the launch checklist.” That title is a discussion on a task. It is not document approval. Nothing is sent to Bootstrapware.Local only · discussions stay in this browser
Approve the launch checklist
Viewing as You
Task discussion
Loading discussions…
Discussion
Select a discussion.
Reply, type @ to mention Ada, Kai, or You, and edit or delete only your own comments. Resolve and reopen stay on the open thread. Unread counts other people's comments until you open the discussion. Load more pages three at a time. Switching persona is a simulation in this browser. It is not sign-in.
Diagnostics
Storage key bootstrapware-comments-demo, seed 1. Scope acme / task / task_launch_checklist. Nothing is sent to Bootstrapware.
Unreadable saved state asks the local adapter to open a broken record. It shows the adapter's storage error and an empty in-memory discussion.
How it works
Three steps. Your auth stays yours.

01
Point it at a record
Pass tenant, resource type, and resource id. A page URL is not the authorization.

02
Reply and mention
Plain text, safe links, and structured mentions. The host decides who can be mentioned.

03
Resolve when it is done
Resolved threads stay readable. Reopening is explicit. A version conflict keeps the draft.
Where the text lives
Config is hosted. Discussion text depends on the mode.

BYO / local
- Discussion text stays on your systems, or in this browser for local mode
- You implement the CommentsAdapter contract
- We host published app configuration only
- Live config fetch needs BYO or Hosted
Hosted ($19.99)
- Bodies, mention ids, display names, and read markers stored on Bootstrapware
- You moderate. We do not staff a queue
- Cancel: freeze writes, export 30 days, then delete
- Hosted to BYO keeps the rows and does not start that clock
Capabilities
The discussion beside the record, already built.
Threads on a resource
Several independent threads can sit on one task, order, or portal request. Replies are flat. There is no nested tree.
BYO or Hosted
BYO ($9.99): you store discussions through a CommentsAdapter. Hosted ($19.99): Bootstrapware stores bodies, mention ids, and read state. You moderate.
Server-minted access
Your server checks the session and the resource, then mints a short-lived author token. A publishable key does not grant access.
Mentions that stay inside the grant
Suggestions come from your host. A mention is a user id, capped at 20. Mentioning someone does not give them access.
Unread, resolve, and reopen
Unread counts other people's comments until the thread is opened. Resolve and reopen use a version check. A stale update keeps the draft.
Id-only events
Hosted webhooks and mention callbacks carry ids, an actor, and a time. They do not carry the comment body, and they are not email.
Install
One package. Typed React component.
pnpm add @bootstrapware/comments
"use client";
import { Comments, createLocalAdapter } from "@bootstrapware/comments";
import "@bootstrapware/comments/styles.css";
export function RecordDiscussion({
user,
workspaceId,
taskId,
}: {
user: { id: string; name?: string };
workspaceId: string;
taskId: string;
}) {
return (
<Comments
user={user}
scope={{ tenantKey: workspaceId, resourceType: "task", resourceId: taskId }}
adapter={createLocalAdapter({ storageKey: "demo-comments" })}
/>
);
}Fit
Built for discussions on records you already own.

Buy this if
- You want threads on a task, CRM record, order, or client-portal request
- Your app already knows the user and can mint a scoped token
- You want discussion text on your backend, or Hosted with your own moderation
- You want one workspace price, with no seat charge and no per-comment invoice
- You or your coding agent need a typed install and docs
Buy something else if
- You want person-to-person messaging. That is Chat
- You want feature requests and votes. That is Feedback
- You want PDF or image annotation and approval. That is outside Comments
- You want a public forum, blog comments, or a traffic-priced comment widget
- You need us to authenticate end users or send their email
Pricing
Workspace pricing. No seat charge.
Local / test
Free
Local adapter and test keys. Full widget for development.
BYO
$9.99 / mo
Live app config. You store the discussions.
Hosted
$19.99 / mo
We store discussion text. You moderate.
The second paid product is 25% off that product's list. The third and later are 35% off list. There is no seat charge and no per-comment invoice. Comments pricing, the pricing hub, and the stack calculator.
Guides
Install paths that already exist.
Comparison
Liveblocks already sells embeddable comments.
Agent-native
Tell Cursor to add discussions on this record. Hand it the docs.
Install @bootstrapware/comments. Add a Client Component using Comments with a host session user and a resource scope. Prefer createLocalAdapter for demos, a CommentsAdapter for BYO, or appId + publishableKey plus a server-minted authorToken for Hosted. Never treat a client-supplied user id as authorization. Follow https://bootstrapware.co/comments/docs/agentsAgent integration rules →
Honest limits
A discussion widget. A short list of things it leaves out.
- No file attachments, votes, reactions, or public anonymous comments.
- No nested reply trees and no public community forum.
- No document anchors, PDF viewing, or approval workflow.
- No presence, typing indicators, or automatic email and push.
- No full-text search in v1. Filters are all, open, resolved, and unread.
- Hosted storage pauses new growth at 1 GiB per environment. That cap is operational, not an invoice.
FAQ
Questions founders ask first.
Does Bootstrapware log my end users in?
No. Your server reads its own session, checks that this person may open this resource, and mints an author token. Comments does not run a separate end-user login.
What is the difference between BYO and Hosted?
BYO ($9.99) hosts app config only. Threads, comments, mention ids, and read markers stay on your backend. Hosted ($19.99) stores that discussion state on Bootstrapware. Local adapters stay free.
How is this different from Chat?
Chat is person-to-person and small-group messaging. Comments is a discussion attached to a host-owned record, such as a task, opportunity, purchase order, or portal request.
How is this different from Feedback?
Feedback is feature requests and voting. Comments is a thread on a record you already have. It does not collect votes.
Does Comments include document review or approval?
No. Comments resolves a discussion thread. It does not view PDFs or images, place annotations, or record revision-bound approval. That job is outside this product.
Will an AI coding agent be able to integrate this?
Yes. One npm install, typed props, AGENTS.md, and MCP tools that configure apps only. Liveblocks also documents agent setup. This path is the short install for discussions on a host record.
Before you spend the weekend on a thread table, try this.
Production software without venture pricing.