What we collect
Smart Scout stores the minimum account and public game data required to power scouting, saved views, watched clans, and verification.
We collect account details needed to run the app, plus public Clash Royale player and clan information returned through authorized API access. That includes identifiers, profile attributes, roster information, shortlist activity, and saved scouting views. If you sign in with Discord, we also receive the verified email address Discord has on your account so we can create or match your Smart Scout user.
We do not ingest private chat, device-level surveillance data, or unrelated personal content. Data collection is limited to what is required for the product workflows visible inside Smart Scout.
Smart Scout is not directed at children. You must be at least 13 years old (or the minimum digital-consent age in your country, if higher) to create an account, and we do not knowingly collect account data from anyone younger.
If you send feedback, we store the message, an optional email when you are signed out, the page path, your account id when you are signed in, and the browser user agent. We keep that feedback until the team deletes it.
How platform data is used
Public Clash Royale data is used to support search, imports, watchlists, recent changes, and clan recruitment decisions inside the product.
Smart Scout relies on authorized API access to retrieve player and clan data that powers discovery, filtering, watchlists, and change tracking. We process that information to help clan leaders and co-leaders identify prospects, monitor movement, and keep scouting records current.
The data is used to operate Smart Scout features, not to build unrelated advertising profiles or resell private behavioral intelligence.
Verification and security
Verification uses temporary ownership signals and role-based access so clan administration stays controlled inside the real app.
Clan verification uses temporary ownership codes and, where necessary, internal administrative review to confirm control of a clan. Player-tag subscriptions use public game data only and do not verify ownership of a player tag. Those checks are designed to validate clan access without exposing private account credentials to other users.
Access to account features is governed through application permissions and protected authentication flows. Verification data is processed only for trust, ownership, and moderation workflows.
Billing and account operations
Payments are handled by Stripe. Smart Scout never sees or stores your full card details.
Paid subscriptions are processed by Stripe, which handles checkout, card storage, and recurring billing. Smart Scout stores only the operational references it needs: your Stripe customer and subscription identifiers and the current plan state. Never your card number.
We use that data to keep the service running, enforce plan access, and support account administration. We do not present billing information as public scouting data.
Third-party services
Supabase, Stripe, Resend, Discord, PostHog, Sentry, Cloudflare, and the official Clash Royale API each receive the data listed below.
We share data with service providers so they can run parts of the product. The table lists what each one receives, why, and where.
| Provider | Data | Why | Where |
|---|---|---|---|
| Supabase | Account email and authentication data, profile and scouting records, Discord connection tokens for accounts that connect Discord, rate-limit records that can include an IP address, and feedback you send (message, optional email, page path, account id, user agent). | Database and authentication. | Supabase, production project in eu-west-1 (Ireland). The project URL is the NEXT_PUBLIC_SUPABASE_URL setting. |
| Stripe | Your account email and user id when a Stripe customer is created. Card details are entered on Stripe's pages. Smart Scout stores the Stripe customer id, subscription id, and plan state. | Checkout, subscriptions, and the billing portal. | Stripe Payments Europe Ltd (Ireland), with transfers to Stripe, LLC in the United States. Checkout and the billing portal use checkout.stripe.com and billing.stripe.com. |
| Resend | The recipient address and the email body. That covers account and Scout emails, contact-form messages, which include the name, reply address, message, submitter IP, and the signed-in account id and email when someone is signed in, and feedback emails, which include the message, page path, user agent, and the signed-in account id and email, or a signed-out note plus any optional email. | Deliver those emails. | Resend, https://api.resend.com. The smart-scout.app sending domain is in eu-west-1 (Ireland). |
| Discord | Discord user id, username, and the verified email Discord returns for sign-in. For notifications you turn on, message content goes to a direct message or to a channel webhook Discord creates. | Sign-in and the optional alerts you choose on Account. | Discord Inc., with servers in the United States. Discord's privacy policy also names Discord Netherlands BV as the controller for people in the EEA, and says information may be stored in other countries. API host https://discord.com/api/v10. |
| PostHog | After Accept analytics: page views, page leaves, and PostHog's default autocapture, including rage clicks. Choosing Accept analytics also sends PostHog's $opt_in event. The app sends page views itself because capture_pageview is false. Page leaves use capture_pageleave set to true. Session recording is off (disable_session_recording is true). Heatmaps, dead clicks, exception autocapture, performance capture, and replay console logs are off in the browser init. Console log autocapture is set off in that init, and advanced_disable_flags skips the project remote config that would otherwise turn it on. Person profiles are identified_only. After Accept analytics, a signed-in browser calls identify with the account id only, and with no email or name, so those browser events use the same account id as signed-in server events. PostHog then processes a person profile for that account. Signed-out browser events stay on the anonymous browser id and do not call identify. Signing out calls reset and returns the browser to an anonymous id. Choosing Essential only calls reset and deletes PostHog storage. Those browser calls go through /ingest on this site. That proxy removes the Cookie header and forwards the visitor IP in X-Forwarded-For. The production PostHog project discards that forwarded IP (anonymize_ips is on). Server-side events for signup, role, Scout match view, Scout run, Discord sign-in, and Discord delivery still run if you choose Essential only. Clan verification, Scout creation, and feedback_submitted are sent only after you accept analytics. feedback_submitted records whether a rating was given, the rating when present, whether the account is signed in, a message length bucket, and the page path. It does not include the message, an email address, an IP address, or a user agent. Signed-in server events use the account id. Signed-out feedback_submitted uses the browser analytics id when that id is a short safe string, and a new random id for that request when it is missing or invalid. Discord sign-in before an account exists uses a new random id for that request. The server payload adds the event name, operational properties such as role or a delivery error code, and $lib set to smart-scout-server. | See which product flows are used and whether delivery works. These events are not used for advertising. | EU ingest https://eu.i.posthog.com (the code default and the production Worker variable NEXT_PUBLIC_POSTHOG_HOST). Browser traffic is proxied through this site at /ingest. |
| Sentry | Error reports from the browser and the server. The Cloudflare Worker runs the server init. Those reports run whether or not you accept analytics, and they do not write device storage. After Accept analytics, Session Replay can record a session when an error happens, and browser performance traces start. Server performance traces are off. Replays of ordinary browsing are off (replaysSessionSampleRate is 0). Replay masks all text and blocks all media. This SDK has no sendDefaultPii option. dataCollection is set on the client, server, and edge inits: userInfo is false, cookies is false, httpHeaders is false, urlQueryParams is false, and httpBodies is []. That turns off user info, cookies, HTTP headers, URL query strings, and HTTP request and response bodies. beforeSend, beforeBreadcrumb, and beforeSendSpan remove event.user, except an id already on the event when that id is not an email or an IP address, and they remove request.cookies, request.headers, request.query_string, and request.data. The query string is removed from the request URL. beforeSendTransaction is not registered, because this SDK's default trace lifecycle is stream and that callback is ignored. Sentry still receives the error, the request method, and the URL path. Browser trace envelopes set IP and user-agent inference to never because userInfo is false. | Find and fix faults. | Sentry, EU (de.sentry.io). The production DSN host is ingest.de.sentry.io. Browser events are tunneled through this site at /monitoring. |
| Cloudflare | The HTTP request used to serve the site, including the IP address and cookies the browser sends. Worker logs are stored because observability is enabled in wrangler.jsonc. | Host the application. | Cloudflare Workers service smart-scout, on smart-scout.app and www.smart-scout.app. No placement region is set in wrangler.jsonc. |
| Supercell (Clash Royale API) | Public player and clan records requested by tag. | Search, imports, watchlists, and recruitment features. | The base URL is the CLASH_ROYALE_API_BASE_URL setting. The sample configuration is https://api.clashroyale.com/v1. The proxy notes say production should use https://cr-api.rorystandley.com/v1, a first-party proxy on a Hetzner server that forwards to the official API. The live value is not committed in the repository. |
Discord is used for sign-in and for optional notifications. If you continue with Discord, we store your Discord user id and username so we can sign you in and send personal alerts as direct messages. If you attach a clan channel, Discord creates a webhook for that channel and we send Scout or notification content there. You control those destinations from Account and can disconnect them at any time. Match and recruitment data is sent only to destinations you chose. We do not sell personal data or share it with advertisers.
Retention and requests
Account data is kept only while your account exists. You can delete your account and its data yourself from the account page at any time.
Cached scouting records, shortlist entries, notifications, and saved views may remain available so clans can maintain continuity in recruiting and account history. Account-level data is retained only while your account exists; public Clash Royale data cached from the official API is refreshed or expires on a rolling basis.
You can permanently delete your account at any time from the Delete account control on your account page. Deletion removes your profile, saved views, shortlists, watched clans, subscribed player tags, scouts, and notifications, and cancels any active subscription. Deletion is immediate and cannot be undone.
Feedback is kept until the team deletes it. Deleting your account removes your account id from those rows. The message stays until the team deletes it.
For a copy of the data associated with your account, or any other data request, use the contact form and send from the address on your account so we can verify ownership. Requests are reviewed in the context of account ownership, verification, and platform obligations.