Overview
Voting is central to FoN. Users vote on whether content “fucks” or “does not fuck”, and these votes determine what rises to the top.Vote Types
Authenticated Voting
Registered users can cast votes that carry full weight:fucks- This content fucksdoes_not_fuck- This content does not fuck
Anonymous Voting
Unauthenticated users can also vote using browser fingerprinting:upvote- Equivalent to “fucks”downvote- Equivalent to “does not fuck”
Anonymous votes use fingerprinting to prevent vote manipulation. Stricter rate limits apply.
Vote Response
Successful votes return the vote record:Getting Your Votes
Retrieve all votes you’ve cast:Vote Counts
Each upload tracks vote counts:| Field | Description |
|---|---|
upvotes | Number of “fucks” votes |
downvote_count | Number of “does not fuck” votes |
Changing Votes
Users can change their vote by submitting a new vote for the same upload. The previous vote is replaced.Rate Limits
Voting is rate limited to prevent abuse:| Vote Type | Limit | Window |
|---|---|---|
| Authenticated | 20 votes | 1 hour |
| Anonymous | Stricter | 1 hour |
Shadow Banning
Admins can shadow ban users. Shadow banned users:- Can still vote normally
- Their votes are recorded
- Their votes don’t affect counts
Best Practices
Cache vote state locally
Cache vote state locally
Track which uploads the user has voted on to prevent redundant API calls.
Handle rate limits gracefully
Handle rate limits gracefully
When rate limited, inform the user and wait before retrying.
Use authenticated voting when possible
Use authenticated voting when possible
Authenticated votes are more trusted and less strictly rate limited.