I want something
that's better than this.
And I'm not sure exactly what it is
but I think that we could build it
if we try together.

[…]

And that very same night,
kids all across the earth
felt lonely and confused,
frightened and unsure,
and we're trying to find one another
through a system that keeps us apart.

—Evan Greer

It’s been clear for some time that FetLife has passed a tipping point. It’s the new behemoth everyone in their sphere of influence has to accommodate “because of their immense user base and perceived power,” to borrow Jeff Atwood’s words from a time not-yet-forgotten. But FetLife’s insulation away from the rest of the Internet is a serious problem.

Despite my making some noise about this problem, little actually improved. When I spoke about FetLife at the Atlanta Poly Weekend conference back in March, I discussed how prioritizing interoperability is a sort of social anti-censorship measure:

Since anything that declares itself sexuality-related becomes a target for censorship, building sexuality-specific infrastructure is a recipe for disaster.

[…]

I’m suggesting that for both users of a network, like you and me, as well as creators of networks and networking tools, like […] FetLife’s founder, John Baku, interoperability should be prioritized.

For example, I think the single best thing about FetLife is its “Events near me” page, but the single worst thing about it is that none of these events are findable from outside FetLife. […] FetLife is currently incompatible with any other network. […] This is also culturally dangerous because it nurtures an in-group/out-group mentality among FetLife users. But the “you’re either with us or against us” mindset offers no space either for allies or dissension, so the longer FetLife remains a technological monoculture, the more it becomes a social ghetto.

Unfortunately, to date FetLife seems at best disinclined and at worst actively hostile to the prospect of interoperating with the rest of the Internet. So, in an attempt to address this issue myself, I began writing a couple software tools with the aim of demonstrating the usefulness of integrating FetLife with other services. Both tools are showcased at the end of this post.

FetLife’s Terms of Use explicitly prohibit the “use [of] automated means, including spiders, robots, crawlers, or the like to download data from any BitLove Inc Network database.” I hope the spirit of these terms do not match their liability-limiting letter, because if improving things means breaking The Rules, then I’ll fucking break them.

Like Facebook before it, and AOL before Facebook, FetLife seems almost eager to repeat others’ mistakes. Here, too, Jeff Atwood provides useful historical context:

It was so clear to me back in 1999 that AOL was doomed. But at the time, any criticism of AOL was heresy. […] Ten years later, is AOL is even relevant? Does anyone care?

The lesson I take from this is that no matter how wonderful your walled garden is, it can’t compete with the public, open internet.

It’s clear to me that FetLife, like its walled garden predecessors, is doomed unless it rethinks its approach. Technological interoperability is a bit like sex; yeah, having sex will potentially expose you to more unknowns than if you never have any, and that’s risky, but if you adhere to safety best-practices, you’re likely to find it very rewarding. Abandoning the walled garden mentality isn’t just good for the services you interface with, it’s also good for you.

Case in point, I didn’t notice FetLife had a persistent backdoor account access security problem until I started poking at its technical implementation. I wasn’t even looking for flaws, but rather learning enough about its inner workings so I could build tools that interoperated with the service. Trying to make FetLife better in one way quickly revealed other, unrelated avenues for improvement. Another way to improve FetLife is to encourage people to tinker and poke and test it—whether FetLife likes it or not, whether it adheres to The Rules or not.

Make no mistake: for FetLife to actually remain a viable for-profit service, then we—its users—are going to find ourselves increasingly commoditized. Locked in their capitalistic, every-man-for-themselves ideology, these competitive businesses treat their users as another commodity to control rather than the seeds generating their capital in the first place. But don’t take my word for it, take John Baku’s own Twitter bio:

Picking a fight with the Sex 1.0 players. I might be David but you are a dumbass Goliath.

Well, I ask you to consider: if FetLife is David and the “Sex 1.0” players are Goliath, and if this is indeed a fight, then we’re a bunch of raw materials! But we’re raw materials that don’t mean to become weapons in others’ fight. Weapons never end fights, they only escalate them. We can’t win by being weapons, but we can win by changing the game.

Ironically, most social networking businesses, including FetLife, are incredibly anti-social, yet this mindset is fundamentally antithetical to the principles on which the Internet and the Web were designed:

[T]he Web is a technology that puts control into the hands of its users.

This is why we don’t need to wait for FetLife’s blessing to write tools that interoperate with it. We’re already interoperating with it through software. And, y’know what? Software isn’t so different from you and me.

But perhaps more importantly, I’m not even asking for FetLife’s blessing because I want you, dear reader, to understand that no one ever needs permission to make things better. In other words: fuck The Powers That Be, and their Terms.

New FetLife Tools

The two quick ‘n’ dirty demo tools I wrote are the Better FetLife Userscript and the FetLife Bridge StatusNet plugin. The former is a downloadable script you install in your browser to easily move (export) user profile and event data from FetLife.com pages into your address book and calendaring application of choice, such as iCal or Google Calendar. The latter is a cross-posting tool that allows StatusNet users to post a FetLife status update whenever they publish a “tweet.”

Both tools work well, but are still crude, lacking in professional polish. I’m publishing them in this state anyway because I haven’t the energy to perfect them on my own, but maybe you can help. Also, kaizen, CANI, and all that jazz.

Better FetLife Userscript

With FetLife now nearing a million users, they’ve “made it.” If you want to know what’s happening in any sex-positive social sphere, it is now almost necessary to monitor FetLife rather than ignore it. More and more often I’m seeing events ranging from casual meetups to local organizations’ meetings to professionally-promoted parties getting listed on FetLife but nowhere else. Perusing FetLife’s events section is fast becoming a requirement to stay in-the-know about your local Scene goings-on.

Some savvy organizers keep public calendars for their own groups, but many of these are poorly maintained, out of date or inaccurate; FetLife’s where it’s at. Enter the Better FetLife Userscript: a (currently only Firefox) browser plugin that copies event information from FetLife into a Google Calendar, Yahoo! Calendar, Apple iCal event and more. Here’s a short video showing you how to install and use the tool:

Since creating this video demo, I also added the ability to export a FetLife user profile as an address book contact (in vCard format). Now you can quickly download events and people to your personal computer without having to copy-and-paste anything from FetLife. In the future, I’d also like to see features to accomplish the following tasks:

  • Export all events on a single listing page in addition to the individual event pages.
  • One-click cross-posting of FetLife Journal entries to a MetaWeblog API-enabled blog (like WordPress, Blogger, etc.), pre-populated with proper link-back, citations, and source attribution.
  • One-click cross-posting of FetLife pictures to Flickr, Picasa Web, or another popular image sharing service.
  • Linkify the URLs in comments on FetLife status updates.
  • Anything and everything else you can dream up to make FetLife better from the client side. (Just leave a comment on the project page or the project’s UserScripts.org page to let me know what you come up with.)

Some of these things are already possible in specific, limited ways. For instance, you can use the “Share on Tumblr” bookmarklet to select and cross-post any text or images on a FetLife.com page to your Tumblr blog. You can do something similar with the PressThis! bookmarklet for WordPress. Those are decent solutions for more specific workflows, but I’d still like something more generally useful.

FetLife Bridge StatusNet Plugin

If you’ve “friended” me on FetLife (and if you haven’t, please feel free to), you may have noticed I’ve appeared a lot more active there by posting many status updates. In fact, these updates are coming from my own website running an open source Twitter clone called StatusNet. My site automatically cross-posts to FetLife every time I send a “tweet.” It’s my way of practicing what I preach:

[W]ith regard to your own personal distribution network’s structure, I’m suggesting that you use FetLife and Facebook and your own WordPress blog, or whatever other services and platforms you have the resources to utilize. In other words, don’t put all your eggs in one basket since this kind of diversification offers redundancy on the distribution network level itself.

I wrote the FetLife Bridge StatusNet Plugin to acquire “the resources to utilize” a distribution network that I was ignoring. That’s why, if you follow me in numerous social networking venues, you’re likely to see similar content on all of them: the Internet makes it inexpensive for me to “literally” be in multiple places at once, letting you control where and when you want to see me. In the future, I’d like to see a similar tool that bridges Twitter to FetLife so those of you using both of those services can duplicate your Twitter posts as FetLife status updates without needing to host your own StatusNet installation.

In particular, I’d like to improve this plugin so that it uses StatusNet’s Foreign service class instead of my own janky getup, but I haven’t gotten around to learning how to do that yet. (And it’s not like anyone’s subsidizing me for doing any of this.) For now, it should work smoothly on any StatusNet installation with PHP 5.2 and up.

To use the FetLife Bridge:

  1. Download and install it as you would any of the other StatusNet plugins, that is, by copying the plugin folder into the local/ folder.
  2. Activate the plugin by adding the following to the bottom of your StatusNet config.php file:
    addPlugin('FetLifeBridge');
  3. Navigate to the FetLife Settings tab in the Account menu and enter your FetLife username and password, as shown in the screenshot below:

Security-conscious users (especially those installing this on a shared host) should note that the plugin currently stores your FetLife password in an unencrypted text file, so once you configure the plugin you may want to manually restrict the permissions on the automatically-generated local/FetLifeBridge/fetlifesettings.ini file (another big reason I want to use the Foreign service class soon).

What Happens Next?

The software above serves simply to scratch my own itch and to give you a taste of what is possible. These are just two of an infinite number of ideas. How about a tool that periodically polls your FetLife account for your latest activity and moves data in the other direction? (A kind of poor man’s ActivityStream?) Maybe a tool that extracts all the listed relationship data from a given profile and creates a visualization using GraphViz? (It’ll take your game of six degrees of separation to a whole new level!)

The possibilities are endless. So long as you behave responsibly, don’t let anyone say you can’t scale these walls. After all, we’re from the Internet. Just let ‘em try to fucking stop us. ;)

In the end, I want something that’s better than this. And I’m not sure exactly what it is, but I think that we could build it if we try together…but I’ve got a feeling that we’re winning as I hear more and more and more of us say: I want something that’s better than this.

Update: Check it out! Other people are beginning to write interoperability-focused tools. In light of that, I’ll be adding links to other tools as I am made aware of them to the following list.

  • FetLife2GCal — Adds 1-click export of events listed on FetLife to Google Calendar to Firefox. Published by Stefan Knotts.
  • Wrote a tool? Leave a comment, send me an @-mention on Twitter, or otherwise let me know and I’ll add it to this list.