Skip to content
available for projects000%
All projects
PRJ-04SYSTEM CASELiveSaaS · Reading discovery

Bookcrumb

Personal reading discovery and route system

ReactSupabase
Paddle

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
CTX-01

Context

A flat discovery list does not explain why a book fits the reader now. Bookcrumb treats recommendation as an ordered route with memory.

PRB-01

Problem

Mood, theme, pace, profile and history signals had to become one recommendation context that remains consistent across routes, notes and membership state.

ROL-01

My role

  • Product and systems architecture
  • Recommendation context
  • Monetization
SOL-01

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.

BLD-01

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
ARC-01

System architecture

Recommendation architecture
  1. Reader Profile
  2. Mood / Theme / Tempo
  3. Reading History
  4. Recommendation Context
  5. Reading Route
  6. Books / Notes / Memory
STK-01

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

DEC-01

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-01

Code / architecture excerpts

Reading route modelTS
01type ReadingRoute = {
02 mood: Mood;
03 pace: ReadingPace;
04 themes: Theme[];
05 stops: BookStop[];
06 memoryContext: ReaderMemory;
07};
OUT-01

Result / current state

Bookcrumb is live with discovery, routes, notes, memory and paid membership combined into one reading experience.

LRN-01

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

Visit product

Next project

PRJ-05Lumoria

AVAILABLE FOR PROJECTS · PRODUCT & SYSTEMS ARCHITECT · TAKEOVER / STABILIZE / OPERATE · WEB · ANDROID · WINDOWS · AHMET CANAL

Contact

Has your product grown faster than its system?

Send the current situation, your biggest blocker and the outcome you want. We will clarify scope together.

Availability

Open to new consulting and project-based work.