
Rostr is operated by ARAMI TECH LLC, a US limited liability company.
Contact: info@arami.tech
When this policy says “we”, “us”, or “our”, that’s ARAMI TECH LLC.
| Data | Why we have it | Where it lives |
|---|---|---|
| Email + Apple ID / Google ID | Sign-in only | Supabase Auth (TLS + AES-256 at rest) |
| Display name, avatar, username | Shown to your friends and group members | Supabase DB (TLS + AES-256 at rest) |
| Roster entries (shifts, dates, types) | The core feature | Supabase DB |
| Roster scan images (camera capture / photo pick) | OCR via Claude (Anthropic) — image deleted within 24h | Supabase Storage (transient) → Anthropic |
| Roster Group + Community Group memberships | Who you share with | Supabase DB |
| Push notification token (APNs / FCM) | Deliver alerts | Supabase DB; never shared with advertisers |
| Community Wall posts (text + images) | Visible to group members | Supabase DB + Storage; scanned for abuse |
| DM messages | End-to-end encrypted (E2EE) — we cannot read | Supabase DB (ciphertext only) |
| Group chat messages | End-to-end encrypted (E2EE) | Supabase DB (ciphertext only) |
| Reports of abusive content | Act on platform abuse policy within 24h | Supabase DB |
| Crash + performance data (anonymous) | Find bugs | Firebase Crashlytics |
| Ad identifier (IDFA on iOS / AAID on Android, only if you opt in) | Ad targeting via Google AdMob | |
| Approximate location (country code only — optional) | Suggest nearby communities in Discover. We derive only a country code on your device; exact coordinates are never stored or sent. Decline and Discover still works (falls back to your device region setting). | Supabase DB (country code only) |
Direct messages and group chats use the Signal protocol family, implemented with platform-native cryptography (Apple CryptoKit on iOS, Google Tink + AndroidX Security on Android). The wire format is byte-compatible across both platforms.
AfterFirstUnlockThisDeviceOnly) or Android Keystore (StrongBox where available).Rostr’s core feature is automatic schedule extraction from a roster image. Here is exactly how the pipeline works:
App Store and Play Store policies require us to filter user-generated content on broadcast surfaces. We do this in three places:
| Surface | What we scan | How |
|---|---|---|
| Community Wall posts (text) | Text body | OpenAI Moderation |
| Community Wall posts (images) | Image content | OpenAI gpt-4o-mini Vision |
| Roster Group chat (legacy plaintext) | Text + images | Same as above |
| DM messages | Nothing — E2EE | We can’t read |
| Group chat messages | Nothing — E2EE | We can’t read |
If a post or image is flagged by automated review, it is hidden from other users immediately. The author keeps their copy and sees a takedown reason.
We also rely on you. If you encounter abusive content in a DM or group chat, tap Report. Reporting unlocks a one-time decryption of THAT message and uploads the plaintext to our admin queue for human review (24-hour SLA). Reporting is the ONLY way the content of an E2EE message ever leaves your device readable.
We use two separate AI providers, each scoped to a different feature. Neither has overlapping access.
The image you pick to scan is sent to Anthropic, PBC under their commercial API terms:
What we send to Anthropic:
For Community Wall content moderation we send certain content to OpenAI, Inc. under their Enterprise / API data policy:
What we send to OpenAI:
What we never send to either Anthropic or OpenAI:
| Vendor | Purpose | Region |
|---|---|---|
| Supabase (Postgres + Storage + Auth + Realtime) | Hosting, database, file storage, auth, websocket | EU (eu-central) |
| Firebase Cloud Messaging (Google) | Push notifications (Android + iOS) | US |
| Anthropic, PBC | Roster OCR (Claude Vision) | US |
| OpenAI | Community Wall text + image moderation | US |
| Apple Push Notification Service | iOS push delivery | US |
| Google AdMob | Ad serving (only if you allow tracking) | US |
We have signed Data Processing Agreements (or have equivalent commercial terms in place) with Supabase, Google, OpenAI, Anthropic, and Apple. None of these vendors sells your data.
| Data | Retained for |
|---|---|
| Account, roster, group memberships | While your account exists |
| Roster scan images (after OCR upload) | 24 hours, then deleted from our Supabase Storage |
| Voice messages (audio bytes, ciphertext for E2EE chats) | 180 days, then nulled |
| Community Wall posts | While the group exists; you can delete anytime |
| DM / group chat (ciphertext) | While both parties keep the conversation |
| Reports + admin notes | 1 year (regulatory) |
| Crash logs | 90 days |
| Push tokens | Until you sign out / disable notifications |
| Soft-deleted accounts | 30-day grace period for restore, then hard-deleted |
You can delete your account from Profile → Delete Account. Your row is soft-deleted (recoverable for 30 days), then hard-deleted along with all messages you authored. Other people’s chats with you are preserved (their content, their copy).
You have the right to:
Your legal basis under GDPR is:
We do not sell or share your personal information for cross-context behavioral advertising as defined by California law. You can request to know, delete, or correct your data via info@arami.tech.
Rostr is rated 17+. We do not knowingly collect data from anyone under 13 (US: COPPA) or 16 (EU: GDPR). If you believe a child has created an account, email info@arami.tech and we’ll delete it.
We’ll update the “Last updated” date at the top whenever we change something. Material changes (new vendors, new categories of data) get an in-app banner the next time you open the app.
If you’re an Apple App Reviewer or Google Play reviewer reading this, here’s the relevant compliance summary:
ocr-roster-claude) → Anthropic Claude Vision-capable model → structured schedule returned → original image deleted from Supabase Storage within 24h. iOS uses Photos Picker; Android uses ActivityResultContracts.PickVisualMedia. Neither requires READ_MEDIA_IMAGES; the picker is out-of-process.reports table; admin reviews via dashboard within 24h.ITSAppUsesNonExemptEncryption = YES; classified under ECCN 5D992.c with License Exception ENC §740.17(b)(1) (mass market, standard algorithms only). App Store Connect’s App Encryption questionnaire completed for this submission — no documentation upload required.