Stream Facility
Development Log
A running record of what's been built, what's underway, and what's on the horizon. Updated as the platform grows.
Last updated 2026-07-12
74
Features built
0
In progress
2
Planned
Reader Profiles & Personal Library
Readers have public profiles showing reading stats, favorite genres, reviews, and an 'open to beta reading' badge. A personal library tracks Want to Read / Currently Reading / Finished.
- ·Public profile at /readers/[id] with hero banner
- ·Beta reads completed stat, open-to-beta badge
- ·Want to Read shelf (private), reading list (public)
- ·Favorite genres tag-picker on dashboard profile page
Social — Follows & Following Feed
Authors and readers can follow each other. The Lobby shows a Following feed with recent books, beta campaigns, and worlds from followed authors.
- ·Follow / Unfollow button on author and reader profiles
- ·Follower and following counts on profiles
- ·Following feed in Lobby: new books, open beta campaigns, new worlds (last 60 days)
Social — Friends & Favorites
Two-way friend connections with a request/accept/decline flow, and a favorites system for bookmarking books, series, and worlds. FriendButton and FavoriteButton are wired to public pages. Dashboard pages manage both.
- ·friend_requests collection: symmetric request flow — send, accept, decline, cancel, unfriend; either party can end the connection
- ·FriendButton component: four states — Add Friend / Request Sent (cancel) / Accept+Decline / ✓ Friends (unfriend); wired to public author pages
- ·favorites collection: any logged-in user can favorite any public world, book, or series; toggle API returns updated public count
- ·FavoriteButton: heart icon with count, unauthenticated users see sign-in link; wired to world, book, and series public pages
- ·Dashboard → Friends: pending received requests with Accept/Decline, friends list with Unfriend, sent requests with Cancel
- ·Dashboard → Favorites: items grouped by type (Books → Series → Worlds) with inline Remove
- ·Gift shop 'From your network' recipient tab remains deferred — infrastructure is ready
Reader Passage Highlights
Logged-in readers can highlight any passage while reading free books or beta manuscripts. Four colors, optional notes per highlight, highlights persist across sessions. Analytics stats bar and public sharing now built.
- ·highlights collection stores userId, draftId, bookId, sceneId, sceneLabel, selectedText, color, optional note, isPublic: false
- ·Text selection in ReadingTree triggers a floating HighlightToolbar; onMouseDown preventDefault preserves the browser selection while clicking toolbar buttons
- ·Four swatches: yellow #fde68a, green #a7f3d0, blue #bfdbfe, pink #fbcfe8 — click to save immediately; 'Note' mode adds textarea and re-picker before saving
- ·highlightSegments() injects <mark> elements into React-rendered TipTap prose without a DOM traversal — works on text nodes, handles multiple highlights per text node
- ·Dashboard → Highlights: analytics stats bar (total, books, most-marked, colors) computed client-side; Share/Public toggle per highlight via PATCH /api/highlights/[id]
- ·Public page at /highlights/[id] renders passage, note, book, scene, sharer — no auth required; generateMetadata for SEO title
This log tracks platform features, not individual content. For questions or feedback, get in touch.