Transparency & Data Protection

Privacy Policy

Effective date: October 24, 2026

This policy outlines precisely how BajiHears (“we”, “us”, or “our”) collects, manages, and protects information when you visit https://bajihears.app. We believe in privacy by architecture: gathering only what is required to keep the community safe, quiet, and functioning.

1. Platform Operator & Scope

BajiHears is an anonymous thought-sharing web application accessible via https://bajihears.app. This Privacy Policy applies exclusively to interactions, data processing, and user-generated content submitted on BajiHears. For any inquiries or data requests, you can contact our privacy administration team at privacy@bajihears.app.

2. Information We Collect Directly

Depending on how you use BajiHears, we collect the following:

  • Thoughts and Echoes (User-Generated Content): Text content submitted to The Wall (maximum 280 characters), chosen category (e.g. regret, love, fear, gratitude, secret, unsent, general), optional handle, and creation timestamps.
  • Community Interactions: Anonymous reactions (reactions like warmth, tears, hearts, bookmarks) and votes cast in the daily Duel.
  • Safety Reports: Post and echo identifiers flagged for community moderation, along with a reason code or descriptive feedback.
  • Optional Authentication Data: If you choose to link a Google account, we receive your email address, display name, and avatar URL provided by Google OAuth.
  • Push Notification Tokens: If you explicitly opt in to daily winner announcements, your browser generates an anonymous Web Push subscription endpoint and cryptographic authentication keys.

3. Anonymous Thoughts & Protected Public Projection

BajiHears is architected with a strict separation between public content and private identifiers:

  • No account required: You can read, vote, react, and post without creating an account or providing an email address.
  • Protected database projection: Public Wall queries run through restricted server-side functions. Direct table access is completely denied to public visitors.
  • Account decoupling: Even if you are signed in with Google to maintain your Corner across devices, public posts and echoes do not reveal your Google profile, email address, or internal user ID unless you explicitly type a public handle.

4. Google Sign-In & Supabase Integration

Authentication is provided via Supabase Auth using the Proof Key for Code Exchange (PKCE) protocol (RFC 7636). When you choose “Continue with Google”:

  • Google authenticates your identity and shares your verified email address and basic profile.
  • Supabase issues an encrypted JSON Web Token (JWT) verifying your session. The client stores this session in local browser storage.
  • Authenticated calls to our server transmit this token in standard Authorization: Bearer headers. Tokens are never embedded in public URLs or cached server responses.
  • Signing out clears account query caches and removes all stored session credentials from your browser immediately.

5. Local Storage & Cookies

Zero Tracking Cookies

BajiHears does not use third-party tracking cookies, marketing beacons, or advertising trackers. The only browser storage mechanisms currently employed are:

  • localStorage: Stores your pseudonymous device token (a 16-character hex string used strictly for rate-limiting), your saved thought bookmarks, avatar seed, local draft text, visit streaks, and cosmetic warmth points.
  • sessionStorage: Temporary routing and transient UI state.

6. IP Addresses, Rate Limiting & Security Logs

To defend our community against automated scraping, denial-of-service (DoS), and abuse:

  • Cloudflare Edge Processing: Like virtually all web applications, network requests pass through Cloudflare edge nodes, which inspect standard HTTP headers, user-agent, and IP addresses to mitigate malicious traffic.
  • Privacy-Preserving Rate Limiting: Our backend computes a salted SHA-256 hash digest of the incoming client IP address combined with your device token. This allows us to enforce the 12-hour submission cooldown without permanently storing raw IP addresses in post records.
  • Log Sanitization: Our server error reporting automatically masks bearer tokens, secrets, and database strings prior to logging.

7. How We Use Information

We process collected information strictly for:

  • Displaying and categorizing public thoughts, echoes, and duels.
  • Enforcing our 12-hour submission rate limit and anti-spam controls.
  • Processing community moderation reports to filter prohibited content.
  • Syncing your Corner across devices when you authenticate with Google.
  • Dispatching opted-in web push notifications for community duel winners.
  • Maintaining system availability, uptime, and edge security.

8. Third-Party Service Providers

We rely on trusted enterprise infrastructure providers to operate BajiHears:

Cloudflare, Inc.

Edge routing, serverless Worker compute, CDN asset delivery, and DDoS mitigation.

Supabase, Inc.

Managed PostgreSQL database, row-level security enforcement, and Google OAuth session brokering.

Google LLC

Optional OAuth 2.0 single sign-on provider.

9. Public Visibility & Search Engine Indexing

Thoughts and echoes posted to The Wall are public communications. They can be read by any visitor, shared via unique URLs, and indexed by search engine web crawlers. Never include passwords, telephone numbers, home addresses, financial details, or personal identifiable information (PII) belonging to yourself or any third party in your posts.

10. Data Retention Practices

  • Public Posts & Echoes: Retained indefinitely in our database to preserve the integrity of the thought wall, unless removed following a safety report or verified deletion request.
  • Rate-Limit Logs: Temporary anti-abuse tracking records expire automatically after their active cooldown window.
  • Device Storage: Local preferences and saved thoughts remain on your device until you clear your browser storage or delete the saved note.

11. Your Rights & Content Removal Requests

Because BajiHears is built around public anonymity, there is no self-service post deletion button in the client interface. However, we respect your privacy rights and offer two straightforward removal mechanisms:

  1. In-App Community Reporting: Click the flag icon on any thought or echo to file a moderation report. Flagged content is evaluated by platform moderators.
  2. Manual Deletion & Data Requests: To request the permanent removal of a thought you authored or to exercise your rights under GDPR/CCPA, email privacy@bajihears.app with the specific post URL or content details. We will review and act upon verified requests within 30 days.

12. Technical Security Safeguards

We implement defense-in-depth measures to safeguard our application:

  • Strict Content Security Policy (CSP): Cryptographic nonces generated per request prevent Cross-Site Scripting (XSS).
  • Encrypted Communication: End-to-end TLS encryption with Strict-Transport-Security (HSTS) preloading.
  • Request Guardrails: Strict 64 KiB request body limits and cross-origin CSRF protections.
  • Database Security: Direct table permissions revoked from anonymous and authenticated roles; mutations execute solely through verified stored functions.

Please note: while we adhere to industry-standard security architectures, no system transmitting data over the public internet can promise 100% invulnerability.

13. Children's Privacy

BajiHears is intended for general audiences aged 13 and older (or 16 in the European Economic Area). We do not knowingly solicit or collect personal information from children under these ages. If you believe a child has provided us with personal data, please contact us immediately at privacy@bajihears.app, and we will delete the corresponding information.

14. International Data Transfers

Our infrastructure is globally distributed via Cloudflare edge locations, with database servers managed by Supabase in compliant cloud regions. By using BajiHears, you acknowledge that your data may be processed in jurisdictions that may have different data protection standards than your country of residence.

15. Future Advertising & Google AdSense Disclosures

Prospective Advertising Notice

Current State: BajiHears is currently free of third-party advertisements and commercial tracking scripts.

Future State (Google AdSense): In the future, BajiHears may partner with Google AdSense to serve online advertisements to sustain operational costs. When advertising is activated:

  • Third-party vendors, including Google, will use cookies to serve ads based on your prior visits to BajiHears or other websites.
  • Google's use of advertising cookies enables it and its partners to serve ads based on your browsing patterns.
  • You can opt out of personalized advertising by visiting Google Ads Settings , or opt out of third-party vendor cookies by visiting aboutads.info .
  • EEA, UK, and Swiss Visitors: Prior to serving ads in these jurisdictions, BajiHears will implement a certified Consent Management Platform (CMP) adhering to the IAB Europe Transparency and Consent Framework (TCF v2.2) to collect user consent.

16. Policy Updates & Contact Information

We may periodically update this Privacy Policy to reflect technical enhancements or regulatory updates. When updates occur, the “Effective date” at the top of this page will be revised.

Have privacy questions or requests?

Our privacy team is available to help.

privacy@bajihears.app