Product diagram
Smoothie as one reading system.
This view shows how discovery, import, reading, smoothing, optimization, alternate layouts, and local persistence fit together as one product.
flowchart TB
U([User])
subgraph APP[ Smoothie App ]
direction TB
subgraph HOME[Home]
H1[For you
Prefetched ready-to-read articles]
H2[Library
Queued / Reading / Finished]
H3[Search / Import / Clipboard tray]
H4[Settings entry]
end
subgraph READER[Reader]
R1[Original mode
Default reading mode]
R2[Optimized mode
Optional best-reading version]
R3[Alternates
Optional on-demand layouts]
R4[Inline smoothing
Original mode only]
R5[Auto-scroll
Prompter-style reading assist]
R6[Focus assist
Recovery / checkpoint / rescue]
R7[Progress + scroll state]
end
subgraph SETTINGS[Settings]
S1[API key]
S2[Knowledge level]
S3[Theme]
S4[Focus assist toggle]
S5[Prepare Optimized on open]
S6[Smoothing language]
S7[Discovery topics]
S8[Trusted sources]
S9[Auto-scroll speed]
end
subgraph DISCOVERY[Discovery Engine]
D1[Curated sources / feeds / archives]
D2[Fetch discovery candidates]
D3[Rank using topics + trusted sources + reading behavior]
D4[Prefetch top picks]
D5[Deliver ready articles to For you]
end
subgraph INGEST[Ingestion Engine]
I1[File import]
I2[Clipboard import]
I3[Search-generated article]
I4[Extract / clean / parse]
I5[Save as article]
end
subgraph INTEL[Reading Intelligence]
A1[Search article generation]
A2[Smoothing model]
A3[Article understanding]
A4[Optimize decision
Heuristics + model]
A5[Optimized article generation]
A6[Alternate generation]
A7[Author intent / representation reasoning]
end
subgraph DATA[Local Data]
L1[Article library]
L2[Discovery candidates]
L3[User preferences]
L4[Cached optimized article]
L5[Cached alternate payloads]
L6[Reading progress + scroll position]
L7[Smoothed text state]
end
end
subgraph EXT[External Sources / Models]
E1[Publisher feeds / archives]
E2[Imported files / clipboard text]
E3[LLM providers]
end
U --> HOME
U --> READER
U --> SETTINGS
H1 --> READER
H2 --> READER
H3 --> INGEST
H4 --> SETTINGS
SETTINGS --> L3
E1 --> D1
D1 --> D2
D2 --> D3
L3 --> D3
L1 --> D3
D3 --> D4
D4 --> I4
I5 --> D5
D5 --> H1
E2 --> I1
E2 --> I2
H3 --> I3
I3 --> A1
A1 --> I4
I1 --> I4
I2 --> I4
I4 --> I5
I5 --> L1
L1 --> H2
READER --> R1
READER --> R2
READER --> R3
READER --> R4
READER --> R5
READER --> R6
READER --> R7
R1 --> L1
R7 --> L6
L6 --> R7
R4 --> A2
A2 --> L7
L7 --> R1
R4 -. marks stale .-> L4
R2 --> A3
A3 --> A4
A4 -->|worth optimizing| A5
A5 --> L4
L4 --> R2
A4 -->|not needed| R1
R3 --> A6
A3 --> A7
A7 --> A6
A6 --> L5
L5 --> R3
R5 --> L6
R6 --> L3
E3 --> A1
E3 --> A2
E3 --> A3
E3 --> A5
E3 --> A6
classDef app fill:#1f2630,stroke:#46586f,color:#e6edf3,stroke-width:1px;
classDef user fill:#f59e0b,stroke:#fcd34d,color:#0d1117,stroke-width:1px;
classDef ext fill:#142033,stroke:#3b82f6,color:#dbeafe,stroke-width:1px;
classDef data fill:#10221b,stroke:#34d399,color:#d1fae5,stroke-width:1px;
classDef intel fill:#2a1b12,stroke:#f97316,color:#ffedd5,stroke-width:1px;
class U user;
class HOME,READER,SETTINGS,DISCOVERY,INGEST app;
class DATA,L1,L2,L3,L4,L5,L6,L7 data;
class INTEL,A1,A2,A3,A4,A5,A6,A7 intel;
class EXT,E1,E2,E3 ext;