Cherry is the self-hosted alternative to ChatGPT.
ChatGPT ships one vendor's models and organizes work through flat single-level Projects that don't nest, with zero per-prompt cost visibility and every conversation and file stored on OpenAI's infrastructure. Cherry ships an infinite nested folder tree, the Pins/Clipboard/Snippets three-tier reuse system, per-message cost attribution across user, workspace, chat and model and private MinIO file storage with presigned URLs. Same GPT models via the same OpenAI API, professional workspace on top. Self-hosted end to end. Deploy on your hardware. Run it as an internal tool or spin it up as your own SaaS. You own the whole stack.
Five ceilings ChatGPT hits the moment AI is your job.
ChatGPT is a great consumer product. It falls apart the moment AI stops being a novelty and becomes the primary work environment for someone running dozens of concurrent projects.
One vendor, one model family
ChatGPT is OpenAI. Every prompt goes to a GPT model. Different tasks favor different models and different vendors. Cherry ships OpenAI and Anthropic adapters in the box, with a pluggable provider interface for Google, xAI, Perplexity Sonar or any future model. One workspace, every model, named on every response.
Projects don't nest
ChatGPT Projects are single-level containers. Every project holds files, custom instructions and chats, but you can't put a project inside another project. There's no sub-project concept and no deep hierarchy. Cherry's Folder entity is self-referential with duplicate-name checks per level, circular-reference prevention and delete-only-if-empty guards. Client work > 2026 > Q4 > discovery > transcripts is a valid path, drag-and-drop moveable, indexed for global search.
Custom GPTs lock reuse to OpenAI
A Custom GPT is a system prompt with tools and files, trapped inside ChatGPT's UI on OpenAI's models. Cherry replaces it with three portable primitives: Pins bookmark messages per chat, Clipboard saves passages per chat and Snippets are project-scoped reusable text with tags and one-click injection across every provider. They're portable, exportable and model-agnostic.
Files and history live on OpenAI's servers
Every upload sits in OpenAI's file storage. Every conversation lives in their database. Cherry ships private MinIO with local-disk fallback, presigned URLs with short TTL, filename sanitization and zero bucket-path exposure. Postgres holds the conversation history on your infrastructure. Nothing leaves your stack.
Per-seat billing hides per-prompt reality
ChatGPT Team bills every seat the same whether that user sends five prompts or five thousand. Finance can't attribute a project's AI cost, and the heavy user subsidizes the light one. Cherry logs a UsageEvent per message with tokens, dollar cost and latency attributed to user, workspace, chat and model. You can pull "what did the ACME engagement cost last quarter" in a single query.
Same GPT models, workspace primitives ChatGPT chose not to build.
Cherry keeps every prompt on the OpenAI API you already trust. What changes is everything above the model call. A self-referential Folder tree replaces flat Projects. Pins, Clipboard and Snippets replace copy-paste-and-hope. A UsageEvent per message replaces per-seat billing guesswork. Private MinIO storage replaces uploading to OpenAI. And a portable Preset in the Agent Library replaces Custom GPTs that die when OpenAI's product strategy shifts.
ChatGPT vs Cherry.
Same GPT models via the same OpenAI API. Everything above the model layer is different.
| Feature | ChatGPT | Cherry |
|---|---|---|
| Model providers | OpenAI only | OpenAI + Anthropic shipping, pluggable adapter for any provider |
| Project / folder nesting | Flat Projects, no sub-projects | Infinite, self-referential parents |
| Per-message bookmarks | No | Pins with scroll-to-highlight animation |
| Per-chat clipboard | No | Drag-reorderable saved passages, promote to Snippet |
| Cross-chat snippets | Custom GPTs (OpenAI-only, not portable) | Project-scoped, tagged, one-click injection to any chat |
| Model presets | Custom Instructions per user | Agent Library. Presets with model + temp + system prompt + tier |
| Model comparison | Not supported | Fire one prompt at multiple models side by side |
| Cost per prompt | Not shown | Tokens in, tokens out, dollar cost, latency on every message |
| Cost attribution | Per seat monthly aggregate | Per user, per workspace, per chat, per model |
| Usage dashboard | None for end users | Recharts. Today / 7d / 30d / billing cycle |
| Bulk folder upload | No | Replicates an entire OS folder tree transactionally |
| File storage | OpenAI infrastructure | Self-hosted MinIO with local-disk fallback, presigned URLs |
| Conversation history | OpenAI-owned | Your Postgres. Exportable, portable |
| Streaming transport | Proprietary | Server-Sent Events with cancel-mid-stream |
| Team workspaces | ChatGPT Team plan | Multi-workspace with Owner / Admin / Member roles, per-workspace BillingPlan and StorageUsage |
| SSO | Enterprise tier only | Available in Enterprise, configurable on your infrastructure |
| Keyboard shortcuts | Limited | 18 mapped across Navigation / Chat / Editor / Files |
| Connectors | Limited to GPTs and plugins | GitHub + Google Drive shipping, Notion / Slack / Jira on roadmap |
| Apps | Canvas, DALL-E, Code Interpreter (OpenAI) | Canvas, Code Interpreter (beta), Image Generation, modular |
| Outbound API | Not a first-class product surface | Cherry outbound API for third-party integration |
| Deployment | SaaS only | Self-hosted. On-prem, cloud, run as your own SaaS. You decide |
| Ownership | Vendor-owned | You own the code, the data, the deployment |
Frequently asked questions.
Can we still use GPT models in Cherry?
Yes. GPT is a first-class shipping provider via the OpenAI adapter. Every prompt that used to go to ChatGPT still hits OpenAI's models. The difference is that every message is logged as a UsageEvent with tokens, dollar cost and latency attributed to the specific user, workspace, chat and model. And on the same screen, Anthropic's Claude models are one click away with the same Preset semantics.
What happens to our Custom GPTs?
Custom GPTs are OpenAI-proprietary and don't export cleanly. Cherry replaces them with three portable primitives: Pins bookmark messages inside a chat, Clipboard saves passages per chat and drag-reorders them, Snippets are project-scoped reusable text with tags and one-click injection to any chat. Presets in the Agent Library capture the model, temperature and system prompt. Together they cover every Custom GPT use case, work across every provider adapter and export as plain text.
Can we really do folders inside folders?
Yes. The Folder entity is self-referential with duplicate-name checks per level, circular-reference prevention and delete-only-if-empty guards. Client work > 2026 > Q4 > discovery > transcripts is a valid path. Every folder shows in the sidebar, expandable, drag-moveable, searchable via global search across every message inside it.
Where do uploaded files live?
Files live in MinIO on your infrastructure, with a local-disk fallback if MinIO isn't wired. The storageKey is stored in the File record. The raw bucket path is never exposed. Every file access goes through a short-TTL presigned URL generated per request. Filenames are sanitized. If you shut Cherry down tomorrow, the files stay in your bucket. There's no vendor deprovisioning risk.
How does Cherry stream responses?
Cherry streams via Server-Sent Events over HTTP. Every provider adapter implements the streaming interface, so tokens appear the moment the model emits them. The Stop button cancels mid-stream. SSE is a standard browser API. There's no proprietary transport and no vendor lock-in.
How is Cherry deployed?
Cherry is self-hosted. Docker Compose orchestrates nginx, the Next.js frontend, the Express backend, Postgres, Redis and MinIO. Deploy it on your own hardware for internal use, run it in your cloud or spin it up as your own SaaS product. You own the code, the data and the deployment.
What does Cherry cost?
Contact sales for pricing. Every engagement is scoped to how you plan to deploy, who your users are, which provider adapters you need lit up and what support terms fit your organization.
Ready to move off ChatGPT and own the workspace?
Tell us how your team uses ChatGPT today, how many concurrent projects you juggle and where it hits the wall. We'll respond within one business day with an honest read on whether Cherry fits.