Outprobe: Data Collection & App Permissions

Last Updated: March 20, 2026 Version: 1.0


1. App Permissions

1.1 Android Permissions

PermissionWhy We Need ItWhen RequestedRequired?
INTERNETCore functionality — all API communicationAlways (automatic)Yes
CAMERATaking photos for posts, profile pictures, media uploadsWhen user first tries to take a photoNo — can use gallery instead
READ_MEDIA_IMAGESSelecting photos from gallery for posts, profile, media uploadsWhen user first tries to upload an imageNo — can skip media features
READ_MEDIA_VIDEOSelecting videos from gallery for posts and media uploadsWhen user first tries to upload a videoNo — can skip media features
READ_MEDIA_AUDIOSelecting audio files for media uploadsWhen user first tries to upload audioNo — can skip media features
WRITE_EXTERNAL_STORAGESaving downloaded media to device (Android 9 and below)When user first tries to download mediaNo
POST_NOTIFICATIONSPush notifications for messages, mentions, community activityAfter onboarding, user choosesNo — app works without notifications
VIBRATEHaptic feedback for notificationsAutomatic with notificationsNo
RECEIVE_BOOT_COMPLETEDRestart notification listener after device rebootAutomatic if notifications enabledNo

1.2 iOS Permissions

PermissionWhy We Need ItWhen RequestedRequired?
CameraTaking photos for posts, profile pictures, media uploadsWhen user first tries to take a photoNo
Photo LibrarySelecting media from library for posts and uploadsWhen user first tries to upload mediaNo
NotificationsPush notifications for messages, mentions, community activityAfter onboarding, user choosesNo
Face ID / Touch IDOptional biometric lock for the appIf user enables it in settingsNo

1.3 Web Permissions

PermissionWhy We Need ItWhen RequestedRequired?
Notifications (browser)Push notifications for messages, mentionsUser explicitly enables in settingsNo
Camera (browser)Taking photos directly in browserWhen user tries to take a photoNo
MicrophoneVoice messages (future)When user tries to record audioNo
ClipboardCopy share links, invite codesWhen user clicks copy buttonNo

1.4 Permissions We NEVER Request

PermissionWhy Not
Location (GPS)We don't track location. If users share location in posts, they type it manually.
Contacts / Phone BookWe never access contacts. No "find friends" by phone number.
Phone / Call LogsNo reason to access.
SMSNo SMS-based verification (we use email).
Microphone (unless voice feature)Not needed for current features.
Background LocationNever.
Body SensorsNever.
CalendarNever.
Activity RecognitionNever.

2. Data We Collect

2.1 Account Data (User Provided)

Data PointPurposeStorage LocationRetentionCan User Delete?
Email addressLogin, password reset, essential notificationsPostgreSQL (encrypted at rest)Until account deletionYes — delete account
PasswordAuthenticationPostgreSQL (bcrypt hashed, never plain text)Until account deletionYes — delete account
Display nameShown on profile and postsPostgreSQLUntil account deletionYes — edit anytime
Username (handle)Unique identifier, profile URLPostgreSQLUntil account deletionYes — change in settings
Profile pictureShown on profile, posts, commentsCloudflare R2 + PostgreSQL (URL)Until user removes or deletes accountYes — remove anytime
BioShown on profilePostgreSQLUntil account deletionYes — edit anytime
Identity tagsShown on profile (optional)PostgreSQLUntil user removesYes — remove anytime
Date of birthAge verification (not displayed publicly)PostgreSQLUntil account deletionYes — delete account

2.2 Content Data (User Created)

Data PointPurposeStorage LocationRetentionCan User Delete?
Posts (text)Community contentPostgreSQLUntil user deletes post or accountYes
Post media (images, videos)Community contentCloudflare R2Until user deletes post or accountYes
CommentsDiscussionPostgreSQLUntil user deletes comment or accountYes
Direct messagesPrivate messagingPostgreSQL (encrypted)Until user deletes conversation or accountYes
Probe messagesGroup chatPostgreSQLUntil user deletes or leaves probeYes
Media uploads (library)Community media libraryCloudflare R2 + PostgreSQLUntil user/admin deletes or account deletionYes
EventsCommunity eventsPostgreSQLUntil creator/admin deletesYes (if creator)
InitiativesCommunity initiativesPostgreSQLUntil creator/admin deletesYes (if creator)
PlaylistsCurated content collectionsPostgreSQLUntil creator deletesYes
Listings (marketplace)Buy/sell itemsPostgreSQL + R2Until seller removes or account deletionYes
Circle membershipsPersonal friend groupsPostgreSQLUntil user modifies circlesYes
ReactionsPost engagementPostgreSQLUntil user removes reactionYes

2.3 Community Data

Data PointPurposeStorage LocationRetentionCan User Delete?
Community name, handle, descriptionCommunity identityPostgreSQLUntil owner deletes communityYes (owner)
Community avatar/bannerCommunity brandingCloudflare R2Until owner changes or deletes communityYes (owner)
Community settingsConfigurationPostgreSQLUntil owner changes or deletes communityYes (owner)
Membership recordsWho belongs to which communityPostgreSQLUntil member leaves or is removedYes (leave community)
Role assignmentsPermission managementPostgreSQLUntil changed by adminYes (admin)
Application formsJoin requests for private communitiesPostgreSQLUntil approved/rejected or community deletionYes (admin)

2.4 Technical Data (Automatically Collected)

Data PointPurposeStorage LocationRetentionShared with Advertisers?
IP addressSecurity, rate limiting, abuse preventionServer logs90 days, then deletedNever
Device type (mobile/desktop/tablet)Responsive UI renderingNot stored persistentlySession onlyNever
Browser/app versionCompatibility, bug fixingCrash reports only90 daysNever
Crash reportsBug fixing and stabilityError logging service90 daysNever
Aggregate page viewsPlatform health (e.g., "Explore had 5K views today")Analytics (aggregate only)1 yearNever individually
Session tokens (JWT)AuthenticationRedis (in-memory)Access: 15 min, Refresh: 7 daysNever
WebSocket connection stateReal-time features (typing, presence)Redis (in-memory)Duration of connection onlyNever

2.5 Data We NEVER Collect

Data PointWhy Not
Browsing history (outside Outprobe)Privacy — we don't track you outside our platform
Search history on other sitesPrivacy — not our business
Location / GPS coordinatesPrivacy — we have no location features
Contact list / phone bookPrivacy — no "find friends by contacts"
Keystroke patterns / typing behaviorPrivacy — creepy and unnecessary
Biometric dataPrivacy — not needed
Financial / payment card detailsHandled entirely by Google Play / payment processor. We never see card numbers.
Advertising identifiers (GAID/IDFA)Privacy — we don't do personalized ads
Cross-app usage dataPrivacy — we don't track other apps
Device IMEI or serial numberPrivacy — not needed
Wi-Fi network informationPrivacy — not needed
Installed apps listPrivacy — not needed
Clipboard contents (passively)Privacy — we only access clipboard when user explicitly copies

3. Data Flow

3.1 How Data Moves Through Our System

User's Device
  │
  ├─ HTTPS/TLS 1.3 ──────────────────────────┐
  │                                            │
  ▼                                            ▼
Cloudflare Edge                          Cloudflare R2
(CDN + WAF + DDoS protection)           (Media storage)
  │                                       - Images
  │ IP logged for security (90 days)      - Videos
  │                                       - Documents
  ▼                                       - Encrypted at rest
Go Backend (Hetzner VPS)
  │
  ├──► PostgreSQL (Neon)
  │    - Account data
  │    - Content data
  │    - Community data
  │    - Encrypted at rest
  │
  ├──► Redis
  │    - Sessions (15 min / 7 days)
  │    - Real-time presence
  │    - Timelines (cached)
  │    - Rate limiting counters
  │
  └──► Meilisearch
       - Search index
       - Community/user/post search
       - No sensitive data indexed

3.2 Encryption

LayerMethod
In transitHTTPS / TLS 1.3 (all connections)
At rest (database)PostgreSQL encryption at rest
At rest (media)Cloudflare R2 encryption at rest
Passwordsbcrypt hash (never stored in plain text)
SessionsJWT (RS256 signed)
Direct messagesEncrypted in database

3.3 Third-Party Data Sharing

Third PartyWhat We ShareWhy
CloudflareIP address (automatic via CDN)CDN delivery, DDoS protection
Google PlayPurchase receipt, subscription statusPayment processing for Premium
Contextual ad network (future)Community category onlyAd matching. Zero user data shared.

We share ZERO user data with advertisers. Advertisers select a community category. We show the ad. They get aggregate impression/click counts. That's it.


4. User Rights & Controls

4.1 In-App Controls

ControlWhereWhat It Does
Edit profileSettings > ProfileChange name, bio, avatar, identity tags
Delete postPost menu > DeletePermanently removes post and its media
Delete commentComment menu > DeletePermanently removes comment
Leave communityCommunity menu > LeaveRemoves membership, your posts remain (anonymized if account deleted)
Delete conversationDM settings > DeleteRemoves conversation from your view
Manage circlesCircles settingsAdd/remove members, delete circles
Notification preferencesSettings > NotificationsControl what notifications you receive
Delete accountSettings > Account > DeletePermanently deletes all personal data within 30 days

4.2 Data Requests

RequestHowResponse Time
Access my dataEmail privacy@outprobe.comWithin 30 days
Export my data (JSON)Settings > Account > Export DataImmediate download
Delete my dataSettings > Account > Delete AccountCompleted within 30 days
Correct my dataEdit in-app or email privacy@outprobe.comImmediate (in-app) or 30 days (email)

5. Cookie & Local Storage Policy (Web)

5.1 What We Store in Browser

ItemTypePurposeDurationRequired?
Authentication tokenLocal StorageKeep you logged inUntil logout or token expiry (7 days)Yes (for login)
Theme preferenceLocal StorageRemember light/dark modeIndefiniteNo (defaults to system)
Language preferenceLocal StorageRemember UI languageIndefiniteNo (defaults to browser)

5.2 What We DO NOT Use

ItemWhy Not
Tracking cookiesWe don't track users
Third-party cookiesWe don't embed third-party trackers
Analytics cookies (Google Analytics, etc.)We use aggregate server-side analytics only
Advertising cookiesWe don't do personalized ads
FingerprintingWe don't fingerprint browsers or devices

Outprobe's web app uses only essential local storage for authentication and user preferences. No tracking. No cookies for advertising. No third-party scripts that set cookies.


6. Data Breach Policy

In the event of a data breach:

  1. Within 72 hours: We will assess the scope and severity of the breach
  2. Within 72 hours: We will notify relevant data protection authorities (as required by GDPR and applicable laws)
  3. As soon as possible: We will notify affected users via email with:
    • What happened
    • What data was affected
    • What we are doing about it
    • What users should do (e.g., change password)
  4. Ongoing: We will provide updates as the investigation progresses
  5. Post-incident: We will publish a post-mortem and implement measures to prevent recurrence

7. Children's Data

  • Outprobe requires users to be at least 13 years old (or the minimum age in their country)
  • We do not knowingly collect data from children under this age
  • We do not use age-gated advertising or content targeting based on age
  • If we discover a child's account, we will delete it and all associated data immediately
  • Parents/guardians can contact privacy@outprobe.com to request deletion of a child's data

Questions about this policy? legal@outprobe.com