Privacy Policy
1. Privacy contact
GEMC2 operates under the GEMC2 service name. For personal-safety and privacy reasons, this public notice does not publish the operator’s personal name or residential address.
Privacy and data requests: [email protected]
Contact this address with questions about this notice, personal-data processing, or requests relating to your account and personal information. Requests will be reviewed and handled under the procedures and deadlines applicable to the request.
This notice describes personal information processed to operate GEMC2, a text-only social network. It does not waive or limit rights available under applicable law.
2. Information we process
2.1 Account and registration data
- Username and normalized username, email address and normalized email address, password hash, account status, email-verification status, registration date, and account update date.
- The required registration answer explaining why you want to join (10–280 characters), which may be reviewed to decide whether to approve a registration and reduce abuse.
- Optional profile information, including display name and biography (up to 160 characters), and any badge or account status assigned by GEMC2.
- Email-verification tokens and password-reset tokens are stored as hashes with validity periods; the raw token is sent to you in the relevant email.
GEMC2 does not store passwords in readable form. The application uses PHP password hashing with Argon2id when available and otherwise falls back to bcrypt.
2.2 Content and social activity
- Public posts and replies, including their text, author, parent-post relationship, creation and edit timestamps, and hidden/moderation status.
- Post edit history, which may contain earlier and newer versions of edited text and the time of the edit.
- Hashtags, mentions, +1 reactions, reposts, follows, blocks, and their related identifiers and timestamps.
- Notifications, including the type of activity, actor, related post where applicable, creation time, and whether the notification has been marked read.
- Reports, including the reporting and reported accounts, reported post where applicable, report category, status, and timestamps.
- Messages and information you send to GEMC2 through email, including privacy requests, security reports, copyright notices, appeals, and support inquiries.
2.3 Technical and security data
- IP addresses collected at registration, email-verification requests, login/session creation, and rate-limiting events. Where GEMC2 is behind a trusted proxy, the application may read the client IP supplied by that proxy.
- Browser user-agent strings associated with registration, sessions, and push subscriptions.
- Session token hashes, session creation/expiry/revocation times, and session IP/user-agent records. The raw session token is held in the browser cookie; the database stores its SHA-256 hash.
- Security/audit records describing actions such as registration, login/logout, password changes, profile changes, post edits, reports, and administrative moderation.
- Push subscription endpoints and subscription keys, plus user-agent information, if you opt in to browser push notifications.
- Technical request and error information generated by the hosting, network, email, database, or real-time services used to operate GEMC2.
2.4 Information we do not intentionally request
GEMC2 does not ask to upload your phone contacts and does not intentionally collect precise GPS location, biometric identifiers, or your browsing history on other websites. No advertising or analytics SDK was found in the application files reviewed. Users may nevertheless choose to disclose sensitive or identifying information in public posts; think carefully before publishing it.
3. Purposes of processing
- Create, verify, approve, authenticate, and administer accounts.
- Provide profiles, public posts and replies, feeds, search, hashtags, mentions, reactions, reposts, follows, blocks, and notifications.
- Maintain sessions, prevent unauthorized requests, enforce rate limits, prevent fraud and abuse, and investigate security incidents.
- Review reports, moderate content, suspend or reject accounts where appropriate, and respond to copyright or legal notices.
- Send verification, password-reset, essential service, and security emails.
- Deliver browser push notifications when you opt in.
- Maintain the application, diagnose errors, protect service availability, and comply with applicable legal obligations or valid legal requests.
- Respond to requests to access, correct, cancel, or object to the processing of personal data.
GEMC2 does not sell personal data and does not build advertising profiles from your activity.
4. Public content and edit history
Public posts, replies, profile information, and public activity may be viewed by anyone, including people without a GEMC2 account. Public content may be copied, indexed, cached, quoted, or redistributed by third parties. GEMC2 cannot guarantee deletion of copies outside its systems.
Posts and replies can be edited for up to 30 minutes after publication, but cannot ordinarily be deleted by users through the interface. The application stores old and new text versions in an edit-history table and returns edit history with post details. Therefore, previously published text may remain available as part of the edit history. GEMC2 may hide or remove content for legal, security, or moderation reasons.
Account deactivation does not automatically remove public posts, replies, or their edit history. They may remain visible under the original username. The username remains reserved and will not be reassigned.
5. Cookies, browser storage, and PWA caching
GEMC2 uses essential cookies for authentication and CSRF protection. The intended production configuration is a lifetime of up to 30 days for the authentication and CSRF cookies; the effective lifetime is controlled by the server's SESSION_TTL setting. Sessions may end earlier due to logout, revocation, security action, browser cookie removal, or configuration differences. The browser cookie's own expiry is set at login and is not guaranteed to be extended simply because the server-side session record is extended.
The authentication cookie is named gemc2_session by default and uses Secure, HttpOnly, and SameSite=Lax attributes. The CSRF cookie is named gemc2_csrf by default and uses Secure and SameSite=Lax; it is readable by the browser application so it can be sent with protected requests, and therefore is not marked HttpOnly.
The application stores gemc2_version in localStorage to detect app-version changes. Its service worker caches application-shell files and static same-origin resources to support loading and updates. The reviewed service worker bypasses caching for API responses. Clearing cookies or local storage may sign you out, reset app-version state, or remove cached resources.
6. Push notifications and real-time connections
If you choose to enable browser push notifications, GEMC2 stores the push endpoint, subscription keys, and user-agent information needed to send them. Browser push delivery is handled through the push service associated with your browser/device. Current social-activity push notifications may show the actor's display name or username and the activity type, such as a +1, reply, mention, follow, or repost; they do not intentionally contain the full post text. The notification may appear on a device lock screen depending on your device settings.
GEMC2 also uses a same-origin WebSocket connection for real-time updates. The connection authenticates using the session cookie and may process session-related technical information. It is not currently used to provide private messaging.
7. Private messaging: privacy commitments for the future feature
Private messaging is not part of the currently reviewed application release. GEMC2 commits that when private messaging is introduced, it will be designed and operated under these rules:
- Only one-to-one plain-text messages; no groups, files, images, audio, video, or calls.
- End-to-end encryption designed so that the GEMC2 operator cannot read message content.
- The server will retain only an encrypted temporary queue for undelivered messages. A pending message will expire no later than 30 days after sending.
- The server's temporary copy will be deleted after a valid confirmation that the recipient's device received and correctly stored the message, or when the 30-day expiry is reached, whichever happens first.
- Each participant keeps their own local copy. Deleting one user's local copy will not delete the other participant's copy, retract the sent message, or cancel delivery.
- No permanent server-side message history, cross-device history migration, synchronization, or recovery of lost/deleted local conversations.
- One active messaging device/session per account. Tabs in the same browser on the same device are intended to share the device session and not displace one another.
- Delivery confirmations only; no read receipts. Push notifications for private messages will be generic and will not contain message text.
- Message content and private encryption keys will not intentionally be included in application logs, metrics, error reports, or backups.
GEMC2 will not represent private messaging as available until the required protections are implemented and tested. Technical metadata needed to route messages and protect the service may still be processed.
8. Who may receive data
GEMC2 does not sell personal data. Information may be processed by the following service providers only as needed for the purposes described above:
- Hosting/server provider: hosts the application, database, and associated network traffic.
- DNS, proxy, or security provider: if configured, processes DNS, routing, security, and request metadata needed to deliver or protect the website.
- Email delivery provider: receives the recipient email address, recipient name, and email content needed to deliver verification, password-reset, and service emails. The specific provider is determined by the deployment configuration.
- Telegram, if enabled: receives pending-registration information sent to the operator's configured chat, including username, email, IP address, registration answer, and timestamp.
- Browser push service: processes push endpoints and encrypted push-delivery traffic needed to deliver notifications to your browser/device.
These providers may process technical information under their own terms and in countries other than your own. We do not authorize them to use GEMC2 data to build advertising profiles. The exact providers enabled may change as the deployment configuration changes.
9. Retention and deletion policy
GEMC2's retention policy is to keep information only for as long as needed for the stated purposes, security, moderation, and legal obligations. Some automated cleanup and account-deactivation procedures are still to be completed; the following schedule is the policy GEMC2 commits to implement. Until those cleanup jobs are active, expired database records may remain stored longer than their validity period.
| Data | Retention policy |
|---|---|
| Username | Reserved permanently after assignment, including after account deactivation, to prevent reuse and impersonation. |
| Email, profile, password hash, and account metadata | While the account is active; following a verified deactivation request, remove from active systems within 30 days unless needed for retained public content or a lawful purpose. |
| Registration answer, registration IP, and registration user-agent | While registration review or security needs require them; remove or de-identify within 30 days after a final registration decision where no further security or legal need applies. |
| Session records, IP addresses, and user-agent data | Until logout, revocation, or expiry; expired/revoked records are intended to be removed within 30 days. |
| Email-verification records | Verification links are valid for 24 hours; used or expired records are intended to be purged within 30 days after use or expiry. |
| Password-reset records | Reset links are valid for 1 hour; used or expired records are intended to be purged within 30 days after use or expiry. |
| Rate-limit identifiers and security/audit logs | Retained for no longer than 30 days under the intended cleanup policy, except records needed for an active investigation or legal claim. |
| Notifications | Intended to be retained for up to 12 months, then deleted or anonymized unless needed for a lawful purpose. |
| Reports and records of moderation decisions | Retained for up to 180 days after closure under the intended policy, or longer if needed for safety, repeat-abuse analysis, or a legal claim. |
| Public posts, replies, and edit history | May remain available while the content remains published, including after account deactivation. Content may be removed or restricted for legal, security, or moderation reasons. |
| Push subscriptions | While push is enabled; removed when you unsubscribe or when the subscription is known to have expired. Inactive subscription cleanup is intended to run periodically. |
| Backups | Deleted data may persist until backup rotation completes, for up to an additional 30 days where technically feasible. |
| Future undelivered private messages | Encrypted temporary copies only; delete after valid delivery-and-storage confirmation or no later than 30 days after sending. |
Information may be retained longer where required by law or reasonably necessary to establish, exercise, or defend legal claims. Where appropriate, information will be blocked, restricted, anonymized, or deleted when its purpose has ended.
10. Your privacy rights
Depending on applicable law, you may request access to, correction of, cancellation/deletion of, or objection to the processing of personal data and may have other rights. To make a request, email [email protected] with your username, the right you wish to exercise, and enough information to locate the relevant data. We may request proportionate information to verify that you control the account or are authorized to act. Do not email identity documents unless we explain why they are necessary and provide an appropriate submission method.
We will handle requests under the procedures and deadlines required by applicable law. Requests to erase data may be subject to lawful retention, the permanent username-reservation policy, and the retention of public content described above. You may also contact the competent data-protection authority under the law applicable to you.
11. Security and incident response
The application includes security measures such as password hashing, hashed session tokens, secure session cookies, CSRF validation, rate limiting, restricted administrative functions, and audit events. The exact protection of the deployed service also depends on server, TLS, database, proxy, backup, and WebSocket configuration. No online service can guarantee absolute security.
If a personal-data incident occurs, GEMC2 will investigate, take reasonable steps to contain and remediate it, and notify affected people or authorities where and as required by applicable law. We do not promise an arbitrary fixed notification period that could conflict with legal requirements or the circumstances of an incident.
12. Children
GEMC2 is intended for people aged 16 or older. If we learn that an account belongs to someone under 16, we may restrict or deactivate the account and handle associated data in accordance with applicable law.
13. Changes to this notice
We will publish the current notice on this page and provide notice of material changes through an appropriate channel where required by law or reasonably necessary. The effective date appears at the top of this page.
14. Contact and applicable law
Contact [email protected]. This notice is intended to operate consistently with Mexico's Federal Law on Protection of Personal Data Held by Private Parties and other applicable privacy laws. It does not limit rights that cannot lawfully be waived.