Skip to content
Legal

Privacy Policy

Last updated

VibeComments is a browser extension for leaving comments on live web pages, built by Dignacy. This policy covers both the extension and this website. It is written to be checkable: every statement about what the software stores describes behaviour you can verify in the extension bundle.

The short version

  • Signed out, your comments never leave your browser. They are held in the extension’s own storage area, which the web pages you visit cannot read.
  • Signing in is what creates a server-side copy. That is the whole point of an account: a comment has to reach a teammate.
  • The extension contains no analytics. No tracking SDK, no third-party scripts, no advertising identifiers.
  • We never read the pages you comment on. The extension records the element you selected and the text you typed, not the contents of the page around it.

The extension, signed out

With no account, everything the extension keeps is stored locally in your browser, under the vibecomments: namespace of the extension’s own storage area. That covers:

  • Your comments and replies, and their resolved or open status
  • The anchor recorded for each comment: a CSS selector, an XPath, and a short quote of the text around the element
  • A cropped screenshot of the commented element, if element screenshots are enabled in settings
  • Your settings, and a device-local project per hostname

Two storage choices are deliberate. The extension does not use the page’s own localStorage, because the page itself could read that. It also does not use IndexedDB. Nothing in this list is transmitted anywhere while you are signed out, and clearing it is a single action: Settings → Clear local data.

The extension, signed in

Signing in uploads the comments already on your machine, grouped by domain into projects, and keeps new ones in sync. From then on we store:

  • Comment and reply text, thread structure, and status
  • The page URL each thread belongs to, and the element anchor
  • Element screenshots, where they were captured
  • Your account identity, your project memberships and your role in each project
  • An audit record of security-relevant actions — creating a project, creating or accepting an invite, removing a member, creating a comment — each with the acting account, a timestamp, an IP address and a browser user-agent string

Authentication is a six-digit code sent to your email address. There is no password to store, and we do not store one.

What the extension’s permissions are for

A browser shows you this list at install time without explaining it. Here is the explanation.

PermissionWhy it is needed
activeTabAct on the tab you are looking at when you open the overlay.
storageHold your comments and settings, as described above.
tabsRelay an update to every open tab, so a teammate’s reply appears without a reload, and open the sign-in page.
alarmsRefresh your session token before it expires. A timer cannot do this: the extension’s background worker is shut down when idle, and an alarm survives that.
declarativeNetRequestRules applied by the browser itself, not by us — the extension declares them and never sees your traffic.
<all_urls>Comment on any site. A tool for reviewing your own deploys cannot enumerate their hostnames in advance. Nothing is read or sent from a page until you open the overlay on it.

The extension also declares exactly one external origin that is allowed to hand it a session: our own API host, fixed at build time. No other page can talk to it.

This website

If you join the early-access list, we store the email address you submitted so we can write to you when a seat opens. It reaches us through this site’s own server, not a third-party form.

We use a self-hosted analytics instance that sets no cookies and builds no cross-site profile. It runs on the production domain only, so a preview or a local build sends nothing. It records the page, the referrer and coarse device information; it never receives anything you typed, including your email address.

Who else processes this data

Only where a service is needed to run the product, and only the data that service needs:

  • Clerk — accounts and authentication
  • Resend — sending the sign-in code and invite emails
  • Supabase (with a standby copy at Neon) — the database holding synced comments
  • Sentry — server-side error reports, configured not to attach personal data

We do not sell data, and we do not share it with advertisers. There are none.

Retention and deletion

Local comments live until you delete them or clear local data. Synced comments live until you or a project owner deletes them.

Account deletion is not yet self-service. Email privacy@dignacy.com and we will delete your account, your comments and your audit records, and confirm when it is done. We would rather say that plainly than point you at a button that does not exist.

Your rights

Depending on where you live you may have the right to access, correct, export or erase the data we hold about you, and to object to our processing of it. Write to privacy@dignacy.com and we will act on it.

Children

VibeComments is a tool for professional software teams and is not directed at children. We do not knowingly collect data from anyone under 16.

Changes

The product is in alpha and this policy will change with it. The date at the top of this page is the date of the current version. A change that materially widens what we collect will be announced by email to account holders before it takes effect, not published quietly.

Contact

privacy@dignacy.com