Overview
Deadline: 27 March 2026
A deployable shell that connects all the plumbing: app → BFF API → database → platform API layer. No feature logic yet — just the skeleton, auth, and spaces.
1. Authentication & Onboarding
- Signup page (auth method TBD — email/password, social/OAuth, etc.)
- Login page
- On first signup, automatically create a default space for the user (every user always has at least one space)
- Onboarding flow includes tier selection (see Billing & Tiers below)
2. Space Management
- Full CRUD: create, rename, delete spaces
- Space list view showing all user spaces
- Confirmation dialogs for destructive actions (delete)
- Default space cannot be deleted (or user must always have ≥1)
- Calls go through the platform abstraction layer (stubbed initially)
3. Navigation & App Shell
Three main navigation areas plus utilities:
- Spaces — space list + management (functional in MVP0)
- Explorations — placeholder page ("Coming soon" or empty state)
- Artefacts — placeholder page
- Notifications — indicator in nav (bell icon with badge), placeholder content
- Settings — placeholder page
- Profile — user avatar/icon in nav, links to profile page with basic user info
4. Billing & Tiers
Purpose
Tiers serve two functions:
- Cost recovery — the base subscription covers fixed per-user costs (hosting, database storage, file storage) so the platform isn't loss-making at rest.
- Capacity planning — tier limits (spaces, storage, credits) gate resource consumption, preventing lower-tier users from generating outsized load that could cause scaling issues in early growth.
How it works
- Base subscription (monthly, £) — covers infrastructure costs. Each tier sets limits on spaces and file storage.
- Monthly credit allowance — each tier includes a number of credits for LLM interactions, refreshed monthly.
- Additional credit purchases — users can buy extra credit packs at any time when their monthly allowance runs out. Credits purchased on top of the allowance do not expire at month-end.
- Payment processor: Paddle (merchant of record) — 5% + £0.40 per transaction.
- Hosting: Cloudflare Workers + D1 + R2.
Credit actions (action-based model)
1 credit = 1 atomic action. Sub-operations (title generation, next-step suggestions, feed grouping) are bundled into the parent action — no separate credit charge.
| Action | Credits | What it covers |
|---|---|---|
| Exploration message | 1 | Query + agent reasoning + tool calls + streamed response |
| Document ingestion | 1 | Conversion, chunking, embedding, metadata extraction |
| Artefact generation | 5 | Multi-round agent: snippet synthesis, structuring, full draft |
| Artefact regeneration | 5 | Same cost as initial generation |
Raw LLM cost per action (our cost)
Three model strategies compared. These are raw API costs before any margin.
| Action | gpt-4o-mini only | Mixed¹ | gpt-4o only |
|---|---|---|---|
| Exploration message | £0.001 | £0.001 | £0.019 |
| Document ingestion | £0.0004 | £0.0004 | £0.003 |
| Artefact generation | £0.004 | £0.059 | £0.059 |
¹ Mixed = gpt-4o-mini for chat/exploration/ingestion, gpt-4o for artefact generation and complex agents.
Monthly user profiles
| Profile | Messages | Artefacts | Documents | Total credits |
|---|---|---|---|---|
| Light | 50 | 2 | 5 | 65 |
| Active | 200 | 8 | 20 | 260 |
| Power | 500 | 20 | 50 | 650 |
Raw LLM cost per profile per month:
| Profile | gpt-4o-mini only | Mixed | gpt-4o only |
|---|---|---|---|
| Light | £0.06 | £0.17 | £1.08 |
| Active | £0.26 | £0.70 | £4.33 |
| Power | £0.64 | £1.75 | £10.83 |
Blended cost per credit
Weighted by typical usage mix (77% messages, 15% artefact credits, 8% ingestion):
| Model strategy | Cost per credit |
|---|---|
| gpt-4o-mini only | £0.001 |
| Mixed | £0.003 |
| gpt-4o only | £0.017 |
Credit price at different margins
What we charge per credit (included in tier + purchasable top-ups):
| Model strategy | 3–5× (4×) | 5–10× (7.5×) | 10–20× (15×) |
|---|---|---|---|
| gpt-4o-mini only | £0.004 | £0.0075 | £0.015 |
| Mixed | £0.012 | £0.0225 | £0.045 |
| gpt-4o only | £0.068 | £0.1275 | £0.255 |
Infrastructure costs (per user, monthly)
| Component | Cost | Notes |
|---|---|---|
| Cloudflare Workers | £0.005–£0.05 | £5/month shared; depends on user count |
| D1 database | £0.01–£0.05 | Storage + reads/writes per user |
| R2 storage | £0.006–£0.12 | Scales with tier storage limit |
| Total infra | £0.02–£0.22 | Negligible vs subscription price |
Paddle fees (per monthly payment)
| Subscription price | Paddle fee | % of revenue |
|---|---|---|
| £9.99 | £0.90 | 9.0% |
| £24.99 | £1.65 | 6.6% |
| £49.99 | £2.90 | 5.8% |
Proposed tier pricing (using Mixed model, 7.5× margin)
This is the recommended configuration. The table below shows what each tier includes and the unit economics.
| Explorer | Analyst | Strategist | |
|---|---|---|---|
| Monthly price | £9.99 | £24.99 | £49.99 |
| Spaces | 3 | 10 | Unlimited |
| Storage | 500 MB | 2 GB | 10 GB |
| Monthly credits | 100 | 400 | 1,000 |
| Credit value (at 7.5×) | £2.25 | £9.00 | £22.50 |
| Infra cost | £0.05 | £0.10 | £0.22 |
| LLM cost (at our cost) | £0.30 | £1.20 | £3.00 |
| Paddle fee | £0.90 | £1.65 | £2.90 |
| Total cost | £1.25 | £2.95 | £6.12 |
| Gross margin | £8.74 (87%) | £22.04 (88%) | £43.87 (88%) |
Note on margins: These look high, but marginal cost per user is inherently low for SaaS. The subscription revenue primarily covers fixed costs (development, salaries, marketing) amortised across the user base — not just per-user variable costs.
Additional credit packs (top-up purchases)
Priced at ~7.5× blended cost (mixed model), with volume discount. Paddle fees included.
| Pack | Price | Per-credit | Effective margin |
|---|---|---|---|
| 100 credits | £2.99 | £0.030 | ~10× |
| 500 credits | £9.99 | £0.020 | ~6.7× |
| 1,000 credits | £14.99 | £0.015 | ~5× |
Credits purchased as top-ups do not expire at month-end. Monthly allowance credits reset each billing cycle (use-it-or-lose-it).
Free tier analysis
Option A: No free tier
- Pros: Simpler billing, filters for committed users, every user generates revenue from day 1
- Cons: Higher barrier to entry, harder to demonstrate value before purchase, relies on marketing/demos to convert
- Best for: B2B-focused positioning where buyers evaluate before committing
Option B: Freemium (permanent free tier)
- e.g. 1 space, 100 MB storage, 30 credits/month
- Cost to us per free user: ~£0.09/month (LLM) + negligible infra
- Pros: Low barrier, viral growth, users experience value before paying, builds user base for metrics/fundraising
- Cons: Support burden from non-paying users, potential abuse, need rate limiting
- Best for: PLG (product-led growth) strategy, early-stage traction
Option C: Free trial (7–14 days of Analyst tier)
- Cost: up to ~£0.70 per trial user (14 days of active use)
- Pros: Users experience full product, clear conversion moment, time pressure to decide
- Cons: Some users will churn after trial without converting, need credit card upfront decision
- Best for: Balancing accessibility with revenue — most common SaaS approach
MVP0 scope
UI shows tier selection during onboarding and stores the selection. Credit balance is displayed but not consumed. Additional credit purchase UI is not required in MVP0. Billing integration via Paddle is a platform concern.
5. Design References
- Figma link: TBD — designs currently in progress
- Key screens required for MVP0:
- Login / Signup pages
- Onboarding flow (tier selection)
- Main app shell layout (sidebar nav, header, content area)
- Space list view
- Space create/edit/delete dialogs
- Empty state pages (explorations, artefacts, settings, profile)
- Notifications indicator placement
Designs should be available before implementation begins. Requirements here define what is needed; designs define how it looks.
6. Tech Stack
- Template app will be provided (Cloudflare-focused)
- Likely: React Router 7 + Cloudflare D1 + Workers
- Auth approach comes with the template
- Exact stack confirmed when template is available
- Requirements should remain stack-agnostic where possible
Platform Dependencies
Features MVP0 requires from the platform API:
| Platform API | Operations | Notes |
|---|---|---|
| Spaces | Create, list, read, update, delete | Core CRUD; includes default space creation |
| Users | Create, authenticate, read profile | User registration and session management |
| Billing / Tiers | Create subscription, read tier, list tiers | Tier selection during onboarding, limits enforcement |
| Credits | Read balance | Display remaining credits (no consumption in MVP0) |
All platform calls go through an abstraction layer that stubs responses until the real platform API is available. Some stubs may delegate to existing condelo-rag functionality.