Privacy Policy

Last updated: 2026-10-02  |  Effective date: 2026-10-02

1. Who We Are and How to Contact Us

Cobalt ("Cobalt", "we", "us", "our") is a hosted visual moodboard service operated at app.cobalt.photos (marketing site cobalt.photos). The data controller responsible for your personal data is:

Jakub Ludwig, IČO 88711111
U Obory 1004, 675 71 Náměšť nad Oslavou, Czech Republic
Sole trader (OSVČ / podnikající fyzická osoba).
Contact for privacy matters: [email protected]

For any privacy enquiry, data-subject request, or complaint, write to the address above. We will respond within one month of receiving your request (extendable by up to two further months for complex or numerous requests, with notice to you), as required by GDPR Art. 12(3).

2. Scope

This policy applies to personal data we process when you access or use Cobalt — when you sign in, create and store content, use public share links, view or contribute to a shared board, contact us for support, or subscribe to a paid plan. It does not cover third-party sites linked from boards, or the practices of an AI provider you choose to connect (see Section 5).

3. Personal Data We Collect

3.1 Account Data

You can create an account with "Sign in with Google" (Google OAuth) or with your email address and a password. When you sign in with Google, Google provides us the data you authorise: your email address, display name, profile picture URL, and Google account identifier (Google id). We do not receive or store your Google password. When you sign up with email, we store your email address, the name you enter, and a one-way hash of your password (never the password itself), and we send you an email to confirm the address. In both cases we assign you an internal user ID and store your account creation date, plan/subscription tier, and storage usage.

3.2 User Content

You may upload images (which can include photographs of people) and create notes, hyperlinks, board layouts, and column structures. We store this content in Google Cloud object storage (see Section 7). You are the primary party responsible for ensuring uploaded content complies with applicable law, including obligations arising from images of identifiable individuals (see Section 12).

3.3 Share-Link and Visitor Data

When you create a public share link we record its creation time and the permissions you set (view-only or contributor). When someone accesses a share link, our servers and our CDN (Cloudflare) process the visitor's IP address, request metadata (browser type, referrer), and a view-count increment. We do not build persistent profiles of anonymous visitors. Anonymous visitors are data subjects of Cobalt in their own right (not only of the board owner); we process their connection data on the basis of our legitimate interest in delivering and securing the Service (see Section 4).

3.4 Contributor Content

If you enable "contributor" access on a share link, anyone with the link can add images, notes, or comments without an account. We store the submitted content and a timestamp. Where contributed content contains personal data, both Cobalt and the board owner have roles: Cobalt is the controller for hosting and securing the platform, while the board owner determines what is collected on their board and is responsible for that content under our Terms. We provide a route for affected individuals to exercise their rights (see Section 12.1).

3.5 Support Communications

If you email us, we retain your email address, the content of your message, and follow-up correspondence for as long as reasonably necessary to handle your query and a limited period thereafter.

3.6 Payment and Billing Data

Paid subscriptions are sold through our Merchant of Record, Polar, which acts as the seller of record and collects and processes your billing details, payment method, and tax data directly. We do not receive or store your full card number or bank details. From Polar we receive a customer/transaction reference and your subscription status, plan, and billing-period dates.

3.7 Authentication Tokens, Cookies, and Similar Technologies

To keep you signed in and to secure sign-in, we use a small number of strictly necessary technologies (an authentication token stored in your browser's local storage, a short-lived sign-in security cookie, and a cookie that remembers your cookie-banner choice). For analytics we use Umami, a privacy-friendly, cookieless analytics tool that we host ourselves (no third-party analytics processor). It sets no cookies, collects no personal data, and performs no cross-site tracking (aggregate, anonymous usage counts only), so it requires no consent. Advertising cookies are set only if you accept them in our cookie banner (Section 3.8). All of these are described in full in our separate Cookie / GDPR Consent Notice.

3.8 Advertising and Marketing Cookies (Only With Your Consent)

To measure our advertising, we may use advertising pixels from Meta (Facebook and Instagram), Google (Google Ads and Google Analytics 4), TikTok and Reddit on cobalt.photos and app.cobalt.photos. They are off by default. They load, and set or read cookies, only after you accept them in our cookie banner. If you reject them or don't make a choice, they don't load.

If you accept, these pixels are used to:

The data involved is a pseudonymous cookie identifier, the ad click id from the link you followed (if any), the pages you view on our sites, the conversion events above (for a purchase, the plan and its price), your IP address, and browser and device information. We do not send your boards, images or other content to these providers.

ProviderTypical cookiesTypical lifetimeProvider's privacy policy
Meta Pixel
(Meta Platforms Ireland Ltd.)
_fbp; _fbc (only after you click a Meta ad) About 90 days, renewed when you return (approximate) facebook.com/privacy/policy
Google Ads and Google Analytics 4
(Google Ireland Ltd.)
_gcl_au; _gcl_aw (after a Google ad click); _ga; _ga_<ID> _gcl_au, _gcl_aw: 90 days; _ga, _ga_<ID>: 2 years policies.google.com/privacy and how Google uses data from partner sites
TikTok Pixel
(TikTok Technology Limited)
_ttp; ttclid (after a TikTok ad click); ttcsid, ttcsid_<ID> 13 months from last use tiktok.com/legal (EEA privacy policy)
Reddit Pixel
(Reddit, Inc.)
_rdt_uuid About 90 days (approximate) reddit.com/policies/privacy-policy

Cookie names and lifetimes are set by each provider and can change. The Google and TikTok lifetimes are those published in the providers' own documentation; those marked "approximate" are typical values, not a figure the provider guarantees. Some browsers (for example Safari) shorten them. Our Cookie Notice keeps the current list.

Who is responsible. Each provider processes this data under its own privacy policy, linked above. For collecting the data on our pages and sending it to the provider, the provider and Cobalt can be joint controllers (Meta, for example, provides a controller addendum for this). For their own purposes, such as delivering and measuring ads and improving their services, the providers act as independent controllers. Where a provider only processes data on our behalf (for example Google Analytics), it acts as our processor. These providers may process the data outside the EEA, notably in the United States (see Section 8).

Legal basis and withdrawal. The legal basis is your consent (GDPR Art. 6(1)(a) and, for storing or reading information on your device, § 89(3) of Act No. 127/2005 Coll.). You can withdraw it at any time, as easily as you gave it, through "Cookie settings" in the footer of every page on cobalt.photos. Withdrawal does not affect processing that happened before it.

Your choice itself is stored in a cookie named cobalt_consent for 6 months. It is strictly necessary: it only records whether you accepted or rejected advertising cookies, so we can respect that choice without asking on every page.

3.9 Campaign Parameters Saved at Sign-up

If you arrive at our sign-up page through a link that carries campaign parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content), an ad click id (gclid, gbraid, wbraid, fbclid, ttclid, rdt_cid, msclkid, li_fat_id or twclid) or a referral code (ref), we save the first set of these values with your new account. We use them only to measure which campaigns and sources bring sign-ups. No cookie is used for this: our marketing pages pass the values along in the links to the app, and they are saved once, when you create your account.

The legal basis is our legitimate interest in knowing which of our marketing works (Art. 6(1)(f)); the values describe how you found us, not what you do in Cobalt. You may object under Art. 21. They are kept with your account and deleted with it (Section 9).

4. Purposes and Legal Bases (GDPR Art. 6)

PurposeData usedLegal basis (GDPR Art. 6)
Create and maintain your account; authenticate you via Sign in with Google or email and password Email, display name, profile picture, Google id (Google sign-in), password hash (email sign-up), internal user ID Art. 6(1)(b) — performance of a contract
Provide and operate the Service (store and display boards, images, content) User Content, uploaded images Art. 6(1)(b) — performance of a contract
Enable and serve public share links to viewers and contributors you invite Share-link metadata, view counts, contributor content Art. 6(1)(b) — performance of a contract (for you, the board owner)
Capture connection data of anonymous share-link visitors; security and abuse prevention; server/access logging IP address, request metadata, server and security logs, session data Art. 6(1)(f) — legitimate interests in delivering, securing, and protecting the Service against fraud and abuse. Balancing test documented internally (data minimised, short retention, no profiling); you may object under Art. 21.
Provision and manage paid plans; reconcile subscription status from Polar Customer/transaction reference, subscription status, plan, period dates Art. 6(1)(b) — performance of a contract
Respond to support requests Support email correspondence Art. 6(1)(f) — legitimate interest in helping users (or Art. 6(1)(b) where your request concerns the contract)
Enforce storage quotas; communicate plan limits and the over-quota grace window Account data, storage-usage metrics Art. 6(1)(b) — performance of a contract
Keep accounting and tax records Billing reference and account data Art. 6(1)(c) — compliance with a legal obligation (Czech accounting/tax law)
Analytics / service improvement (Umami — first-party, cookieless) Aggregate, anonymous usage statistics only (e.g. page-view and referrer counts); no cookies, no personal data, no cross-site tracking Art. 6(1)(f) — legitimate interest in understanding aggregate usage to improve the Service (privacy-friendly, cookieless analytics; no consent required)
Measure our ad campaigns and build ad audiences with advertising pixels, only if you accept them (Section 3.8) Cookie identifiers, ad click ids, pages viewed, conversion events (sign-up, purchase), IP address, browser and device data Art. 6(1)(a): consent, which you can withdraw at any time via "Cookie settings"
Measure which campaigns and sources bring sign-ups (Section 3.9) Campaign parameters (utm_*), ad click ids and referral code from the sign-up link, linked to the new account Art. 6(1)(f): legitimate interest in knowing which of our marketing works; you may object under Art. 21
Automated decision-making (Art. 22). We do not carry out solely automated decision-making that produces legal or similarly significant effects on you. Quota enforcement is a simple rule-based limit and never deletes your data.

5. AI Integration (MCP / Access Token)

Cobalt offers an optional integration that lets you connect an external AI assistant (for example, Claude by Anthropic) to your account using an access token you generate in the Service. When enabled, the assistant can read and write boards on your behalf, strictly according to your instructions.

We do not send your data to AI providers on our own initiative. When your connected assistant requests board data, our servers transmit that data to the assistant only in response to your token-authorised request. In that flow the AI provider receives the personal data contained in the boards you expose to it; you decide the scope of access, and you should review the AI provider's own privacy policy, which may involve a transfer to a provider outside the EEA. We don't choose or instruct the AI provider: you do, under your own agreement with it. The legal basis for this feature is Art. 6(1)(b) (the integration you chose to activate).

6. Sharing and Disclosure

We do not sell personal data. We disclose personal data only:

7. Sub-processors

We rely on the following service providers. Those acting as our processors are bound by a data-processing agreement (DPA), and where data leaves the EEA we rely on the transfer mechanism shown for each provider:

Sub-processorRoleData processedLocation / transfer basis
Polar
(Polar Software, Inc., USA)
Merchant of Record / seller of record; payment processing, invoicing, EU VAT Billing name, email, billing address, payment method, tax data (collected by Polar directly), transaction reference United States and other countries outside the EEA. EU Standard Contractual Clauses (Module 2) under the Polar Data Processing Addendum; for the billing data it collects as seller, Polar also acts under its own privacy policy.
Google Cloud Platform
(Google Cloud EMEA Ltd / Google Ireland Ltd / Google LLC)
Application hosting (compute), object storage for uploaded content, database backups, and our self-hosted Umami analytics (no third-party analytics provider) All User Content, uploaded images, account data, application and security logs EU: Google Cloud region europe-central2 (Warsaw, Poland) for the server, uploaded files and backups. Google Cloud EMEA Limited acts as our processor under the Google Cloud Data Processing Addendum, which also covers any access from outside the EEA.
PostgreSQL database on a Google Cloud VM Primary application database (accounts, board metadata, subscription status, the storage ledger) Account data, board/element metadata, subscription and usage records (not card data) Runs on our Google Cloud server in the same EU region, europe-central2 (Warsaw, Poland); backups are kept in a Cloud Storage bucket in the same region.
Cloudflare, Inc. CDN, DNS, DDoS/WAF protection, delivery of the marketing site and app (Cloudflare Pages), and Email Routing (receives mail sent to @cobalt.photos addresses and forwards it to our inbox) Visitor IP addresses, HTTP request metadata; TLS termination at the edge; incoming support emails in transit Global edge network, US parent. Cloudflare, Inc. is certified under the EU-U.S. Data Privacy Framework, with Standard Contractual Clauses as fallback under the Cloudflare Customer DPA.
Google (Google Ireland Ltd / Google LLC) "Sign in with Google" (OAuth) identity provider Email, display name, profile picture URL, Google account id (received at sign-in) Google Ireland Limited for users in the EEA; transfers to Google LLC in the United States are covered by Google LLC's certification under the EU-U.S. Data Privacy Framework.
Mailtrap
(Railsware Products Studio LLC, USA)
Sending transactional email (sign-in, address confirmation, billing and notification emails) Recipient email address and name, email content, delivery status United States (Mailtrap runs on AWS and Google Cloud). Railsware Products Studio LLC is certified under the EU-U.S. Data Privacy Framework, with Standard Contractual Clauses as fallback under the Mailtrap DPA.
Google (Gmail)
(Google Ireland Limited / Google LLC)
Support and privacy inbox: mail sent to @cobalt.photos addresses is forwarded here, and we read and answer it from this mailbox Sender email address, message content and our replies Google may process mail outside the EEA; transfers to Google LLC are covered by its certification under the EU-U.S. Data Privacy Framework.

Web fonts. Pages on our marketing site (cobalt.photos) load their fonts from Google Fonts (fonts.googleapis.com and fonts.gstatic.com, operated by Google). When such a page loads, your browser sends Google your IP address, its user agent and the address of the page requesting the font. Google states that the Google Fonts API does not set cookies. Google may process this data outside the EEA; transfers to Google LLC are covered by its certification under the EU-U.S. Data Privacy Framework.

Bot protection at sign-up. The e-mail sign-up form uses Cloudflare Turnstile (Cloudflare, Inc.) to tell humans from bots, which processes your IP address and browser signals for that purpose only, based on our legitimate interest in preventing abuse (GDPR Art. 6(1)(f)).

We may change sub-processors; how we notify you is described in our separate Data Processing Addendum (DPA).

8. International Data Transfers

Our primary hosting, database, uploaded files and backups are on Google Cloud in the EU, in the europe-central2 region (Warsaw, Poland). Some sub-processors (notably Cloudflare, and Google's identity services, and an AI provider you connect) may process data outside the European Economic Area (EEA), and so may the advertising providers in Section 3.8 if you accept advertising cookies. Where personal data is transferred outside the EEA, we rely on an appropriate safeguard for the specific recipient:

The safeguard we rely on for each provider is shown in the table in Section 7, and for the advertising providers in Section 3.8. You may request a copy of the applicable safeguards by contacting [email protected].

9. Data Retention

CategoryRetention
Account and profile data Kept while your account exists. On deletion, deleted or anonymised within 90 days, except where law requires longer retention.
User Content (boards, notes, images) Kept while your account is active. Deleted from live systems within 90 days of account deletion; backups purge within a further 30 days. Content is never automatically deleted because of an exceeded storage quota — the account becomes upload-restricted instead, with a 30-day informational grace window.
Share-link metadata and view counts Deleted with the associated board or account.
Contributor content Kept as part of the board; deleted when the board owner deletes the board or closes their account, subject to the 90-day cycle.
Support emails Kept for up to 3 years after a thread is closed, or longer if needed for a legal claim.
Accounting / tax records Polar retains billing records per its own policies as seller of record. We keep our transaction reference and accounting records for the period required by Czech accounting and tax law.
Security and server logs (incl. IP addresses) Kept for a short period for security and troubleshooting, then deleted or anonymised.
Advertising cookies (only with your consent) Kept in your browser for the lifetimes listed in Section 3.8, unless you delete them sooner. Data the providers receive is kept under their own retention policies.
Your cookie-banner choice (cobalt_consent) 6 months, after which the banner asks again.
Campaign parameters saved at sign-up Kept with your account; deleted or anonymised together with your account data.

10. Security

We apply technical and organisational measures proportionate to the risk, including:

No system is perfectly secure. If a personal-data breach is likely to result in a risk to your rights and freedoms, we will notify the Czech supervisory authority (ÚOOÚ) within 72 hours of becoming aware, and affected individuals without undue delay where required.

11. Children

Cobalt is a paid service intended for adults and is not directed at children. For data-protection consent purposes, the relevant age of digital consent in the Czech Republic is 15 years, as set by § 7 of Act No. 110/2019 Coll. (lowering the GDPR Art. 8 default of 16). We do not knowingly process personal data of children below the applicable age of digital consent in their country. Separately, our Terms of Service set a minimum contractual account age of 16 (with full legal capacity, generally 18, required to purchase a paid plan). If you believe a child has provided us personal data, contact [email protected] and we will delete it promptly.

12. Images Depicting Identifiable People

Photographers using Cobalt may upload images depicting identifiable individuals. Ordinary photographs of people are personal data, but mere storage and display of opaque image files does not, by itself, amount to processing of biometric special-category data under GDPR Art. 9. We do not perform facial recognition or any automated biometric processing of images.

As the uploader, you are responsible for ensuring that:

12.1 Rights of People Depicted in Content (Non-Users)

If you are not a Cobalt user but believe a board (for example a public share link) contains your image or other personal data about you, you can contact us at [email protected] to exercise your rights — including objection and erasure. We will act on such requests and, where appropriate, work with the board owner who uploaded the content. This route exists specifically so that people depicted in uploaded content, who never registered with Cobalt, can still exercise their data-protection rights.

13. Your Rights Under GDPR

As a data subject in the EU/EEA you have the right to:

You can also do two of these yourself in the app: Settings → Privacy & data → Export my data downloads a JSON file with your account, boards and share links, and Delete account on the same screen permanently deletes your account and its data.

To exercise a right, contact [email protected]. We respond within one month (extendable as noted in Section 1). We may need to verify your identity proportionately before acting (Art. 12(6)).

Right to complain. You may lodge a complaint with the Czech supervisory authority:

Úřad pro ochranu osobních údajů (ÚOOÚ)
Pplk. Sochora 27, 170 00 Praha 7, Czech Republic
www.uoou.cz

You may also complain to the supervisory authority where you live or work.

14. Changes to This Policy

We may update this policy. For material changes we will notify registered users by email and update the "Last updated" date above. Continued use after the effective date indicates you have read the update. Where a change introduces new processing that requires your consent, we will obtain that consent affirmatively — we do not treat continued use as consent to new processing for which consent is the lawful basis.

15. Contact

Privacy enquiries, subject-access requests, and other data-protection matters:
Jakub Ludwig, IČO 88711111
U Obory 1004, 675 71 Náměšť nad Oslavou, Czech Republic
[email protected]


© 2026 Jakub Ludwig — Cobalt (cobalt.photos). Last updated: 2 October 2026.

Home  ·  Terms  ·  Cookies  ·  DPA  ·  Refunds  ·  Cookie settings