carbs.Back to carbs.

Your data, explained.

Privacy policy

Last updated: 18 October 2026

Who is responsible

Stuart Wilkinson operates carbs. and is responsible for the personal information processed to run this service. For privacy requests, contact carbsdotrun@gmail.com. You do not need an account to use carbs.

Your profile and diary stay on your device

Your first name, body weight, race details, targets, food and drink entries, saved products, shopping choices, previous races and personal notes are stored in browser local storage. This can include health-related information. The app uses these details on your device to calculate and display your plan; it does not send your profile, diary or notes to our servers or to our analytics provider (PostHog). Avoid sensitive details in free-text notes that you would not want someone with access to your device to read.

Storage and backups

Local storage also remembers your theme, analytics choice, tip selections and app preferences. These settings support the features you request. Local data remains until you delete it, clear site data, or your browser removes it; private browsing may remove it when the session ends. Use Profile to export a JSON backup or delete app data. Backups are ordinary files under your control: store them securely and delete unwanted copies. Importing a backup processes it locally. An app cannot erase copies you have exported elsewhere.

Hosting and security

Cloudflare delivers and helps secure the website. When you connect, Cloudflare processes network and request information such as your IP address, requested URL, request time and browser information. This is separate from your local diary. We rely on legitimate interests in providing and securing the service for necessary delivery and security processing. Technical records are retained as needed for these purposes and in accordance with the applicable Cloudflare service and security retention practices. See Cloudflare’s privacy policy for its processing and retention criteria.

Optional analytics

Only if you allow analytics, the app loads PostHog using its EU service. It sends a randomly assigned browser identifier and limited usage events: screens visited, onboarding started or completed, food-logging method, barcode lookup outcome and searches with no results. It does not send the words you search for, food names, quantities, weight, race details, notes or diary contents. Automatic click capture, session recording, surveys and exception capture are disabled. A browser identifier is pseudonymous, not a guarantee of anonymity. Like other network services, PostHog receives connection information such as an IP address when a request reaches it.

Analytics choice and retention

Consent is the basis for optional analytics. Refusing does not prevent use of the app. Change your choice in Profile under Analytics preferences at any time; the app also respects the browser’s Do Not Track setting. Turning analytics off stops future collection but does not automatically delete previously sent events. The project uses PostHog’s free plan, which currently provides one year of event retention; this is not a promise of deletion at an exact date. PostHog says data older than its retention period may be permanently deleted. Request deletion of identifiable analytics data by contacting us. We may need the relevant browser identifier to locate records, so contact us before clearing your browser data if you want help with that. See PostHog’s published retention policy.

Barcode lookup and camera

When you request a barcode lookup, the product barcode is sent directly to Open Food Facts, which also receives the normal connection information for that request. Your profile and diary are not sent. Lookup processing supports the service you request. Camera access requires your browser’s permission; camera frames are processed on your device for barcode detection and are not uploaded by carbs. You can enter a barcode manually instead. See Open Food Facts’ privacy policy.

Fonts, links and messages

The app loads fonts from Google Fonts. Google receives connection information when your browser requests these files; see Google Fonts’ privacy information. Following an Instagram or other external link takes you to a separate service with its own policy. If you email us or send a message, we receive what you choose to share and use it to respond and handle your request. We rely on legitimate interests in answering enquiries and, where applicable, legal obligations. Keep health details out of messages unless necessary. We retain correspondence only as long as needed to resolve the enquiry and meet applicable record-keeping or legal requirements.

Sharing and international processing

We do not sell your personal information or use your diary for advertising. Relevant providers include Cloudflare for hosting and security, PostHog for consented analytics, Google for fonts, Open Food Facts for requested lookups, and email providers for correspondence. PostHog is configured to use its EU endpoints. Other providers may process technical or contact information internationally, including outside the UK or EEA; their applicable contractual safeguards and privacy policies govern those transfers. We may disclose information where legally required. No service can guarantee absolute security.

Your rights

Depending on the circumstances, you can request access, correction, deletion, restriction or portability of personal information we hold, object to processing based on legitimate interests, or withdraw consent. Contact carbsdotrun@gmail.com; we normally respond within one month, subject to lawful extensions. Local-only diary data can be viewed, edited, exported and deleted directly in the app; we do not have a server copy to retrieve. You can complain to the UK Information Commissioner’s Office at ico.org.uk, or your local data protection authority. We do not use your local profile for automated decisions with legal or similarly significant effects.

Children and policy changes

The app is intended for adults and is not designed for children. We will update this page if our data practices change; the date above identifies the current version. Any new use of optional analytics remains subject to the consent required for that use.