A Private ChatGPT Alternative Built Around Data Scoping
ChatOTL is a private ChatGPT alternative where each account is its own boundary: row-level security on every table, a private storage bucket path per user and conversation, short-lived signed URLs for file reads, and provider API keys stored per account.
"Private" is easy to claim and hard to verify. This page describes exactly what ChatOTL enforces, and where privacy still depends on someone else — namely the model provider that generates the reply.
What is enforced at the database level
- Conversations, messages, settings, uploads and knowledge-base documents all carry an owner and are filtered by row-level security policies.
- Uploaded files live in a private bucket under a userId/conversationId path; reads happen through short-lived signed URLs.
- Provider API keys are stored per account and are never shared between users.
- Administrative helpers live in a non-public schema and are not callable by anonymous clients.
Where privacy depends on a third party
The message you send is forwarded to the model provider you select in order to generate a reply. That provider's retention policy applies to that request. Bringing your own API key means the request is billed and governed under your own provider account.
What you control
- Which provider and model handles each message.
- Which files, if any, are attached to a thread or knowledge base.
- Deleting a conversation, which removes its messages from your workspace.
Limitations
- ChatOTL cannot make a third-party model provider forget a prompt you sent it.
- No end-to-end encryption: the server must read your message to forward it to a model.
- No claim of absolute security — the architecture reduces exposure, it does not eliminate it.
Frequently asked questions
Can other users see my conversations?
No. Row-level security policies restrict every read and write to the owning account.
Does ChatOTL train models on my chats?
No. Your messages are used to generate your replies, not to train models.
Can I use my own API keys?
Yes. Keys are stored per account and used only for your own requests.
What happens when I delete a conversation?
The conversation and its messages are removed from your workspace. Requests already processed by a model provider are governed by that provider's retention policy.
Read the security details first
The security page documents authentication, isolation, storage and MCP handling in technical terms.
Create an account