Privacy Policy
Last updated: 23 September 2026
1. Who We Are
Flagmosphere ("we", "us", "our") operates the website at flagmosphere.com, a community platform for creating and voting on pixel-art flags. The service is operated by an individual established in the Netherlands, who is the controller responsible for your personal data under the EU General Data Protection Regulation (GDPR).
For any privacy-related question or request, contact us at info@flagmosphere.com.
2. Information We Collect
2.1 Account information
When you register and use an account, we store:
- Your chosen username (publicly visible).
- Your email address — used for account verification, password resets, email-change confirmations, and important account notices. Not publicly visible, but accessible to site administrators for support and moderation. When you change your email, a confirmation is sent to your previous address with a link to cancel the change.
- Your password — stored only as a one-way bcrypt hash (cost factor 12). We cannot recover your plaintext password.
- Optional profile details you provide, such as a bio (publicly visible).
- Your Flagcoin balance and account status (e.g. moderator, administrator, or banned).
- Your last activity timestamp and login-lockout counters, used for security and abuse prevention.
2.2 User-generated content
When you use the platform we store:
- Flag designs you submit: the pixel grid data, flag name, nation label, and an optional description.
- Comments you post on flag pages, and replies to other comments.
- Forum posts and replies you create in the community forum.
- Votes you cast (up or down) on flags.
- Emoji reactions you add to flags and comments.
- Flags you save as favourites.
- Reports you file on flags or other users, including an optional reason.
- In-app messages sent to you by the system or staff, and contest entries and prizes.
- Notifications about activity that concerns you — comments on your flags, replies to your comments, @-mentions, reactions, and contest results.
When you write @username in a comment or forum post, the mentioned user is notified. Mentions are stored as part of the content.
Public visibility. Flag pages and user profiles (username, bio, badges, flags, and comment/forum activity) are publicly visible and may be indexed by search engines. Comments on flag pages are public. The community forum is visible to registered users only.
Deleting your account. Flag designs remain on the platform, but your username is replaced with "deleted user" so the design is no longer attributed to you. Forum posts and replies are anonymised — the content remains visible but is no longer linked to your username or account. Comments, votes, reports (including reports you filed on forum content), favourites, and in-app messages are deleted, and notifications you triggered for other users have your name and message content removed.
2.3 Analytics data
When your browser loads the site, we record a single pseudonymous visit entry containing:
- A one-way SHA-256 hash of your IP address, salted with a secret server value. The hash cannot be reversed to obtain your IP without that secret. The same hashed value is used for visit, flag-view, and report records, so it acts as a stable pseudonymous identifier that lets us recognise repeat activity without knowing who you are.
- The calendar date of the visit (no time component).
- The country inferred from your IP address (two-letter ISO code, e.g. "DE"). The raw IP is discarded immediately after this lookup.
- The referring domain, if your browser sends a Referer header and the referrer is a different website (e.g. "google.com"). We strip the path and query string — search terms and private URLs are never stored. For direct visits and same-site navigation, no referring domain is stored.
- Campaign parameters (utm_source, utm_medium, utm_campaign) when you arrive via a tagged link, e.g. a shared flag link. Stored as short lowercase labels; no other URL parameters are kept.
This data is deduplicated: the same IP generates at most one visit record per calendar day. Visit analytics are visible only to site administrators and are deleted after 24 months. Separately, for logged-in users we store a last-activity timestamp on your account (see 2.1).
2.3a Share-button usage
When you use a share button, we record the platform you chose, the flag being shared (if any), and the date, along with an internal timestamp and reference number. No IP address and no account identifier are stored with these records; they exist only so we can see which sharing features are used. They follow the same 24-month retention as visit analytics.
When you sign up, we also store the acquisition source of your visit (a campaign parameter or the referring domain, e.g. "reddit") so we can understand which channels bring in new members. It contains no device or tracking identifier.
Flag pages can be embedded on other websites via our embeddable views. Those page loads are recorded exactly like any other visit.
2.4 Moderation data
When a flag is reported, a SHA-256 hash of the reporter's IP address is stored alongside the report to prevent abuse. The raw IP is not stored in our application database.
We also count flag views. When you open a flag page we record a one-way hash of your IP address together with the date, so the same visitor is not counted twice in a day; bots are excluded. This produces the public view count shown on the flag.
2.5 Contact form
If you use the contact form, we receive the name, email address, subject, and message you provide, and use them only to respond to your enquiry.
2.6 Server logs
Like most websites, our web server records standard access logs — including IP address, user agent, requested URL, and referrer — for security and abuse prevention (for example, our firewall blocks abusive IPs). Requested URLs may include query parameters, such as search terms or campaign parameters. These raw-IP logs are kept for up to 14 days and then rotated out.
3. How We Use Your Information
| Purpose | Data used | Legal basis (GDPR) |
|---|---|---|
| Creating and running your account | Username, email, password hash | Contract |
| Authenticating your session | JWT session cookie | Contract |
| Verification, password reset, and account emails | Email address, one-time tokens | Contract |
| Displaying your profile and content | Username, flags, comments, forum posts | Contract |
| Enabling voting and reporting | User ID, vote direction, flag ID | Contract |
| Moderation, safety, and abuse prevention | Reports, hashed IP, server logs, ban/lockout state | Legitimate interests |
| Understanding site traffic (admin only) | Hashed IP, country, referrer domain, campaign parameters (utm_*), visit date | Legitimate interests |
| Measuring share/embed feature usage (admin only) | Share-button clicks: platform, flag ID, date | Legitimate interests |
| Legal compliance | As required by applicable law | Legal obligation |
We do not use your data for advertising, profiling, or automated decision-making, and we do not sell it.
4. Cookies and Local Storage
We set exactly one cookie: fm_user_token. It is a JWT session token placed in an httpOnly, SameSite=Strict, Secure cookie, which means it is inaccessible to JavaScript and not sent on cross-site requests. It expires after 30 days. The cookie is only set when you log in; guests receive no cookies.
We also use browser storage:
- localStorage entry "fm_cookie_dismissed" — remembers that you closed the cookie notice. No personal data, never sent to our servers.
- sessionStorage entry "fm_draft_flag" — keeps an in-progress flag design while you work on it, so it is not lost if you navigate away. It stays in your browser, is cleared when you close the tab, and is only sent to us if you submit the flag.
- sessionStorage entry "fm_utm" — stores campaign parameters (utm_source/medium/campaign) from the link you arrived on so we can attribute your visit and (if you sign up) your registration. Short labels only, never sent anywhere except alongside our own visit/registration requests.
We do not use advertising cookies, tracking pixels, or any third-party cookie.
5. Third Parties and Processors
We use a small number of service providers ("processors") to run the platform:
- Strato — hosting provider that operates the servers and database on which the service runs.
- Proton — email provider used to deliver account, verification, password-reset, and contact emails; it processes the recipient address and message content in order to deliver them.
- DiceBear (api.dicebear.com) — generates profile avatars; your username is sent as a seed value to produce a consistent avatar image. Loading an avatar also makes a request from your browser to DiceBear's CDN, which therefore sees your IP address (and the site origin). DiceBear's own privacy policy applies to that request.
These providers are located in the EU or Switzerland, which benefit from an EU adequacy decision, so your data receives an equivalent level of protection. We do not use Google Analytics, Facebook Pixel, or any other third-party analytics, advertising, or tracking service, and we do not sell or share your data for commercial purposes.
6. Data Retention
- Account data is retained until you delete your account.
- Flag designs are retained indefinitely; after account deletion the author is shown as "deleted user".
- Flags you delete are hidden immediately and permanently purged, together with their view records, 90 days after deletion.
- Forum posts and replies are retained indefinitely but anonymised on account deletion.
- Comments, votes, reports, reactions, favourites, and in-app messages are deleted when you delete your account.
- Notifications are deleted when you delete your account; read notifications are also purged automatically after 90 days.
- Analytics visit records (pseudonymous) are deleted after 24 months.
- Share-button click records are deleted after 24 months.
- Flag-view records (hashed IP + date) are kept while the flag record exists and are removed with the flag (see above).
- Accounts that never verify their email are sent a reminder after 7 days and deleted 30 days after registration if still unverified.
- Password reset and email verification tokens expire within 1–24 hours and are cleared on use.
- Encrypted database backups are retained for up to 14 days, so a deletion may persist in those backups until they expire.
- Server access logs are retained for up to 14 days.
7. Your Rights
Under the GDPR you have the right to access, rectify, erase, restrict, or object to the processing of your personal data, and the right to data portability and to withdraw consent where processing is based on consent.
You can delete your account at any time from your profile page — this removes your account, comments, votes, reports, and messages, and anonymises your flags and forum content as described above.
To exercise your right to data portability (or any other right), contact us at info@flagmosphere.com and we will provide a copy of your personal data within 30 days.
You have the right to lodge a complaint with a supervisory authority. In the Netherlands this is the Autoriteit Persoonsgegevens; you may also complain to your local authority.
California residents (CCPA/CPRA). We do not sell or share your personal information as defined by California law, and we do not use it for cross-context behavioural advertising. You may request access to, correction of, or deletion of your personal information, or use an authorised agent, by contacting us at info@flagmosphere.com.
For any other data request, contact us at info@flagmosphere.com.
8. Security
We apply the following technical safeguards:
- All traffic is encrypted with TLS (HTTPS only; HTTP redirects to HTTPS).
- Passwords are stored as bcrypt hashes — never in plaintext.
- Session cookies are httpOnly, SameSite=Strict, and Secure.
- Email addresses are encrypted at rest (AES-256-GCM) and the database file is encrypted (SQLCipher). A separate one-way hash of your email address is stored to enforce account uniqueness without decrypting stored addresses.
- IP addresses are hashed with a secret salt before storage in our application database; raw IPs appear only in short-lived server logs (see 2.6).
- A Content Security Policy restricts which resources the browser may load.
- SQL queries use parameterised statements throughout — no raw string interpolation.
If a personal-data breach occurs that is likely to result in a risk to your rights, we will notify affected users and the competent supervisory authority as required by law. No security measure is perfect; if you discover a vulnerability, please report it responsibly to info@flagmosphere.com.
9. Children
Flagmosphere is not directed at children under 13. We do not knowingly collect personal information from anyone under 13. Where the law of your country sets a higher age for valid consent to online services (for example, up to 16 in some EU countries), you must meet that age or have parental consent. If you believe a child has provided us with personal data, please contact us and we will delete it promptly.
10. Changes to This Policy
We may update this policy from time to time. Material changes will be reflected in an updated "Last updated" date at the top of this page, and where appropriate we will notify registered users by email. Continued use of the service after changes constitutes acceptance of the revised policy.
11. Contact
For any privacy question or request, contact us at info@flagmosphere.com.
