Skip to content
Menu
Justin Ball
  • About
  • Privacy Policy
Justin Ball

Turn WordPress Into Social Butterfly

Posted on March 6, 2008November 1, 2021

I have been pitching this idea of a distributed social network to everyone that can stand to listen to me. I realize that the conversation around WordPress and the future of social networking is heating up, but as it does I think it is important to begin thinking about implementation. It is fun to philosophize, but at the end of the day users want some toys to play with.

Chris Messina lays out his vision and the particular functionality associated with it on his wiki. Automattic picked up Buddy Press, and the code is still available on Google Code. For historical reasons here’s a thread on the WPMU forums about the activity around Buddy Press. There is another social plugin for WordPress called Xiando][4] that hasn’t gotten a lot of attention.
We are going to do our part and contribute as well.

As part of an effort to build a social network for Teachers Without Borders we came to a realization that it would be hypocritical to create a network filled with borders. Thus, we began thinking about how escape the social silos that constitute most social networks and bring the focus back to the individual. That focus led us to blogs which now leads me to the actual details of how to build a network around individuals.

I think it goes like this:

  1. Rich Profile in your blog
    • Ability to add all the fields associated with your typical social networking platform. This could be done in a folksonomic way. Let users add whatever fields they want and allow communities to converge on an ontology. Perhaps there could be a microformat standard for this.
    • We’ll get to what a community is in a bit, but different communities have different needs and would require variable metadata. For example, Teachers Without Borders would likely need to gather information about teaching skills, volunteer efforts, translation abilities etc. Let each community request this specific information from members, but store the data in each member’s blog. The primary goal is to center each individual’s activity around the space they own rather than lock it up in a data silo.
    • Everyone is building identity aggregators these days. That is stupid. Why should I gather up my data into a silo where some big company can benefit from my efforts. Instead gather the bits into the user’s own little part of the internet. If you want to gather up your data gather it up into a space you control.
    • Once the data is gathered up you can then control pass it back out to your friends. This won’t be hard as your friends will be stored locally.
  2. Friends
    • A blog roll looks an awful lot like a list of friends and XFN and FOAF let you express relationships, something Facebook doesn’t let you do. This part of your social network is obvious.
    • Create a friend request widget so that someone that finds you can initiate a relationship. Clicking the button would request a url to their blog. Behind the scenes your blog would contact their blog, discover what it can based on their profile and aggregated identity and report back to you. You would be notified of the request, provided with the other user’s information and then have an opportunity to describe your relationship with that person.
    • A first pass at this would leave everything public, but features could be added to control your interactions with your friends so that your boss doesn’t see pictures of you and your buddies from college. [Chris Messina has a handle on that idea using OAuth][5]
  3. OpenID
    • Your blog becomes your OpenID provider. Whether this is through delegation or by your blog actually being able to act as a provider I think is an open debate
    • OpenID becomes palatable because when you make a friend request on someone else’s blog it asks you for your blog url which just happens to be your OpenID. The interaction is natural rather than the odd login experience you currently get with OpenID that confuses most users. (I tried using OpenID and nobody understood that they needed to enter a url for their username. Normal users have a hard time getting that.)
    • OpenID lets you establish the initial connection with another user or with a community. During the interaction the two blogs exchange authentication information which will let them request data at a later time based established relationships between the blogs.
  4. Trust
    • Spam is a problem so when somebody makes a friend request they enter their url and login to their blog using OpenID. After that two blogs exchange data. If the person making the request is already trusted by someone you trust or is trusted by a community you trust then you would see their request.
    • It is possible to scan through networks and find out if the person is trusted 5 or 6 levels. This would work kind of like the DNS system where if one system doesn’t know the IP address they ask the next guy. Might have to be careful on this one though so that you don’t end up with bots constantly scanning your friend’s friends looking for people to trust.
    • If a user belongs to a community you trust they would float to the top.
    • The bots that want to be your friend could then float to the bottom, or an Akismet style system could be setup where users contribute to the list of known bad guys
  5. Stream of Consciousness
    • Since your blog now has all your friends setup it is easy to watch the data coming into their profile and suck that into your blog. You would go to your blog to see what your friend’s are up to or the stream could be feed back out to a reader.
    • Each entry in the stream could have a discussion attached. The discussion could then be fed back out when your friend’s harvest your blog. Think it as a distributed forum.
    • A share button would share things you find with your friends. You could even add a bookmarklet that dumps interesting crap you find on the net into your blog which would then be fed back out to your friends.
    • Applications are merely WordPress Plugins that interact with the stream. Riding in the MS 150 and need donations? Install an app and have it post a message to your stream. Want to poke someone? Add a plugin, the poke shows up in their stream and they can click to add the new plugin. Granted this would take a bit of work as the plugin would have to be installed, but we’ll figure it out.
  6. Chat
    • A dream feature for me would be a chat that understood my relationships. At night only my wife and video game buddies could see me. During the day I could shut down friend chatter while I am at work. No longer would I have to maintain 6 IM accounts. (Why hasn’t anyone done this?)
  7. Community
    • For the guys who are already popular community is not a problem. People flock to them. For a new blogger the question becomes how do I get people to read what I write? If you are into SEO the question is how do I get links? There are a lot of great writers on the Internet that are not A-list bloggers.
    • Make the A-list irrelevant. Outside of the geek community many people don’t care about the top bloggers. My wife wants scrapbook information. My dad is looking for motorcycle junkies. I would love to be able to push a button an have a short term community that lets me and a few other guys work together for a few months. Student study groups may not live beyond a semester but are extraordinarily valuable during their lifespan.
    • You sign up by adding your blog
    • A community will be made up of bloggers that apply to join. If a user wants to join but doesn’t have a blog WordPress MU will provide one if the community is built on this platform.
    • The community will aggregate posts from users and filter on tags, editor’s opinion or collaborative filtering based on how the community creator sets it up. Think millions of Diggs with the community in charge.
    • Even without a WPMU install you could spawn a community from your blog – handy for the throw away groups where we only need to collaborate for a short period of time.
    • New members who write well would find their way to the top of the heap so it is no longer difficult to get attention from people who matter to you.
    • Since the community is sucking in posts from its members it can connect users with one another based on existing friend relations and based on the content generated by each person.
    • A new community must be trivial to create
    • If the community needs profile specific meta data it can request that data when the user signs up. The data is added to the user’s blog and then harvested by the community. This information would be namespaced by the community url and therefore unavailable to other communities. I’m still thinking through that process.
    • Use Lucene to index incoming data and make recommendations.

This is what I have so far – at least that is what I have distilled from the pile of drawings on my desk. I will be interested to see how much of what we want to do overlaps Automattic’s efforts with [Buddy Press][6]. If we overlap I am hoping they get done first so we can use that. We will also be watching the [DiSo][7] project closely. This is a great opportunity for the community to build and individual and collectively own the social graph.

Let me know what you think.

[]: http://mu.wordpress.org/forums/topic.php?id=7448&page
[4]: http://xsnp.livelyblog.com/
[5]: http://factoryjoe.com/blog/2007/12/06/oauth-10-openid-20-and-up-next-diso/
[6]: http://ma.tt/2008/03/backing-buddypress/
[7]: http://diso-project.org/

Leave a Reply Cancel reply

You must be logged in to post a comment.

Recent Posts

  • Around and Back to WordPress
  • Last Lagoon (This Year)
  • Logan Sunset
  • Grami Del
  • FanX (and Lagoon)

Recent Comments

  1. jquery ajax readystate 0 responsetext status 0 statustext error – w3toppers.com on jqXHR Returning Readystate 0 and Status 0?
  2. Change MySQL default character set to UTF-8 in my.cnf? on Upgrade to MySQL 5.5.12 and now MySQL won’t start
  3. Around and Back to WordPress – Justin Ball on Gatsby 2.0 and Forestry
  4. More Stuff You Shouldn’t Hit on a Bike – Justin Ball on Why Cyclists Shave Their Legs. The Most Disgusting Post I Will Ever Make
  5. First Real Ride on the New Trek Madone 6.9 – Justin Ball on Rode Blacksmith Fork Canyon Tonight

Archives

  • November 2021
  • October 2021
  • September 2021
  • January 2020
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • February 2017
  • November 2016
  • September 2016
  • August 2016
  • May 2016
  • March 2016
  • February 2016
  • November 2015
  • September 2015
  • June 2015
  • May 2015
  • February 2015
  • January 2015
  • October 2014
  • September 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • October 2013
  • September 2013
  • August 2013
  • June 2013
  • May 2013
  • April 2013
  • February 2013
  • January 2013
  • December 2012
  • October 2012
  • September 2012
  • June 2012
  • January 2012
  • December 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005

Categories

  • 2.3.2
  • 3g
  • 3tera
  • 420
  • 51weeks
  • 64bit
  • accessibility
  • ActionView::MissingTemplate
  • activemerchant
  • ActiveRecord
  • activesalesforce
  • acts as taggable
  • acts_as_facebook_user
  • acts_as_nested_set
  • acts_as_state_machine
  • advertising
  • Affiliate Marketing
  • air quality
  • ajax
  • Alyssa
  • ama
  • amazon
  • amazon s3
  • amazon wishlist
  • amazon.com
  • ancestry
  • animal cookies
  • antshares
  • apache
  • API
  • apis
  • apollo
  • apollo client
  • apple
  • Apple Store
  • Apple Time Capsule
  • application
  • applications
  • Art
  • ASP.Net
  • assert_sent_email
  • asyncronous processing
  • Atomic Jolt
  • Aubrey
  • Authentication
  • authorize.net
  • Autumn
  • babelphish
  • back problems
  • backbone.js
  • backup software
  • backups
  • bacon
  • Battlestar Galactica
  • big companies
  • birthday.
  • bitcoin
  • black cherry vanilla coke
  • Black Smith Fork Canyon
  • blockchain
  • blog
  • Blogging
  • bluehost
  • books
  • BoomStartup
  • bread
  • buddypress
  • bug
  • bugs
  • business
  • business. mother's animal cookies
  • cache county
  • cache valley
  • California
  • Cancun
  • canvas
  • capistrano
  • Catholic Church
  • cereal
  • chauvet obey 40
  • checkbox list
  • checkboxes
  • chess
  • Chicago
  • china
  • chocolate
  • Christmas
  • Chrome
  • church
  • Cinderella
  • Cisco
  • cloud computing
  • cms
  • code generation
  • code sprint
  • coke
  • Comcast
  • commerce
  • Common Lisp
  • communities
  • Community
  • complex
  • Computers
  • conference
  • conference software
  • configuration
  • consulting
  • cookies
  • cooking
  • COSL
  • cosmos
  • count
  • courts
  • cows
  • create
  • creative commons
  • cryptocurrencies
  • cryptography
  • css animations
  • cucumber
  • currency
  • Cycling
  • database
  • dataloader
  • date
  • death
  • death ray
  • debugging
  • decentralized applications
  • dell dimension 8400
  • democray
  • deployment
  • developing
  • development
  • Devin
  • diet
  • digg
  • Digital Ocean
  • digital-photography
  • disease
  • disguise
  • disgusting
  • disney
  • disneyland
  • DiSo
  • disposable
  • DMX
  • Docker
  • domain name
  • domains
  • doom
  • dr strangelove
  • driving
  • Dryers
  • DVI
  • ec2
  • economics
  • economy
  • ecto
  • edge rails
  • Education
  • EFF
  • Egypt
  • ElasticSearch
  • elastra
  • elections
  • elixir
  • email
  • Ember
  • Ember.js
  • encoding
  • energy
  • engine yard
  • engines testing
  • engineyard
  • enterprise
  • epp
  • error
  • errors
  • ethereum
  • Event Machine
  • expercom
  • facebook
  • failure
  • Family
  • family history
  • family reunion
  • family search
  • family trip
  • Family Vacation
  • familysearch
  • familysearch.org
  • farmers market
  • fashion
  • fences
  • field trip
  • file uploads
  • Firebase
  • fireeagle
  • fix
  • flat tax
  • flowers
  • folksonomy
  • food
  • France iPad Internet access
  • free book
  • freedom
  • friendfeed
  • friends
  • fuel
  • Fun Stuff
  • funeral
  • Funny
  • funny kids
  • gadgets
  • galleries
  • gamenight
  • garden
  • gardens
  • garter snake
  • gatsby
  • gatsbyjs
  • gearsynper
  • geek
  • gelatin
  • gem
  • gems
  • gems ruby on rails
  • genealogy
  • genius
  • geocaching
  • geotagging
  • girl's camp
  • gistr
  • git
  • github
  • global
  • gmail
  • godaddy
  • Goliath
  • Google
  • google bomb
  • google docs
  • google hacks
  • Gorden B Hinckley
  • government
  • gps
  • grand master
  • grand-teton-national-park
  • graph ql
  • graphcool
  • graphql
  • graphqlsummit
  • great firewall
  • grocery
  • gross
  • group work
  • HABTM
  • Hacks
  • halloween
  • happy
  • has and belongs to many
  • has_many
  • hashgraph
  • Hawaii
  • health
  • health insurance
  • heirachy
  • Heirarchies
  • helps
  • Heroku
  • Holiday
  • home building
  • home improvement
  • home plans
  • homebrew
  • homework
  • hosting
  • house plans
  • House Stuff
  • housing
  • human rights
  • hyperledger
  • i18n
  • ice cream
  • icls2008
  • idaho
  • ideas
  • identity
  • identity_theft
  • iiw2006b
  • image
  • image processing
  • inbox
  • induglences
  • insane
  • inspiration
  • install
  • Instructure
  • Interesting
  • internet
  • Internet Explorer
  • InvalidAuthenticityToken
  • iPhone
  • jackson-hole
  • jamis buck
  • Javascript
  • JavaScript (Programming Language)
  • Javscript
  • Jenna
  • jeweler
  • jobs
  • joyent
  • jQuery
  • jungle disk
  • jurlp
  • justin ball
  • kids
  • knowledge workers
  • lambad
  • laptop case
  • launchup.org
  • lds
  • LDS church
  • learning
  • legal
  • Lego
  • legos
  • leopard
  • lesson
  • Levi Leipheimer
  • Liahona
  • library
  • life
  • lifestream
  • Links
  • litecoin
  • LMS
  • loans
  • localization
  • logan
  • Logan Canyon
  • logistics
  • logitech
  • LTI
  • lucene
  • lucene.net
  • Lucifer
  • luvfoo
  • mac
  • Mac OSX 10.6
  • Mac Ports
  • macbook
  • macbook pro
  • Maker
  • Maker Faire
  • manage
  • marginal changes
  • marion
  • marriage
  • Matt Mullenweg
  • me
  • medicine
  • Meetings
  • merb
  • Mexico
  • micro-blogging
  • microcontent
  • microformats
  • Microsoft
  • Middle East
  • migrations
  • mom
  • money
  • Monitor
  • morph
  • morph exchange
  • morphexchange
  • mortgage
  • mosso
  • motorcycle
  • mountain biking
  • Mountain West Javascript
  • Mountain West Ruby
  • mountain west ruby conference
  • mountainwestrubyconf
  • mozy
  • MRI
  • mtnwestrubyconf
  • muck
  • multi-user
  • music
  • mwjs
  • mwrc
  • mysql
  • mysql gem
  • MYTecC
  • Neat Stuff
  • neighbors
  • newgem
  • No Programming
  • node.js
  • nuclear weapons
  • nutcracker
  • Oahu
  • Oauth
  • oauth-plugin
  • Obama
  • Obie Fernandez
  • OER
  • OER Glue
  • olympic torch
  • olympics
  • omniauth
  • Open Assessments
  • open source
  • OpenContent
  • opened2007
  • OpenID
  • opensocial
  • optimism
  • ordered tree
  • oreos
  • osx
  • outdoors
  • outsourcing
  • ozmozr
  • pain
  • panasonic plasma
  • Paris
  • password recovery
  • payday lenders
  • paypal
  • pety
  • PGP
  • Phil Windley
  • photography
  • photoJAR
  • photos
  • php
  • pickle soup
  • pickup
  • piclens
  • Pictures
  • plasma tv
  • Playa Del Carmen
  • plugin
  • plugins
  • poinsettia
  • Political
  • politics
  • portablecontacts
  • PostGreSQL
  • PostGresSQL
  • poverty
  • privacy
  • problems
  • product: web
  • professional
  • Programming
  • Projects
  • prophet
  • protect_from_forgery
  • protests
  • prototype
  • psych
  • psychology
  • queue
  • rails
  • rails 2.0
  • rails conference
  • Rails I18n Textmate bundle
  • RailsConf
  • RailsConf07
  • rake
  • rant
  • react
  • react router
  • React.js
  • Reactive
  • reactjs
  • reactrouter
  • realestate
  • recipe
  • recommender
  • records
  • red green
  • redirect_to
  • regular expressions
  • relay
  • religion
  • render
  • replace
  • reputation
  • require.js
  • research
  • REST
  • restaurant
  • rFacebook
  • ridiculous
  • rightscale
  • ringside networks
  • river
  • river trail
  • robots
  • romantic
  • roomba
  • rpsec
  • rspec
  • rspec bundle
  • rss
  • ruby
  • Ruby On Rails
  • Ruby On Railst
  • ruby_on_rails
  • rvm
  • s3
  • sad
  • Salesforce
  • samsung ml1740
  • sarah sample
  • scalability
  • School
  • Science
  • scorm
  • scream
  • script.aculo.us
  • SDK
  • search
  • senate
  • SEO
  • serverless
  • servers
  • sessions
  • shopping
  • shortcodes
  • shoulda
  • sign language
  • simple
  • small business
  • snakes
  • Snelgrove
  • social graph
  • social media
  • social network dilution
  • social networking
  • social search
  • Social Software
  • socialsoftware
  • society2.0
  • soda
  • software
  • software design
  • Software Development
  • solidity
  • solo
  • soviet union
  • sovrin
  • sql
  • sql server
  • SQL Server 2005 Express
  • sql server 2008 express
  • starling
  • start ups
  • startups
  • starvation
  • stm bags
  • stm medium alley
  • storage
  • subversion
  • target
  • tax
  • Teachers Without Borders
  • tech
  • teeth whitening
  • template not foudn
  • templates
  • test-spec
  • testing
  • tests
  • textmate
  • thanksgiving point
  • The Japanese Mafia is controlling the weather
  • The Kids
  • The Plan Collection
  • The Web
  • theming skin
  • theplancollection
  • theplancollection.com
  • time
  • timr
  • tips
  • to_json
  • tools
  • Tour de France
  • transfer
  • translations
  • Travel
  • Travel, Disneyland, LA
  • trees
  • trip
  • truffles
  • tutorial
  • tutorials
  • tv
  • twitter
  • Uncategorized
  • uninsured
  • universe
  • unpack
  • unread
  • upgrades
  • uploader
  • uploads
  • user discovery
  • user interface
  • userfly
  • utah
  • utah government
  • utah senate
  • utf8
  • Vacation
  • values
  • vinegar
  • virtual hosts
  • walmart
  • warranty
  • Waste of Time
  • weather
  • Web
  • web design
  • web development
  • Web RTC
  • Web2.0
  • web2con2006
  • webservices
  • weddings
  • Wesley Connell
  • whereigo
  • wife
  • windows
  • Wired
  • wishlist
  • with
  • word press
  • Wordpress
  • work
  • workling
  • wpmu
  • xml
  • yeast
  • yellowstone
  • zentest
©2025 Justin Ball | Powered by SuperbThemes & WordPress