Curb
Privacy Policy

Thank you for using Curb.

This page describes what information Curb handles and how.

TL;DR

Curb is local-first. By default, every policy, every minute of usage, every block decision lives only in your browser's local storage and never leaves your device. Curb does not contact any server unless you explicitly sign in.

If you sign in to enable cross-device sync, your email address, your policy list, your device list, and your per-domain usage data are stored in a private S3 bucket controlled by the author. The data is keyed by your email and is not accessible to anyone else. You can sign out at any time, which clears local session state; deleting the data server-side requires emailing the author.

Curb does not share data with third-party advertisers or analytics providers.

What stays on your device

Policies, rules, schedules. Your configured caps and rate limits, the domains they cover, the schedules attached to them. Stored in browser.storage.local.

Usage data. The number of seconds you've spent on each tracked domain, bucketed per minute. Stored in browser.storage.local.

Device id. A random per-install identifier used to disambiguate your devices when sync is enabled. Stored in browser.storage.local.

What's sent to the server when you sign in

Sync is opt-in. If you don't sign in, none of this applies.

Email address. Used to send you a six-digit sign-in code and to key your synced documents. Stored on the server.

Sign-in codes. One-time codes are hashed at rest and expire after 10 minutes.

Session tokens. A JWT issued on successful sign-in is sent with each sync request. The token is hashed at rest on the server.

Policies and devices documents. Your policy list (with all rules, schedules, and domains) and your device list (with the names you assign them) are stored in a private S3 bucket, keyed by your email.

Usage shards. Each signed-in device uploads its own usage shard (seconds per minute, per domain, per date) so that daily caps can sum cumulative usage across browsers. The shard is keyed by email and device id.

Rate-limiting metadata. The server records the IP address and email address of recent sign-in attempts to prevent abuse. Rows are pruned automatically after a short retention window.

What Curb does not collect

Curb does not collect the URLs you visit beyond the hostnames you've explicitly added to a policy. It does not read page contents. It does not track which pages you visit on a tracked domain — only the total seconds spent on that domain, per minute. It does not transmit any data when sync is not signed in.

Children's Privacy

Curb is not intended for and may not be used by children under the age of 13. The author does not knowingly collect information from children under the age of 13.

Contact

Questions or data-deletion requests: lawrencehook@gmail.com.