Bookcrumb
Personal reading discovery and route system
A recommendation product that builds personal reading routes from mood, interests, pace and reading history.
- Status
- Live
- Type
- SaaS · Reading discovery
- Role
- Product and systems architecture · Recommendation context
- Platforms
- Web · PWA
Context
A flat discovery list does not explain why a book fits the reader now. Bookcrumb treats recommendation as an ordered route with memory.
Problem
Mood, theme, pace, profile and history signals had to become one recommendation context that remains consistent across routes, notes and membership state.
My role
- Product and systems architecture
- Recommendation context
- Monetization
Solution
I modeled persistent reader profile and current intent as separate inputs, then built a flow that produces a Reading Route through a Recommendation Context.
What was built
- Mood / theme / pace context model
- Reading routes and route stops
- Reading memory and notes layer
- AI-ready provider architecture
- Paddle monetization and entitlement flow
- PWA and Cloudflare-compatible worker build
System architecture
- Reader Profile
- Mood / Theme / Tempo
- Reading History
- Recommendation Context
- Reading Route
- Books / Notes / Memory
Technical stack
Frontend
React 19 · TypeScript · TanStack Start · TanStack Router · TanStack Query · Tailwind CSS 4
Backend / Data
Supabase
AI / Billing
AI SDK · OpenAI-compatible provider layer · Paddle
Runtime
Vite · Nitro · Cloudflare-compatible worker build · PWA
Important engineering decisions
- Model recommendation as route context rather than a single-book score
- Keep the AI provider layer separate from the product domain
- Feed reading history back into future recommendation context
Code / architecture excerpts
01type ReadingRoute = {02 mood: Mood;03 pace: ReadingPace;04 themes: Theme[];05 stops: BookStop[];06 memoryContext: ReaderMemory;07};Result / current state
Bookcrumb is live with discovery, routes, notes, memory and paid membership combined into one reading experience.
Engineering takeaways
- In recommendation products, context design matters more than the model call.
- User memory should be an input to the next decision, not just an archive.
OUT-LIVE / Visit product
Bookcrumb
Next project
PRJ-05Lumoria