Feedcrumb
RSS and information consumption system
An experimental information-consumption system that normalizes RSS/Atom sources into a calm reading surface.
- Status
- Experimental
- Type
- Product · RSS / Read-later
- Role
- Product architecture · Feed processing system
- Platforms
- Web · PWA
Context
RSS looks simple until different sources expose incompatible structures and article content has to be extracted reliably.
Problem
XML variants, malformed HTML, full-text versus summary feeds and rendering hundreds of entries require one controlled ingestion pipeline.
My role
- Product architecture
- Feed processing system
- Frontend / backend
Solution
I split fetching, parsing, normalization, Readability extraction, sanitization and persistence into explicit stages to make ingestion deterministic.
What was built
- RSS / Atom ingestion and XML normalization
- Article extraction and readable-content generation
- HTML sanitization and HTML → Markdown conversion
- Bookmarks and source management
- Virtualized large feed lists
- PWA foundation
System architecture
- RSS / Atom
- XML Parser
- Normalization
- Mozilla Readability
- sanitize-html
- Reader
- Supabase
Technical stack
Frontend
React 19 · TypeScript · TanStack Start · TanStack Router · TanStack Query · Tailwind CSS 4 · TanStack Virtual
Backend / Data
Supabase
Content processing
Mozilla Readability · fast-xml-parser · rss-parser · sanitize-html · Turndown
Platform
PWA
Important engineering decisions
- Never expose raw parser output to the UI; normalize into a shared entry model
- Make sanitization mandatory before the render layer
- Bound DOM growth with virtualization for large lists
Code / architecture excerpts
01const article = await pipe(02 fetchFeed,03 parseXml,04 normalizeEntry,05 extractArticle,06 sanitizeContent,07 persistArticle,08)(source);Data flow
- Feed URL
- Fetch
- Parse
- Normalize
- Extract
- Sanitize
- Persist
- Virtualized reader
Result / current state
Feedcrumb currently tests ingestion, reading, bookmarks and PWA behavior as one experimental product flow.
Engineering takeaways
- In content products, normalization can matter more than the interface.
- Explicit pipeline stages make failures easier to trace to their source.
OUT-LIVE / Visit product
Feedcrumb
Next project
PRJ-03Secil Studio