Product audit (v2.1)
A review of Lumen through six lenses (product, design, frontend, backend, security, growth), done on 2026-10-31 before calling the preview "finished". Each finding is either fixed in 2.1 or listed with a priority.
Fixed in 2.1
| Lens | Finding | Fix |
|---|---|---|
| Growth | Developer links (API, Architecture) pointed at GitHub docs that only existed on an unmerged branch, so they 404ed | Docs are served by the app at /docs/* from the same markdown, with Mermaid diagrams |
| Growth | The whole site was client rendered: nothing for search or answer engines to read | Server rendered comparisons, answers, docs, legal and changelog with JSON-LD (FAQPage, HowTo, Article, BreadcrumbList, SoftwareApplication), canonical URLs, sitemap.xml, robots.txt, llms.txt, Open Graph image |
| Product | No reason to come back daily | Daily and weekly reads, reminders (dashboard and extension notifications), radar of trending topics |
| Product | Discovery only from your own saves | Readers like you (anonymous, k ≥ 2) and the radar |
| Product | Numbers limited to streak and glow | Analytics: 12 week heatmap, completion, minutes and words, topics, sources, colours, reading hours |
| Product | AI only in the margin | MCP server and Connect agent: Claude Code, Claude Desktop, Cursor and any MCP client |
| Product | Pricing promised Team features and a PDF beta that do not exist | Team marked Coming soon, PDF marked coming soon, no fake trial |
| Design | Footer wordmark sat on a flat canvas | Floating tiles, highlight pills, lamplight glow and a halftone band behind it |
| Frontend | Unknown routes redirected home silently | Real not found page (SPA) and a 404 status for unknown server pages |
| Frontend | New users saw empty panels | Three step onboarding card on Home |
| Security | Anyone could create unlimited demo sandboxes | 8 per address per hour, hashed address, purged daily |
| Backend | Workers AI model retired under us | Model ids in one file, friendly ai_unavailable |
Fixed in 2.2
| Lens | Finding | Fix |
|---|---|---|
| Product | Public pricing before anyone has felt the product | Pricing only inside the app; landing CTAs lead to sign in; 7 day Pro trial for everyone |
| Product | First time readers were dropped into a full dashboard | Welcome card plus a spotlight tour of every area |
| Design | Native selects ignored dark mode in the extension | Custom picker; popup, settings and in page card follow the system theme |
| Product | No way to create a collection or note from the extension | New collection, optionally with a new Obsidian note, from the popup |
| Product | Asking what something means was only in the page toolbar | Ask, Summarize, Explain and Define from the popup too; Summarize back in the toolbar |
| Legal | No license (all rights reserved) on a repo the site calls open source | AGPL-3.0 |
Remaining, by priority
| P | Lens | Item | Notes |
|---|---|---|---|
| P0 | Backend | OAuth apps and secrets for Google and GitHub | Code is done; needs the consoles and wrangler secret put |
| P0 | Security | MCP OAuth (authorization server metadata, dynamic client registration) | Needed for Claude Desktop custom connectors without mcp-remote; bearer keys work today |
| P1 | Product | Stripe keys and a Pro price | Code is done (/api/v1/billing/*, /billing/webhook) |
| P1 | Product | PDF viewer (pdf.js page in the extension, files in R2) | Most requested format |
| P1 | Growth | Chrome Web Store listing | Needs screenshots (in the vault) and a privacy form |
| P1 | Product | Import: Pocket CSV, Readwise, Omnivore, Instapaper | Feeds the alternative pages |
| P1 | Backend | Full text search with D1 FTS5 | LIKE is fine until a few thousand items |
| P2 | Product | Weekly email digest (Cron + Email Sending) | Same data as weekly reads |
| P2 | Frontend | Keyboard shortcut sheet (?) and command palette |
|
| P2 | Backend | Rate limits per token on the API and MCP | Workers rate limiting binding |
| P2 | Growth | More answer pages from real search queries; Search Console | Check impressions after two weeks |
| P3 | Product | Teams: shared collections, roles | |
| P3 | Frontend | Firefox and Safari builds | WXT targets |
Things deliberately left out
- A social feed or public profiles. Readers like you stays aggregate and anonymous.
- A mascot or loud gamification. Joy comes from the objects, not noise.
- Storing the Obsidian key or vault contents on the server.