Privacy

Privacy Policy.

Last updated October 5, 2026. This policy covers trybaton.dev. A Baton you run on your own server is outside it.

Who we are

Solvely LLC ("we", "us") publishes trybaton.dev and www.trybaton.dev and offers the Baton software. We are a company in the United States. To ask a question or make a request under this policy, write to hello@trybaton.dev.

Baton and this website

Baton is software you install on a server you control. There is no hosted Baton. You bring your own code and your own model keys. Baton does not hold either one. People sign in on your server.

This policy is about trybaton.dev. It does not describe data that stays on a server you operate.

Information we collect

This site's code stores two kinds of record. One is a beta signup. The other, when paid checkout is turned on and you buy Pro, is a license record. Both are described below.

The form on the home page sends the email address you type to /api/beta.

The address is stored when it matches .+@.+\..+ and is 254 characters or fewer. Spaces at the ends are removed. Letters are lowercased. Anything else is rejected and nothing is written.

A valid signup is written to our hosting provider's key-value storage, in the namespace bound as BETA_SIGNUPS. The key is signup: plus the lowercased email, so a later signup with the same address replaces the earlier one. The value is JSON with three fields:

  • email. The address, trimmed and lowercased.
  • at. The time of the request, in UTC, from new Date().toISOString().
  • country. The country code header our hosting provider attaches to that request. If the header is missing, the field is null.

The handler does not store an IP address, a name, a user agent, or any other header in that record. If the BETA_SIGNUPS binding is missing, the form gets an error and nothing is stored.

How we use it

The form says: "Work email. No spam, one note when your invite is ready." We use the email to send that note and to run the beta list. The country code is stored on the same record. We do not use the signup for advertising.

Paid checkout

When checkout is turned on, the pricing page can send you to our payment processor's checkout page to buy Pro. The payment processor hosts that page. The payment processor collects the email address and the payment details. We do not receive the card number. We send the payment processor the plan you picked and, if you typed it, the Baton server id. If you leave the server id blank, the payment processor's page asks for it. The server id is stored on the subscription at the payment processor.

After payment, we write one record to our hosting provider's key-value storage, in the namespace bound as LICENSES. The key is the payment processor's subscription id. The JSON value holds the license key, the server id, the payment processor's customer id, the email on that customer (subject), the plan, whether it is the founding price, the period end, the expiry (14 days after the period end), the time we issued the key, and the status. foundingOverCap is true only when a founding subscription landed after the 20-spot cap, so that race is not silent.

The page after payment shows the key and a private link, /license, with the subscription id and an HMAC made with LICENSE_LINK_SECRET. That link is how you fetch a key for the current paid period. It is not a cookie. Manage billing opens the payment processor's billing portal session for that customer.

A webhook from the payment processor tells us when an invoice is paid and when a subscription ends. We use that to refresh the stored key's expiry or to mark the record ended. We do not store the raw event.

Cookies and your browser

The site's pages do not set cookies. They do not include advertising scripts. They do not create an account or ask for a password.

Our hosting provider adds its analytics script to pages on trybaton.dev. That script reports page views, referrers, and page load times to the provider. It does not use cookies or localStorage, does not fingerprint visitors for analytics, and does not track individual visitors across other websites that use the same provider.

The light and dark control stores the word light or dark in your browser's localStorage, under the key baton-theme. That value stays on your device. It is not sent with the signup.

Fonts

Every page uses two fonts. We serve the font files from this site, like the rest of the page. Your browser does not contact a third-party font service to load them.

We do not sell personal information

We do not sell personal information. We do not share it for cross-context behavioral advertising. The signup handler writes the record to BETA_SIGNUPS and sends the signup details to service providers we use to run the beta and follow up, such as a customer relationship management tool and internal signup notifications. Those providers process them on our behalf. Paid checkout sends the plan and the server id to our payment processor, and the payment processor sends us the invoice and subscription events named above.

Hosting and content delivery

Our hosting and content delivery provider is our host and processor. It serves the website. Its key-value storage holds the signup records and the license records. The country value is a header that provider attaches to the request. That provider processes requests to the site, including IP addresses, in order to host it. We do not write that IP address into the signup record or the license record.

How long we keep it

We keep a signup until you ask us to delete it. Email hello@trybaton.dev and tell us which address to delete. We will delete that BETA_SIGNUPS record. We keep a license record while the subscription exists and after it ends, until you ask us to delete it. Name the email or the subscription id in that note. We may keep information when the law requires us to keep it.

GDPR and CCPA

If the GDPR applies to you, you may ask to access, correct, delete, or export your personal information, and you may object to or restrict certain processing. You may also complain to a supervisory authority.

If the CCPA applies to you, you may ask us to know, delete, or correct the personal information we hold about you, and you may opt out of the sale or sharing of personal information. We do not sell personal information, and we do not share it for cross-context behavioral advertising. We will not discriminate against you for exercising these rights.

To use any of these rights, email hello@trybaton.dev. We may need to confirm that you control the address on the signup.

Children

The website and Baton are not for children under 16. We do not knowingly collect personal information from anyone under 16. If you believe we have a signup for a child under 16, email hello@trybaton.dev and we will delete it.

Changes

We may update this policy. We will post the new version on this page and change the date above.

Contact

Solvely LLC
hello@trybaton.dev

The Terms of Service are the agreement for the website and the software.