Summary
Currently the app only shows posts from your own timeline. A true social feed should aggregate posts from friends.
Proposed Implementation
- Read
foaf:knows from user's WebID profile
- Discover friend timelines via
pim:storage or solid:timeline predicate
- Fetch recent posts from each friend's
/public/timeline/
- Merge and sort all posts by date into unified feed
Considerations
- Request volume: Could be many HTTP requests (1 profile + N friends × M day files)
- Caching: Should cache friend profiles and posts with appropriate TTL
- Pagination: Load friends incrementally, not all at once
- Failures: Handle friends with no timeline or inaccessible pods gracefully
- Performance: Consider parallel fetching with concurrency limit
- Privacy: Only fetch from
/public/ paths unless explicitly granted access
Data Available
User's profile already has foaf:knows triples:
<#me> foaf:knows <https://www.w3.org/People/Berners-Lee/card#i> .
<#me> foaf:knows <https://deiu.me/profile#me> .
# ... many more
UI Changes
- Add "My Posts" / "All Posts" toggle
- Show friend's avatar and name on their posts
- Maybe add a "Following" sidebar section
Future Enhancements
- WebSocket subscriptions for real-time friend updates
- "Follow" button on profiles
- Separate
solid:follows predicate (vs foaf:knows)
Summary
Currently the app only shows posts from your own timeline. A true social feed should aggregate posts from friends.
Proposed Implementation
foaf:knowsfrom user's WebID profilepim:storageorsolid:timelinepredicate/public/timeline/Considerations
/public/paths unless explicitly granted accessData Available
User's profile already has
foaf:knowstriples:UI Changes
Future Enhancements
solid:followspredicate (vsfoaf:knows)