Privacy
Privacy policy.
This privacy policy explains how personal data is processed when you use codemmunity. Last updated 2026-09-13.1. Controller and contact
The controller for personal data described in this policy is Michael Reimer, Am Langenbach 10, 48308 Senden, Germany. You can contact us at support@codemmunityhq.com or by phone at +49 176 99773526.
2. Data we process
Depending on how you use codemmunity, we may process:
- Website technical data, such as IP address, browser information, requested pages, timestamps, security logs, and, for an eligible legal page, an IP-derived country code
- Account and authentication data, including your email address, account identifiers, selected sign-in provider, and basic profile information supplied by Google or Apple when you choose that sign-in method. If you choose Apple's Hide My Email option, this includes the private relay address Apple supplies.
- Short-lived pseudonymous security-admission records generated from HMAC-protected email and IP values when a magic-link email is requested
- Membership and billing records, including Stripe customer, subscription, invoice, and entitlement information; versioned checkout confirmations; withdrawal requests and receipts; and refund or payment-dispute records. We do not receive or store your full payment-card details.
- Minimal records showing delivery of protected member resources, such as the prompt and guide identifier, content digest, membership tier, timestamp, and delivery count. These records do not contain the prompt you entered into an AI tool or the content of your own project.
- Transactional-email records, including recipient, subject, legal-message content, delivery status, provider receipt, and timestamps
- Discord connection and access data, including Discord user ID, display-name snapshot, avatar URL snapshot, role and synchronization status, private project-room channel identifiers and lifecycle state
- Messages, files, links, and project context you choose to share in a private Discord project room. The member and authorised Tutor or Team accounts with access to that room can view this material.
- Restricted administrative audit records for staff-role changes and manual Discord reconciliation, including the acting and affected account identifiers, action, and timestamp
- Community, support, application, and account information you choose to provide
3. Why we use data
We process data to deliver the website, authenticate members, administer subscriptions, provide Discord access, answer support requests, prevent fraud or abuse, maintain security, and meet legal obligations. Depending on the activity, the legal basis may be performance of a contract, legitimate interests in operating a secure service, consent where required, or compliance with legal obligations.
When an IP-derived country code is available for a legal page, we use it only to choose that page's default language. We do not use this country code for advertising, analytics, or member profiling.
To protect the magic-link sign-in flow from automated abuse and excessive email sends, we apply short-lived limits using keyed, pseudonymous records rather than storing raw email or IP values in that control. These records are used only for security and abuse prevention.
Checkout confirmations, withdrawal receipts, and protected-content delivery records help us perform and document the membership contract, answer billing questions, prevent misuse, and establish, exercise, or defend legal claims. Their contents are not shared with advertising providers. Optional purchase measurement uses separate consent and attribution records, as described below.
4. Service providers
We use carefully selected technical providers to operate the service. These include Vercel for website hosting and delivery, Supabase for authentication and database infrastructure, Resend for transactional contract and withdrawal emails, Apple and Google as optional identity providers, Stripe for payments and subscription billing, and Discord for the private community and OAuth connection.
Each provider processes data under its own applicable terms and privacy documentation. Depending on the provider and your location, processing may take place outside your country or the European Economic Area. Where required, we rely on an appropriate transfer mechanism or other lawful basis for international transfers.
5. Cookies and local storage
Essential cookies and browser storage are used for secure sign-in, session management, security, and basic service operation. We also remember an optional advertising-measurement choice. Third-party services such as Apple, Google, Stripe, or Discord may use their own technologies when you visit or authenticate with them.
Optional website analytics
In Privacy choices, Accept all allows both the website analytics and ChatGPT ad reporting described below. Reject all declines both, and Save selection saves your individual choices. Optional purposes are not preselected for new visitors. Adding this button does not change an existing refusal or expand an older permission without your action.
With separate, explicit permission through Privacy choices, we measure visits to our public homepage, About page, sign-in, membership selection and checkout review. We record a fixed set of page and section views, membership and preview interactions, sign-in and checkout steps, technical error categories, loading/response times and optional fixed-choice feedback. We store only a coarse screen-size category, browser family and recognised campaign variant, not full URLs, referrers, form contents, error messages, IP addresses or browser identifiers. No screen recordings, private Wiki, account or admin activity is collected.
A secure, host-only receipt cookie groups these observations into visits and returning visits for up to 30 days. Visits restart after 30 minutes without a recorded step or after 24 hours. After a successful sign-in or checkout creation, we may link the receipt internally to the account and checkout to verify outcomes and recognise a first paid subscription checkout within seven days of that visit. This is pseudonymous, not anonymous. These records remain in our existing database and are not sent to OpenAI or an external replay provider. Website analytics and ad reporting can be selected independently; an older ad permission does not enable website analytics.
You can decline or withdraw website analytics without affecting the service. Global Privacy Control keeps it off. Withdrawal deletes this browser's analytics receipt and linked observations; account deletion also removes receipts linked to that account. The receipt expires after 30 days without being extended by visits, and scheduled cleanup removes its observations. Rejection is remembered for 180 days. For abuse prevention, a keyed hash of the trusted client address limits consent requests and is removed after two hours. Existing infrastructure logs and necessary billing records follow their separate purposes and retention rules.
Optional ChatGPT ad measurement
With explicit permission for internal website measurement, we also record a small set of steps: homepage and pricing views, membership and Discord clicks, opening or starting sign-in, and reaching membership selection. Each step is counted once per browser receipt, with its first timestamp, for at most the receipt's remaining 30-day lifetime. These records stay in our database and are not sent to OpenAI. We do not record form contents, complete URLs, browsing history, or Wiki activity. This permission is not inferred from an older purchase-measurement consent. Withdrawal deletes these internal step records; expiration removes them through scheduled cleanup.
Only with your consent, we store an OpenAI ad-click reference and the ad variant, using a secure first-party receipt cookie for up to 30 days. If you start checkout, we connect this separate record to your account and checkout. After Stripe confirms the first paid subscription checkout, our server can send OpenAI the original click reference, a random event ID, event time, membership plan, paid amount and currency, and a fixed checkout-page URL without its query string. Renewals are not reported as new memberships.
With additional explicit permission, we also record and report a confirmed new account registration and the start of a valid Stripe membership checkout. Returning logins and repeated requests for the same checkout do not create new events. These reports include only the event type, random event ID, original click reference, event time and a fixed page URL; an unpaid checkout is not reported as revenue. Internal account and checkout identifiers are used solely to verify and deduplicate these records, not sent to OpenAI. Earlier permissions do not include these additional reports. These milestone records are deleted on withdrawal or when the associated consent expires, within its remaining 30-day lifetime.
We do not send names, email addresses, phone numbers, account IDs, IP addresses, browser details, payment-card data, or Wiki activity in these conversion events. No OpenAI pixel script is installed in your browser. This is pseudonymous measurement, not anonymous data: OpenAI may associate the click reference with an ad interaction. We set the API option that opts events out of future user-level personalization. OpenAI also processes conversion data for its services under its Conversion Terms and Privacy Policy, including processing outside the EEA.
The legal basis for this optional measurement is your consent. You can decline or withdraw it using Privacy choices at the bottom left of the main website, without affecting your access or checkout. A browser Global Privacy Control signal keeps measurement off. Withdrawal clears our stored click references and stops pending reports for this browser and, when signed in, linked receipts for your account. Requests already sent or in flight cannot be recalled by that control; contact us for further data-rights requests. Withdrawal does not affect processing that was lawful before it.
Consent and click attribution expire after 30 days and are removed by our scheduled cleanup. After withdrawal, the cleared consent receipt is removed after one day. We remember a rejection for 180 days. Delivery and deduplication records, without click references after attribution cleanup, are retained for up to 90 days and then cleaned up. Hashed security rate-limit records expire after two hours. Necessary billing and contract records follow their separate retention periods below.
6. Retention
We keep personal data only as long as needed for the purposes above, for an active account or membership, to resolve support or security matters, or to meet legal record-keeping obligations. We may keep limited records longer where necessary to establish, exercise, or defend legal claims.
Magic-link admission records expire and are removed after no more than 48 hours.
Checkout-confirmation, billing, withdrawal, transactional-email, payment-case, and protected-content delivery records may be retained for applicable commercial and tax record-keeping periods and, where necessary, until relevant contractual or legal-claim periods have ended. Data that is no longer required is deleted or anonymised in line with the applicable retention obligation.
When an eligible Builder or Mentorship plan ends, access to its private Discord project room is removed and the room may be retained in a restricted archive so project context can be restored after a later eligible membership or used to resolve support, safety, or contractual matters. Archived rooms are scheduled for a retention review after 180 days; this review considers whether continued retention is still necessary rather than promising automatic deletion on that date. Discord also processes and retains content under its own applicable settings and policies.
7. Your rights
Subject to applicable law, you may have rights to access, correct, delete, restrict, or receive your personal data, and to object to certain processing. You may also withdraw consent where processing relies on consent. To make a request, email support@codemmunityhq.com.
You may also have the right to lodge a complaint with a competent data-protection supervisory authority.
8. Updates to this policy
We may update this policy when the service, data practices, or legal requirements change. The current version and its update date will always be published here.
9. Language of this policy
This policy is provided in English for codemmunity's English-language service. Your mandatory data-protection rights under applicable law remain unaffected.
