Social Network Design Patterns and Anti-Patterns
From GetSemantic
Building a social network? Please don't. There are enough of them already.
If you really have to, follow these principles. These are just good and bad practices. Social networks should have a purpose too, otherwise they just end up as Yet Another (Pointless) Social Network. You can play along at home too - check social networks off on the following criteria and see how well they do.
[edit] Plus
- Publishes RDF data - FOAF, SIOC etc. (+10)
- Publishes hCard on profile pages (+5)
- Publishes XFN for friends lists (+5)
- Makes data available from an open API (+5)
- Publishes RSS/Atom feeds (+3)
- Publishes JSON data (+3)
- Publishes "POX" (Plain Old XML) data (+3)
- Publishes hReview (+5)
- Publishes xFolk (+5)
- An unofficial source is available for RDF data (+5)
- An unofficial source is available for hCard/XFN (+5)
- Lets you import your social network from RDF (+5)
- Lets you import your social network from hCard/XFN (+5)
- Developers actively contributes to standards development - eg. microformats, FOAF etc. (+5)
- Company has published source code under the GPL (+5)
- Company has provided funding, sponsorship or venue for BarCamp or similar community events (+2 note: maximum - sponsoring lots of BarCamps will not make your site's problems go away)
- Allows you to login with OpenID (+10)
- Is an OpenID provider (+3)
- Provides a UI to help users sign-in from other networks (eg. Pibb.com) (+5)
- Valid, well-structured, semantic (X)HTML (+3)
- Uses well-designed URI structure (+3)
- Fully RESTful (+5)
- Allows users to declare their content licenced under Creative Commons (+5)
- ...and publishes relevant metadata using RDF, rel-licence or both (+5)
- Embeddable blog 'widgets' etc. are written using valid, well-structured, semantic (X)HTML (+5)
- Gender options are not limited to a binary choice (eg. Pownce) (+5)
- Provides functionality using Google Gears (+5)
- Follows the "Hijax" design principles for accessible JavaScript with usable fallback (+5)
- WCAG Level A (+5)
- WCAG Level AA (+10)
- WCAG Level AAA (+20)
- Flash use is done appropriately, and accessibly (+5)
[edit] Minus
- License disallows reuse outside of network (-10)
- Users or developers have been discouraged from reusing data (-10)
- Scrapers have been actively disabled by developers (-10)
- Network actively co-operates with flawed DRM/DMCA bullshit (eg. YouTube/Viacom) (-10)
- Network uses "import from address book" anti-pattern (-5)
- Network uses "import from address book" anti-pattern and spams friends (eg. Quechup) (-20)
- Stores passwords in the clear (-5)
- Has created proprietary version of otherwise open technology (-5)
- Has closed, "invite-only" betas (-3)
- Locks out users based on browser sniffing or features (-5)
- Claims to provide a blog or blog facility but does not provide RSS/Atom feed (-5)
- Claims to provide a podcast or podcast facility but does not provide RSS 2.0 with enclosures feed (-10)
- Uses the phrase "user-generated content" (-5)
- Uses the "javascript:" pseudo-protocol or other similarly JavaScript bad form (-5)
- Flash use is done inappropriately, inaccessibly or otherwise irritatingly (-10)
- Joe Clark has written a blog post about how inaccessible your site is! (-10)
- Use unrelated XML schemas to badly represent data, then claim openness. A friends list is not a feed. (-3)
[edit] See Also
This is blatantly and proudly ripped off from the work done by the Microformats community, specifically mf:social-network-anti-patterns, but done in anger after joining Yahoo! Mash and finding it quite, quite boring.

