B2C upload limits — chat attachments vs My Space¶
Status: in-progress LNO: L — defines the upload-side gating strategy for B2C monetization. Separates the ephemeral chat-attachment path from the persistent My Space path so each is gated on the right lever. Owners: @bhanu Last updated: 2026-06-29 Roles affected: B2C free, B2C Pro (₹399). B2B users explicitly unaffected. Primary routes:
/chat,/myspaceSource of the ask: product direction, @bhanu (co-owner), 2026-06-29 planning session. Two prompts: (1) chat attachments should be capped at a small per-file size with a low per-conversation count; (2) My Space / Knowledge Base limits stay as-is because ingestion is a separate pipeline. Related: Two-Tier Pricing, Unified Locks, My Space
TL;DR¶
Two upload surfaces, two pipelines, two gating strategies. Chat attachments (ephemeral) get a tier-neutral 3 MB per-file cap and a tight 5-per-conversation free count. My Space (persistent knowledge base) is untouched — 10 docs free, 5 MB free / 25 MB Pro per file. Per-file size is deliberately not a free-vs-Pro lever (market scan: nobody size-gates across tiers — it breaks on the first real upload). The monetization levers are volume (count caps, generation pool) and persistence (My Space as the paid library), mirroring Claude Projects.
Why this exists¶
Who asked for it¶
Self-initiated by @bhanu in the 2026-06-29 session. Not a user-reported ticket. Honest flag: Q1 (who asked) and Q4 (validated) are weak — a product hypothesis corroborated by a competitor scan rather than user interviews.
What user pain does it solve¶
The pre-change chat-upload limits (5 MB free, 10 per conversation) were too loose to create upgrade pressure on the upload path, while the old free-vs-Pro size split (5 MB free / 25 MB Pro) was the wrong lever: a free user's first phone photo or scanned PDF routinely exceeds a small free size cap, so a size-gated free tier reads as broken, not as an upsell. The market avoids this for exactly that reason.
Cost of not doing it¶
- Weak upload-side differentiation. Monetization leans only on download gating + the generation pool; the upload path carries no coherent free-vs-Pro story.
- Size-as-a-gate backfires if left in. Keeping 5 MB free / 25 MB Pro on chat means free users hit an arbitrary "file too fat" wall, generating support load and paywall-bounce that looks like price resistance but is really friction.
Validation¶
Weak / self-initiated, corroborated by market scan. No user interview. Competitor research (2026-06) across ChatGPT, Claude, Gemini, Perplexity, NotebookLM shows a consistent pattern: per-file size is tier-neutral everywhere; gating is on frequency/count and persistent knowledge bases (Claude Projects is Pro-only). Our My Space-as-persistence model already matches this. Treat upload-driven conversion as the open question to measure post-launch.
How we know it worked¶
Paywall-open events shift toward volume + persistence triggers (conversation/week caps, My Space full, gen pool), and first-upload friction does not spike — the flat 3 MB cap avoids the "first upload rejected" trap a 2 MB free cap would create.
Market context (why these shapes)¶
| Player | Per-file size free | Per-file size paid | Count gating | Persistent KB |
|---|---|---|---|---|
| ChatGPT | 512 MB | same | Free 3/day · Plus ~80/3h · 10/msg | — |
| Claude | 30 MB | same | 20/conversation both tiers | Projects = Pro unlock |
| Gemini | 100 MB | same | 10/prompt | — |
| Perplexity | ~50 MB | same | Free ~3/day · Pro unlimited | Spaces |
| NotebookLM | 200 MB | same | Free 50 sources · Ultra 600 | core product |
Takeaway: size is a safety limit, never a tier lever. Gate on volume + persistence.
The limit matrix¶
| Surface / limit | Free | Pro | Config key |
|---|---|---|---|
| Chat — size per file | 3 MB | 3 MB | b2c_chat_upload_max_file_mb (new, tier-neutral) |
| Chat — per conversation | 5 | unlimited | b2c_free_chat_uploads_per_chat (10 → 5) |
| Chat — rolling 7-day | 10 | unlimited | b2c_free_chat_uploads_per_week (unchanged) |
| My Space — docs total | 10 | unlimited | b2c_free_myspace_docs (untouched) |
| My Space — size per doc | 5 MB | 25 MB | b2c_free_upload_max_file_mb / b2c_pro_upload_max_file_mb (untouched) |
| AI gen pool / month | 10 | unlimited | B2C_FREE_POOL_SIZE (unchanged) |
| Chat messages | unlimited | unlimited | — |
| Study / Lesson Plan | 🔒 locked | unlocked | B2C_PRO_LOCKED_FEATURES |
Gating strategy¶
Three layers, each gated on a different lever and a different paywall UX.
| Layer | Lever | Free | Pro | Gate type | Error |
|---|---|---|---|---|---|
| 1 — Engagement (hook, ungated) | chat messages | unlimited | unlimited | none | — |
| chat attach size | 3 MB | 3 MB | none (safety) | 400 | |
| 2 — Volume (soft, metered) | chat / conversation | 5 | unlimited | soft | 402 |
| chat / 7-day | 10 | unlimited | soft | 402 | |
| gen pool / month | 10 | unlimited | soft (primary lever) | 402 | |
| 3 — Persistence + Power (hard, real Pro value) | My Space docs | 10 | unlimited | hard (strongest hook) | 402 |
| My Space size/doc | 5 MB | 25 MB | hard | 402 | |
| Study / Lesson Plan | 🔒 | unlocked | feature | 402 |
402-vs-400 rule¶
- 402 (paywall) only where Pro actually buys more: count caps, My Space size, gen pool, locked features.
- 400 (plain "max 3 MB") for chat attachment size — both tiers equal, so there is nothing to upsell. An oversize chat file is a validation error, not a payment prompt.
Two pipelines (why My Space is untouched)¶
- Chat attachments — ephemeral, per-session, uploaded then linked at chat-send.
- My Space — persistent, the B2B knowledge-base pipeline (GCS + ingest + vector store).
Because the two are separate code paths and separate storage, chat-limit changes cannot affect My Space ingestion.
Rejected alternatives¶
- Original 2 MB free / 10 MB Pro chat size split — rejected. Size as a tier lever backfires (market scan); 2 MB rejects a free user's first real upload. Collapsed to a flat 3 MB safety cap.
- Keep 25 MB on Pro chat — rejected. With size no longer a lever, a single tier-neutral 3 MB cap is simpler; the gen-pool/persistence levers carry monetization.
- Cap My Space docs lower to push upgrades — out of scope; My Space limits are explicitly untouched this pass (different pipeline).
Open questions¶
- Is 5 per conversation too tight for legitimate multi-page-paper uploads? Default: ship 5, watch the per-conversation 402 rate; relax if it bites casual users.
- Should the rolling 7-day chat cap (10) tighten once the gen pool proves the primary lever? Revisit post-launch with funnel data.
Changelog¶
- 2026-06-29 — Doc created. Chat size collapsed from a 2/10 MB tier split to a flat 3 MB; per-conversation free 10 → 5; My Space untouched.