Friends feed and polls
What your people are playing
Overview
Switch the Games toggle to Friends and the same screen becomes a feed. Posts carry text, an optional category (Trophies, Questions, Memes or Reviews) and at most one attachment: a photo, a game card or a poll. You can like, repost, comment and share, mention someone with @handle, and block or report any post or person. The composer has quick tags such as Started Playing, #nowplaying and #justcompleted, and a 500-character limit. A poll has two to four options and runs for an hour, six hours, a day, three days or a week; adding one sets the category to Questions. Profiles show a picture, connected platforms and library stats, and onboarding suggests players who share your games.
How it works
- 1
Creating a post, voting and following are database functions called with your session, so the same rules apply whatever client asks.
- 2
Before a post is sent, a small on-device filter catches the worst words. Reports and blocks back it up on the server.
- 3
Votes are applied optimistically. Results bars fill after you vote or when the poll ends, and you can change your vote while it is open.
- 4
One database function builds the feed from your own posts, people you follow, their reposts, friends of friends, and popular posts from the last two weeks. Each row comes back with the reason it is there, which the app uses for labels such as “reposted by”. The newest posts come first.
- 5
The database drops anything you may not see, and blocked accounts disappear from each other's feed and search.
- 6
Likes, comments, reposts, mentions (up to the first ten in a post) and new followers write a notification row in the same transaction, which feeds the in-app inbox.
Key decisions
Visibility is enforced, not hidden
The data model supports public posts and friends-only posts, where friends means a mutual follow. If someone outside a restricted post's audience tries to comment on, repost or share it by its id, the database refuses. Today the composer publishes posts publicly.
Feed logic in one place
Building the feed in the database means the rules exist once. A new client, or a change to the app, cannot show a different set of posts or leak one the database would refuse.
The social layer is free
Friends, posts, polls and the feed are never behind the paywall. Pro sells a bigger library and no ads, not access to your friends; a community you have to pay to join does not grow.
