Projectri
Subprocessors
The third parties that process customer data on our behalf, what each one is used for, and where the processing happens.
How to read this page
This list is generated from the application source, so it changes in the same commit as the code that connects a new service. It is not maintained separately and cannot drift from what the product actually does.
Entries marked planned are integrations that exist in the code but are not configured on any production deployment, which means no customer data has ever been sent to them. We list them so the page stays true the moment one is switched on, rather than quietly becoming wrong.
End-to-end encrypted content
Direct messages and encrypted channels are encrypted on your device before they reach us. No subprocessor on this list — and no member of our own staff — can read them, because the keys exist only on your devices and are never transmitted to our servers. What a subprocessor may hold is ciphertext and routing metadata.
Changes
We will publish a change here before a new subprocessor begins processing customer data. If you have a contractual right to object, write to privacy@projectri.com.
Active subprocessors
| Subprocessor | Purpose | Location | Data |
|---|---|---|---|
| Microsoft Azure | Object storage for files uploaded to workspaces (attachments, documents, exports). | Customer-selected Azure region | Uploaded files, File metadata |
| Supabase (PostgreSQL) | The primary application database and its managed backups. | AWS, customer-selected region | Account data, Workspace content, Audit logs |
| Vercel | Application hosting, edge routing and request logs. | Global edge; compute in the configured region | Request metadata, IP addresses |
| Google Firebase Cloud Messaging | Delivery of push notifications to mobile devices. | Global | Device tokens, Notification titles and bodies |
| Apple Push Notification service | Delivery of push notifications to iOS devices. | Global | Device tokens, Notification titles and bodies |
| SMTP email provider | Transactional email: invitations, notifications, password resets. | Configured per deployment | Email addresses, Message subjects and bodies |
Not yet in use
These integrations exist in the product and are not configured on any production deployment. No customer data has been sent to them.
| Subprocessor | Would be used for | Status |
|---|---|---|
| Sentry | Error tracking. | The integration exists and is disabled: with no SENTRY_DSN configured, no data is transmitted. Message contents are excluded by an allowlist and a secret register — see docs/observability.md. |
| Stripe | Payment processing for self-serve billing. | No payment account is connected. Card details would never reach our servers. |
This list is generated from the application source and updates in the same commit as the code that connects a service.