ShaveFan is a shaving-focused community centered around link aggregation and discussion, launched on July 5th, 2019. The administrator is shavefan, contact him with any support issues. ShaveFan was opened by shavefan with careful design touches to encourage a healthy community:

Tags and Topicality

When links or stories are submitted, they must be tagged by the submitter from a list of predefined tags. Users can choose to filter out or subscribe to all submissions with particular tags (example: forum.rss) or combinations of tags (example: forum,blog.rss). All users see all stories by default. The tagging system works this way for three reasons:

  • It keeps the site on-topic by only allowing a predefined list of tags. These tags represent what most of the users of the site want to read, so content that does not fit into any of those categories should not be submitted. It also keeps stories organized and more easily searchable.

  • It promotes discussion.

  • It keeps the community coherent. Often stories contain discussion about more than one topic, yet on other sites they are confined to a single category/forum, limiting the exposure. The link could be submitted to more than one forum, but then each conversation would remain separate and users would rarely interact with users from other forums. On this site, the story would simply be tagged with multiple tags and all users would see all discussion about the story in a single location.

Creating new tags and retiring old tags is done by the community by submitting, discussing, and voting on meta-tagged requests about them, and these events are logged. To propose a tag, post a meta thread with the name and description. Explain the scope, list existing stories that should have been tagged, make a case for why people would want to specifically filter it out, and justify the increased complexity for submitters and mods.

Invitation Tree

The full user tree is public and each user's profile shows who invited them. This provides some degree of accountability and helps identify voting rings.

New users must be invited by a current user, though there is no formal vetting process. Invitations are used as a mechanism for spam-control, to slow registrations to a pace we can acculturate and to encourage users to be nice, not to make the ShaveFan userbase an elite club. The quickest way to receive an invitation is to talk to someone you recognize from the site. If you wrote a link that was posted, definitely contact someone for an invite, we'd love to have you in the discussion. Finally, if you can't find anyone you know in the invitation tree and didn't author something posted to the site, you can request an invite.

There's no limit on how many invitations a user can send (though we might at some point, to manage growth). When accounts are banned for spam, sockpuppeting, or other abuse, moderators will consider disabling their inviter's ability to send invitations or, rarely, also ban them.


All story and comment ranking on this site comes from user activity. All users have equal votes, with no special priorities or penalties for specific users or domains. Moderators have no ability to raise or lower the rankings of stories or comments (besides voting like any user). Per-tag hotness modifiers affect all stories with those tags, but these modifiers (and changes to them) are public. Domains used for marketing analytics are banned and tracking parameters are removed from links (look for TRACKING_DOMAINS and utm_.

Users can flag stories and comments when there's a serious problem that needs moderator attention. Users must reach 50 karma to flag. To guide usage and head off distracting meta conversations ("Why was this flagged!?", etc), flagging requires selecting from a preset list of reasons.

For stories, these are: "Off-topic" for stories that are not about computing; "Already Posted" for duplicate submissions and links that elaborate on or responses to a thread that's less than a week old (see merging); and "Broken Link" for links that 404, 500, or present a paywall; "Spam" for links that promote a commercial service.

For comments, these are: "Off-topic" for drifting into meta or topics that aren't related to the story; "Me-too" when a comment doesn't add new information, typically a single sentence of appreciation, agreement, or humor; "Troll" for derailing conversations into classic arguments, well-intentioned or not; "Unkind" when uncharitable, insulting, or dismissive; and "Spam" for promoting commercial services.

Less than 1% of stories or comments get flagged, and users are not automatically punished by flags. Users whose stories or comments are getting flagged significantly more often are strongly encouraged to talk to mods about what's not working. (Please don't use flagging to try to push down topics or people you don't like; click "hide" on the story and move on rather than clutter up the mod dashboard with false alarms.)

Transparency Policy

All moderator actions on this site are visible to everyone and the identities of those moderators are public. While the individual actions of a moderator may cause debate, there should be no question about if an action happened or who is responsible.

If users are disruptive enough to warrant banning, they will be banned absolutely, given notice of their banning, and their disabled user profile will indicate which moderator banned them and why. There will be no shadow banning or other secret moderation actions.

The ShaveFan community is in a sweet spot that it's large enough to be worth asking questions about and small enough the answers make sense.

Other Technical Features

  • Mailing list mode can be enabled per-user to receive all new stories (including their plain-text content as fetched and extracted by Diffbot) and user comments as e-mails, mirroring discussion threads offline. This makes it easy and efficient to read new stories as well as keep track of new comments on old threads or stories, just like technical mailing lists or Usenet of yore.

  • Private messaging enables users to communicate privately without having to publicly disclose an e-mail address, and users can receive e-mail and Pushover notifications of new private messages.

  • Responsive design enhances functionality on smaller screens such as phones and tablets without having to use a separate URL, 3rd party (often read-only) websites, or mobile apps.

  • Integrated search engine covers all submitted stories and comments, including full-text caches of all submitted story contents. Searching for a keyword will often bring up relevant stories that don't even mention that keyword in the URL or title.

  • Story merging collects comments on a topic that would otherwise fragment across multiple stories. This keeps the front page from being overwhelmed by a single topic and the discussion together for those interested (or so disinterested they'd prefer to hide it). Moderators merge stories on the same topic submitted within a week.

  • Fuzzy-matching of submitted story URLs to avoid duplicate submissions of similar URLs that differ only in http vs. https, trailing slashes, useless analytics parameters, etc. When using the story submission bookmarklet, story URLs are automatically converted to use the page's canonical URL (if available) to present the best URL to represent the story, as defined by the story's author or publisher.

  • User-suggested titles and tags can be automatically applied to a story when a quorum of users agrees on a new title (such as removing a site's name, or appending the story's year of publication) or set of tags, without any moderator action required. (Log)

  • Hats are a more formal process of allowing users to post comments while "wearing such and such hat" to give their words more authority (such as an employee speaking for the company, or an open source developer speaking for the project).

  • Per-tag, multi-tag and site-wide RSS feeds are available to the public and logged-in users have private RSS feeds that filter out each user's filtered tags.