Bootstrapwarebootstrapware

Bootstrapware Comments

Put the conversation next to the work.

Embed threads, replies, mentions, and resolve beside a record your app already authorizes. Your server mints access. Choose BYO storage at $9.99 or Hosted discussions at $19.99. Free for local and test. No seat charge.

Free local · BYO $9.99 / mo · Hosted $19.99 / mo. Workspace pricing. No seat charge.

Comments demo for the task Approve the launch checklist, with You selected, an unread discussion, and load more.

Try it

Same widget. Local data only.

This is the real @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.
Persona
Resource
Host theme

Local only · discussions stay in this browser

Approve the launch checklist

Viewing as You

Task discussion

Loading discussions…

    0 / 10000

    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.

      Comments demo for the task Approve the launch checklist, with You selected, an unread discussion, and load more.

      01

      Point it at a record

      Pass tenant, resource type, and resource id. A page URL is not the authorization.

      Open discussion where Kai mentions You about the blank rollback owner on the launch checklist.

      02

      Reply and mention

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

      Resolved discussion where Ada and Kai agree the checklist pricing copy is final.

      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.

      Your app already knows the user and the record. BYO keeps the discussion on your backend. Hosted stores it on Bootstrapware. MCP never receives comment bodies.
      Dark host theme of the Comments demo on the task Approve the launch checklist.

      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.

      A thread list is a short afternoon. Resource scope, mention grants, read markers, versioned resolve, and a published app config are the part you would keep owning.

      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.

      Full feature reference

      Install

      One package. Typed React component.

      Publishable keys may appear in the browser. Secret keys stay on the server that mints the author token.
      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.

      Mobile Comments thread where Kai mentions You on the launch checklist.

      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.

      All guides

      Comparison

      Liveblocks already sells embeddable comments.

      Liveblocks Comments is the closest embed, on a broader realtime platform, with a metered plan. FastComments is an inexpensive live-comment product with SSO. Talkyard is forum and blog-comment software you can self-host. Building it yourself is a real alternative.

      Agent-native

      Tell Cursor to add discussions on this record. Hand it the docs.

      The package AGENTS.md and the agents page describe the same path: local, Hosted, or BYO. MCP configures apps. It does not ingest comment bodies.
      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/agents
      Agent 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.

      See limits and threads.

      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.