Draft, under legal review. This text is not in force and may change before launch.
Privacy Policy for Something
Draft. For review by BAARS DESIGN and its lawyer before publication. Not legal advice. Text in [square brackets] is a placeholder. “Decision” lines need an answer from the owner. “Lawyer” lines need a legal check. Retention periods are proposals. Several services named below are planned and not yet created (see “Status” in each section); publish only once the facts match.
This policy explains what personal data BAARS DESIGN processes when you use Something, the website, and our support channels, and what your rights are.
The short version: Something runs on your Mac. Your project files, code, prompts and AI responses stay there or go directly to services you chose. What reaches us is your account, your plan, your team membership, and the messages you send us.
1. Who is responsible
The controller is:
- BAARS DESIGN (enkeltpersonforetak), organisation number 938 054 037, Norway
- Owner: Ronald Baars
- Email: [privacy@baars.design or something@baars.design]
- Postal address: see the Company information page
We have no data protection officer; the law does not require one for a business of this size and kind. Write to the email address above for anything about your data.
Decision: the published privacy contact address. Lawyer: GDPR Article 13(1)(a) requires “the identity and the contact details of the controller”. This draft gives the email here and the postal address by link to the imprint, so the home address appears on one page only. Confirm a link is enough, or repeat the address here.
2. What this policy covers
- The Something desktop app for macOS.
- The website [something.baars.design] and its contact form.
- Accounts, teams and billing.
- Email you send us and email we send you.
It does not cover services you connect to through the app under your own account: GitHub, your AI provider, Google or Apple as sign-in providers. Each of those has its own privacy policy, linked in section 8.
3. What stays on your Mac
This section describes data we do not receive. It is here because it is the most important fact about how Something handles data.
Your projects. Project files, code, branches, commits, screenshots, canvases, history, undo
state and the index the app builds of your project are stored on your Mac, in the project folder and
in ~/.something. The app never uploads them to BAARS DESIGN.
Your AI conversations. When you use an AI feature, the app sends your prompt and the relevant
code from your Mac directly to the AI provider you configured (Anthropic, OpenAI or Google, through
their CLI tools or API). Nothing passes through our servers. We cannot see it. Your conversation
threads are stored locally in ~/.something/threads.json.
Your credentials. Your sign-in session, your GitHub token and any AI API keys you enter are stored in the macOS keychain under the service name “Something”. They are never written to a file or sent to us. Plugins cannot read the account or GitHub entries.
Logs. The app writes a log to ~/Library/Logs/Something/main.log and keeps the previous run as
main.previous.log. The log stays on your Mac. We only see it if you choose to send it to us when
asking for help.
No analytics or telemetry. The app contains no analytics, crash reporting or usage tracking code, and sends no usage events to us or to anyone. We checked the source for such code on 2026-10-30 and found none. If this ever changes, we will update this policy and tell you first.
4. What we process, and why
Each row is one processing activity. “Basis” refers to Article 6(1) of the GDPR. Retention periods are proposals marked for decision.
4.1 Account
Status: planned. The sign-in service (Supabase Auth) is built into the app but not yet configured in any released build.
| Data | Email address, display name, sign-in method (Google, Apple or email code), the identifier your sign-in provider gives us for you, the time you signed up and last signed in, your IP address at sign-in. If you use Apple’s “Hide My Email”, we receive a relay address instead of your real one. |
| Purpose | To create and secure your account, to know which plan and organisation you belong to, to contact you about your account. |
| Basis | Article 6(1)(b), contract: we cannot provide an account without this. |
| Where | Supabase Auth, hosted on AWS in Stockholm, Sweden (region eu-north-1), planned. Our own backend database, see 4.3. |
| Retention | For as long as your account exists. Deleted within [30] days after you delete your account, except what we must keep under 4.4. Sign-in IP addresses and times: [90] days. |
4.2 Organisations and teams
Status: planned.
| Data | Organisation name, your role (owner, admin, billing, editor), whether you hold a seat, who invited you and when, invite emails sent by an admin, and an audit log of administrative actions (who changed what and when). |
| Purpose | To run team plans: seats, invites, access control, and an audit trail that business customers need. |
| Basis | Article 6(1)(b) for members who are the customer; Article 6(1)(f), legitimate interest, for processing on behalf of an organisation customer. Where an organisation is the controller for its members’ data, we act as its processor under the Data Processing Agreement. |
| Retention | While the organisation exists and you are a member. Invites expire after [7] days. Audit log: [2 years], with the actor replaced by a pseudonymous id if the person deletes their account. |
4.3 Plan and entitlement
Status: planned.
| Data | Your plan, seat, subscription status, trial status, and a signed entitlement token the app stores in your keychain. The app reports its version and your Mac’s name and platform so we can show you where you are signed in. The backend records counts, such as the number of pull requests sent per seat per month, but never their content. |
| Purpose | To unlock the features of your plan, including offline; to show you your devices; to measure usage per seat for billing and fair use. |
| Basis | Article 6(1)(b), contract. |
| Retention | Device records: [12] months after last seen. Usage counts: [24] months, then aggregated. |
4.4 Billing
Status: planned. BAARS DESIGN is the merchant of record. Stripe processes payments.
| Data | Billing name and address, email, VAT number if you give one, the plan and seats you bought, invoices and receipts, payment status. Your card number is entered on Stripe’s pages and we never receive it; we see the last four digits and the card brand. |
| Purpose | To take payment, issue invoices, calculate tax, handle refunds and failed payments, and meet our tax and bookkeeping duties. |
| Basis | Article 6(1)(b), contract, for taking payment; Article 6(1)(c), legal obligation, for invoices, tax records and bookkeeping. |
| Retention | Accounting records, including invoices, are kept for five years after the end of the accounting year as required by bokføringsloven § 13. We cannot delete these earlier even if you ask. |
Stripe also processes your payment data as an independent controller for fraud prevention and legal compliance, under its own privacy policy (linked in section 8).
4.5 Support and email you send us
| Data | Your email address, name, what you write, any attachments or logs you choose to send. |
| Purpose | To answer you. |
| Basis | Article 6(1)(b) if you are a customer; Article 6(1)(f), legitimate interest in answering enquiries, otherwise. |
| Where | Our own mail server, mail.baars.design, which runs on a virtual server at Oracle Cloud (see subprocessors). |
| Retention | [24] months after the last message in the thread, then deleted. |
4.6 Contact form on the website
Status: planned. The website does not exist yet.
| Data | Name, email, company (optional), your message, the time sent, and your IP address for abuse prevention. |
| Purpose | To answer you. |
| Basis | Article 6(1)(f), legitimate interest in answering enquiries, and 6(1)(b) if the enquiry leads to a contract. |
| Where | Submissions are stored in [the website’s database, provider to be decided] and emailed to us. |
| Retention | Stored copy: [12] months. Email copy: as in 4.5. IP address: [30] days. |
4.7 Transactional email we send you
| Data | Your email address and the content of the message: sign-in codes, invites, receipts, renewal reminders, security notices, changes to terms. |
| Purpose | To run the Service. These messages are not marketing and you cannot opt out of them while you have an account. |
| Basis | Article 6(1)(b), contract. |
| Where | Sent from no-reply@baars.design through our mail server (Oracle Cloud), and, for sign-in codes, from Supabase through the SMTP server we configure (planned to be the same server). |
| Retention | Sending logs: [90] days. |
4.8 Marketing email
Status: not planned at launch.
We send marketing email only with your prior consent, or to existing customers about our own similar products where Norwegian law allows it (markedsføringsloven § 15, third paragraph). Every marketing email has an unsubscribe link. Basis: Article 6(1)(a), consent, or 6(1)(f) within the existing customer exception.
4.9 Auto-update checks
| Data | When an installed copy checks for updates, it fetches the release feed and the update file from GitHub (github.com/the-baaron/something-releases). GitHub sees your IP address and a standard user-agent string. We receive nothing; the feed is a public, static file. |
| Purpose | To deliver updates. |
| Basis | Article 6(1)(f), legitimate interest in keeping the app secure and current. You can turn off automatic checks in [Settings] and use “Check for Updates…” by hand. |
| Retention | None by us. GitHub’s retention is under GitHub’s privacy statement. |
Decision: whether to add a setting to turn off background update checks. Today the app checks whenever it runs from an Applications folder (
docs/RELEASING.md). A visible switch is the cleanest way to make the legitimate-interest basis solid.
4.10 GitHub integration
| Data | The app lists repositories you have given the Something GitHub App access to, and shows your GitHub login. Pull requests are created through your own GitHub CLI. All of this uses your GitHub token, stored in your keychain. The app looks up whether a repository is owned by a person or an organisation to decide whether a paid plan is needed; this lookup uses your token or an anonymous request, never a BAARS DESIGN token. |
| What we receive | Nothing about your repositories. Only counts (section 4.3). |
| Basis | Article 6(1)(b), contract: you asked the app to work with your repositories. |
4.11 Website visits
Status: planned. The website does not exist yet.
The website sets no cookies and uses no analytics. The hosting provider ([Vercel, to be confirmed]) logs requests, including IP addresses, for security and operation, under its own terms. If this changes, we will update this policy before it does.
5. Who receives your data
We share personal data only with the service providers we need to run Something, listed with their roles, locations and transfer mechanisms in the Subprocessor list. In summary:
| Provider | What for | Location |
|---|---|---|
| Supabase (planned) | Account sign-in and user records | Data hosted on AWS in Stockholm, Sweden; Supabase Pte. Ltd is in Singapore; support staff in the US and Singapore |
| Stripe | Payments, invoices, tax | Stripe Payments Europe, Limited (Ireland); data also processed by Stripe, LLC in the US |
| Oracle Cloud | Hosts our mail server | Admin note records the Amsterdam region (eu-amsterdam-1); Oracle is a US company |
| GitHub | Hosts the update feed; receives your IP on update checks | United States |
| Google, Apple | Sign-in providers, if you choose them | Google LLC (US); Apple Distribution International Limited (Ireland) |
| [Vercel, Neon] (under consideration) | Backend hosting and database | EU regions selectable |
| [WorkOS] (planned for Enterprise only) | Single sign-on and directory sync | United States |
We do not sell personal data. We do not share it with advertisers.
We disclose data to authorities only when the law requires it, and we tell you unless the law forbids it.
If BAARS DESIGN is transferred to another company, your data moves with the business and this policy continues to apply until it is changed with notice.
6. Transfers outside the EEA
Norway is in the EEA, so the GDPR applies in full. Some providers process data in the United States or Singapore. For each we rely on one of these mechanisms:
- EU-U.S. Data Privacy Framework (DPF) certification of the US provider. Stripe, LLC states it is certified (Stripe Privacy Center, read 2026-10-30). GitHub, Inc. states it complies with the EU-U.S. DPF (GitHub Privacy Statement, effective 2026-04-27). Google LLC states it is certified (Google “Data transfer frameworks”, effective 2025-08-23).
- Standard Contractual Clauses (SCCs) under Commission Decision (EU) 2021/914, included in the provider’s data processing agreement. Used by Stripe (Data Transfers Addendum), GitHub (DPA, October 2025), Supabase (DPA v1, 2026-08-01, Singapore entity), Apple (Privacy Policy, updated 2025-07-30), and Oracle.
We checked each provider’s own statement on 2026-10-30. We did not verify the entries on the US Department of Commerce DPF list itself because that page requires a browser; the subprocessor list records this. You can ask us for a copy of the clauses that apply.
7. Your rights
Under the GDPR you can:
- Access the data we hold about you, and get a copy.
- Correct data that is wrong.
- Delete your data (“right to be forgotten”). You can delete your account yourself in [Settings > Account] or by emailing us. We keep what the law requires (invoices, section 4.4) and a pseudonymous id in team audit logs.
- Restrict or object to processing based on legitimate interest.
- Export your data in a machine-readable format (JSON).
- Withdraw consent where we rely on it, with effect for the future.
Email [privacy@baars.design]. We answer within one month, as the GDPR requires, and may ask you to confirm your identity first. There is no charge unless requests are clearly excessive.
Complaints. You can complain to the Norwegian Data Protection Authority:
- Datatilsynet, Postboks 458 Sentrum, 0105 Oslo, Norway
- Complaint form (requires ID-porten login) and postal instructions: https://www.datatilsynet.no/om-datatilsynet/kontakt-oss/klage-til-datatilsynet/
- Datatilsynet asks you to contact the company first.
If you live in another EEA country you can complain to your local authority instead.
8. Third parties you connect to yourself
These services receive data from your Mac because you chose to use them. We are not the controller for that processing.
- Anthropic (Claude): https://www.anthropic.com/legal/privacy
- OpenAI (Codex, OpenAI API): https://openai.com/policies/privacy-policy/
- Google (Gemini CLI, Gemini API): https://ai.google.dev/gemini-api/terms and https://policies.google.com/privacy
- GitHub (your account, repositories, pull requests): https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement
- Google sign-in: https://policies.google.com/privacy
- Apple sign-in: https://www.apple.com/legal/privacy/data/en/sign-in-with-apple/
When you sign in with Apple, Apple gives us a unique identifier, your name as you choose to share it,
and either your email address or a relay address if you hide it. When you sign in with Google, Google
gives us your email, name and profile picture under the openid, email and profile scopes.
9. Security
- Your credentials live in the macOS keychain, never in files. Values are passed to the keychain without appearing on a command line.
- All connections from the app to our servers and to third parties use TLS.
- Sign-in uses the system browser with PKCE and a loopback redirect, as RFC 8252 recommends. The app holds no client secret.
- The app’s page never sees a token; the host process answers only “who is signed in”.
- Plugins cannot read the account or GitHub keychain entries.
- Planned for the backend: JWT verification against the provider’s keys, signed webhooks, rate limits,
encrypted backups, and logs that hash email addresses. These are design commitments in
docs/AUTH-AND-BILLING.md§ 10 and are not yet built. - Releases are signed with an Apple Developer ID and notarized. Updates are checked against a SHA-512 hash and the signature before installation.
If we learn of a breach that is likely to put your rights at risk, we will notify Datatilsynet within 72 hours and tell you without undue delay, as Articles 33 and 34 of the GDPR require.
10. Cookies
The website is planned to use no cookies and no analytics. The app is not a website and sets no cookies. If we ever add cookies that need consent, we will ask first and update this section.
11. Children
Something is for professional use. You must be 18 to buy a plan. Norwegian law sets 13 as the age at which a person can consent to an online service themselves (personopplysningsloven § 5). We do not knowingly collect data from anyone under 13. If you think a child has given us data, email us and we will delete it.
12. Automated decisions
We make no decisions about you by automated means that have legal or similarly significant effects. The app’s plan checks (for example, whether a repository belongs to an organisation) decide which features are available, not anything about you as a person.
13. Changes to this policy
We will post changes here with a new date and version. For material changes we will email account holders and show a notice in the app at least 30 days before they take effect. Earlier versions are available on request.
14. Contact
- BAARS DESIGN, organisation number 938 054 037, Norway
- Email: [privacy@baars.design]
- Postal address: see the Company information page
Sources used for this draft (read 2026-10-30 unless stated)
- Controller identity: Brreg Enhetsregisteret API, https://data.brreg.no/enhetsregisteret/api/enheter/938054037
- Local data and keychain:
apps/desktop/src/secrets.ts,accounts.ts,github.ts,packaged.js,updates.js;docs/ACCOUNTS.md,docs/AUTH-AND-BILLING.md,docs/RELEASING.md; contents of~/.somethingon the development Mac - Telemetry check:
grep -rniE "telemetry|analytics|posthog|sentry|mixpanel|amplitude|plausible|gtag|bugsnag|datadog"over the repository’s.ts/.js/.cjs/.mjsfiles, excludingnode_modules. All hits were comments or regexes that classify the user’s own project traffic. No reporting code. - Outbound hosts in app code:
github.com,api.github.com,api.openai.com,generativelanguage.googleapis.com(plus Anthropic via its SDK). No BAARS DESIGN host is contacted by the current build; the backend is planned. - Mail server host:
BAARS DESIGN/admin/accounts-and-services.md(Oracle,eu-amsterdam-1, 144.21.40.114); RIPE RDAP for 144.21.40.114 confirms Oracle as registrant. The region is from the admin note only. - Supabase regions: https://supabase.com/docs/guides/platform/regions (eu-north-1 Stockholm listed); DPA: https://supabase.com/legal/customer-resources/data-processing-addendum (v1, 2026-08-01, Supabase Pte. Ltd, SCCs); subprocessors PDF dated 2026-10-12
- Stripe: Services Agreement (Norway row: Stripe Payments Europe, Limited), DPA (2026-09-28, SCCs 2021/914), Privacy Center (Stripe, LLC certified under the EU-U.S. DPF), Privacy Policy (2026-04-28)
- GitHub: Privacy Statement (effective 2026-04-27; DPF and SCCs), DPA (October 2025). Note: the DPA URL returned HTTP 500 to
curltwice but loaded through the fetch tool. - Google: https://policies.google.com/privacy/frameworks (effective 2025-08-23)
- Apple: https://www.apple.com/legal/privacy/en-ww/ (updated 2025-07-30; Apple Distribution International Limited; SCCs); https://www.apple.com/legal/privacy/data/en/sign-in-with-apple/
- Datatilsynet: https://www.datatilsynet.no/om-datatilsynet/kontakt-oss/klage-til-datatilsynet/; https://www.datatilsynet.no/en/about-us/contact-us/
- personopplysningsloven § 5: https://lovdata.no/dokument/NL/lov/2018-06-15-38
- bokføringsloven § 13: https://lovdata.no/dokument/NL/lov/2004-11-19-73
- markedsføringsloven § 15: https://lovdata.no/dokument/NL/lov/2009-01-09-2