Enterprise
Tiers & Pricing
Understand the three-tier system with build-time code stripping, config-level enforcement, and runtime guards.
Overview
Memcity has three tiers — all with one-time pricing (not a subscription):
| Tier | Price | License |
|---|---|---|
| Community | Free | Apache 2.0 |
| Pro | $79 one-time | Commercial, single developer |
| Team | $179 one-time | Commercial, up to 10 developers |
You buy it once, you own it forever. No recurring charges, no usage-based billing for the component itself. (You still pay for Jina and OpenRouter API usage, but those are pennies per query.)
How the Tier System Works
Memcity's tier system is unique in that it enforces feature access at three separate layers. This isn't just config flags — it's defense in depth:
Layer 1: Build-Time Code Stripping
When you download the Community tier, the Pro and Team code is physically not there. It's removed at build time by a stripping tool that produces tier-specific distributions.
This means:
- Security — Community users can't reverse-engineer Pro features because the code doesn't exist in their distribution
- Bundle size — Community builds are smaller because they don't contain unused code
- No dead code — Every line in your distribution is code your tier can actually use
Layer 2: Config-Level Enforcement
Even if the code were somehow present, the configuration system prevents lower tiers from enabling gated features. When Memcity merges your config with defaults, it silently overrides any features your tier doesn't support:
// On Community tier:
const memory = new Memory(components.memcity, {
tier: "community",
search: {
reranking: true, // Silently overridden → false
enableHyde: true, // Silently overridden → false
},
graph: {
enabled: true, // Silently overridden → false
},
enterprise: {
acl: true, // Silently overridden → false
},
});
// All gated features are disabled. No error, no crash.Layer 3: Runtime Guards
If you call a method that requires a higher tier, you get a clear error:
// On Community tier, calling a Pro method:
await memory.ingestUrl(ctx, { url: "https://example.com" });
// Error: "ingestUrl requires Pro tier or higher.
// Current tier: community. Upgrade at memcity.dev/#pricing"Feature Matrix
Search Features
| Feature | Community | Pro | Team |
|---|---|---|---|
| Hybrid vector search (semantic) | Yes | Yes | Yes |
| BM25 keyword search | Yes | Yes | Yes |
| RRF fusion (merge semantic + BM25) | Yes | Yes | Yes |
| Semantic deduplication | Yes | Yes | Yes |
| Confidence scoring | Yes | Yes | Yes |
| Query routing (simple/moderate/complex) | - | Yes | Yes |
| Query decomposition (multi-part queries) | - | Yes | Yes |
| Query expansion (semantic variations) | - | Yes | Yes |
| HyDE (hypothetical document embeddings) | - | Yes | Yes |
| Jina Reranker v3 (cross-encoder) | - | Yes | Yes |
| Chunk expansion (surrounding context) | - | Yes | Yes |
| Temporal boost (recency scoring) | - | Yes | Yes |
| Citation generation (page/heading breadcrumbs) | - | Yes | Yes |
| RAPTOR hierarchical summaries | - | Yes | Yes |
Knowledge Features
| Feature | Community | Pro | Team |
|---|---|---|---|
| Text ingestion | Yes | Yes | Yes |
| Recursive + fixed chunking | Yes | Yes | Yes |
| Knowledge graph (entity + relationship extraction) | - | Yes | Yes |
| GraphRAG traversal (3 strategies) | - | Yes | Yes |
| File processing (25+ types) | - | Yes | Yes |
| URL ingestion | - | Yes | Yes |
| Batch ingestion | - | Yes | Yes |
| Cascading deletion | - | Yes | Yes |
Memory Features
| Feature | Community | Pro | Team |
|---|---|---|---|
| Episodic memory (per-user) | - | Yes | Yes |
| Memory decay + consolidation | - | Yes | Yes |
| Conversation tracking | - | Yes | Yes |
| User management | - | Yes | Yes |
Enterprise Features
| Feature | Community | Pro | Team |
|---|---|---|---|
| Per-document ACLs | - | - | Yes |
| Immutable audit logging | - | - | Yes |
| Usage quotas + rate limiting | - | - | Yes |
| Multi-organization support | - | - | Yes |
Limits
| Limit | Community | Pro | Team |
|---|---|---|---|
| Knowledge bases | 1 | Unlimited | Unlimited |
| Documents per KB | Unlimited | Unlimited | Unlimited |
| Developer seats | Unlimited (open source) | 1 | 10 |
Upgrading
Upgrading from Community to Pro (or Pro to Team) is seamless:
- Purchase your license at memcity.dev/#pricing
- Set your license key in
.env.local:bashMEMCITY_LICENSE_KEY=MEMCITY_PRO_xxxx-xxxx-xxxx-xxxx - Update your config:
ts
const memory = new Memory(components.memcity, { tier: "pro", // was "community" // Now you can enable Pro features: search: { reranking: true, enableHyde: true }, graph: { enabled: true }, }); - Install Pro/Team components:
bash
npx shadcn add @memcity/rag-pipeline
All existing data is preserved. Your embeddings, chunks, knowledge bases, and indexes carry over. The upgrade just unlocks new features for future operations.
Which Tier Should You Choose?
Choose Community if:
- You're prototyping or evaluating Memcity
- You have a single knowledge base with text-only content
- You need basic hybrid search (semantic + keyword)
- You're building an open-source project
Choose Pro if:
- You're building a production application
- You need the full 16-step RAG pipeline for high-quality search
- You want to process files (PDF, images, audio, video)
- You need episodic memory for personalization
- You need the knowledge graph for multi-hop reasoning
Choose Team if:
- You're building a multi-tenant SaaS application
- You need per-document access control (different users see different results)
- You need an audit trail for compliance (SOC2, HIPAA)
- You need usage quotas to control costs across organizations
- You have a team of up to 10 developers working on the project