Privacy & developer policy
Last updated: August 24, 2026
This page describes how bidtorank.dev handles data and how we use third-party APIs. It supplements our terms of service.
What we collect
- Listing data — the https URL you submit, fetched title and one-liner, sponsorship total, rank, click count, and timestamps when the listing goes live.
- Payment metadata — Stripe checkout session ids, payment status, and charge amounts. Card data is handled entirely by Stripe.
- Email (optional) — if you provide one at Stripe checkout or use account features, we store it to associate listings and eligible session cookies. Email associates rows; it is not authentication by itself.
- Usage signals — anonymous visitor ids in browser storage for online/visitor counts; an httpOnly cookie for click deduplication; signed session cookies if you use /account. Optional aggregate browser analytics records only fixed page, sponsorship-funnel, Checkout handoff/return, and outbound-intent categories described below.
- Server logs — standard request logs (IP, user agent, timestamps) for security, rate limits, and debugging.
How we use data
- Display the public leaderboard and analytics pages.
- Fetch public title and description metadata from a submitted URL for previews and listing copy.
- Process payments and mark listings live after Stripe confirms payment.
- Count outbound clicks through /go links and filter obvious bots.
- Understand aggregate public navigation and sponsorship-funnel reliability.
- Operate the site, prevent abuse, and improve reliability.
What we do not do
- We do not sell personal data.
- We do not use your listing to send unsolicited email.
- We do not read private X/Twitter user data through the X API.
- We do not send listing URLs or copy, emails, sponsorship amounts or ranks, payment or Checkout identifiers, cookies, application sessions, free-form text, or private records to browser analytics.
Third parties
- Stripe — payment processing. See Stripe Privacy.
- Listed websites — when you request a preview or submit a URL without listing copy, our server may fetch that website's public HTML. The website may receive our server IP address, metadata-fetch user agent, and request time. Preview results may be held briefly in a bounded in-memory cache. Avatars are generated locally from the hostname: viewing board pages does not load favicons from listed websites or a third-party favicon provider. Choosing an outbound listing link contacts its destination in the normal way.
- Hosting — the app runs on our infrastructure (Docker on a VPS). Database hosted alongside the application.
- PostHog Cloud EU (optional) — when configured, the browser sends only closed aggregate event categories to PostHog's EU ingestion service. The SDK is configured for always-cookieless capture, no person profiles, no persistence, no session recording, no autocapture, no automatic page views, no referrer or campaign capture, no GeoIP enrichment, and no feature-flag or survey requests. Do Not Track, Global Privacy Control, bots, and automation are stopped before the SDK loads. A network service can observe connection metadata while receiving a request; the required PostHog project setup uses Cookieless server hash mode to derive a rotating anonymous identifier and strip the IP before event processing, with the Discard IP data transformation enabled as an additional project-side control.
- X (Twitter) — see Developer policy below.
Cookies & local storage
btr_visitor_id(localStorage) — counts unique visitors for the live stats pill.btr_click(httpOnly cookie) — limits duplicate click counting per browser.br_session(httpOnly cookie) — optional signed 30-day session issued only after an ownership-eligible paid Checkout is verified and settled. It authorizes only that Checkout's exact mapped listing. Public same-URL contributions never receive one.- An eligible Stripe Checkout session id is a replayable bearer that can restore account access. Keep it private. There is no listing-and-email recovery fallback.
- Theme preference may be stored by the theme toggle in local storage.
- PostHog browser analytics does not write PostHog cookies, local storage, or session storage, and it does not read or reuse the site values above. The rest of this site is therefore not described as cookieless.
Retention
Live listings and payment records are kept for as long as the directory operates, because listings are permanent by design. Server logs rotate on a short schedule. You may request deletion of personal data (such as email) where it is not required to operate your listing; the public listing row itself may remain if you keep an active paid URL on the board.
Your choices
Do not list on the board if you do not want your URL, hostname, sponsorship total, and rank displayed publicly. Block cookies in your browser if you do not want click or visitor tracking. Do Not Track or Global Privacy Control disables optional PostHog browser analytics before its configuration is fetched. The site still works for browsing and sponsorship when analytics is disabled or fails.
Developer & X API policy
bidtorank.dev uses the X API only to post one automated announcement on our official account for each completed listing or top-up payment. Each post includes the public listing URL and the rank reached by that payment. Example: "welcome example.com just took spot #3 on bidtorank.dev" followed by the listing URL.
- Write-only posting from our account — no reading timelines, DMs, or private user data.
- No automated follows, likes, reposts, or replies.
- No posting on behalf of users except factual announcements tied to completed checkout.
- API credentials are stored server-side and never exposed to clients.
- If posting fails, the listing still appears on the website.
- X does not currently expose an official OAuth endpoint to pin or unpin Posts. Rank #1 announcements may be pinned manually until X provides that capability; non-#1 announcements do not change the profile pin.
- We comply with the X Developer Agreement and Developer Policy.
Agents and developers integrating with our public HTTP API should read /skill.md and respect the same listing rules and rate limits as human users.
Contact
Privacy requests and developer questions: hello@bidtorank.dev.