Ning at Emerging Technology '06

http://etech06.ning.com/

Ning: A Springboard For New Social Software
presented by Yoz Grahame and David Sklar.

Hello, and thanks for dropping by! Here you'll find all the relevant links for the talk we gave at ETech '06, The Ning Playground: A Springboard for New Social Software (and our five-minute slot in the Microformats session). We also have a couple of bonus goodies for you further down the page...

The screencast is up! (48 min, Flash streaming, 1024x768)

This is a complete screencast of the talk, with both full audio and video of what we were displaying. Thrill as I clone an app in seconds, then tweak its raw source code! Gasp as David exposes full Atom APIs to all public content! Coo in delight at the Cute Overload bunnies! (Note that due to the size of the screencast, you may want to put your browser in full-screen/kiosk mode. Also note that it starts with non-developer scenarios to show how most people will use Ning, then hits the developer stuff 12 mins in, then the Atom API demo 24 mins in, then things get a bit giggly at 33 mins as we show off user apps, before (at 38 mins) descending into a bizarre orgy of squealing at cute furry things. But watch the whole thing to get the full context, really.)

First of all, the most important URL of the lot: http://www.ning.com/ - jump in and start playing. It only takes ten seconds to register (you don't even have to wait for a confirmation mail).

The Ning Playground is a great platform for the creation of new social software. It's got great whipupitude - it's easy for non-developers to get their own apps up and running for free in a few seconds. For developers, we offer an extensive platform with loads of useful shortcuts that make it easy to knock together new apps with some unique features. Nothing to download and install, no sysadmin headaches, no hosting contracts - you can have your app up and running in minutes. It's free, powerful, evolutionary - and most of all, it's FAST. (If you want to see just how fast it can be to code an app from scratch, watch my six-minute screencast)

We started by cloning ReviewIt. It's a great little app for creating review databases for anything from electric guitars to mountain ranges. In the talk it's used to create the Kosher Restaurants Worldwide app. No coding required - the setup interface lets you customise the header, choose what you're reviewing and configure custom fields.

After that, I wanted to make a little group app for my trip to New York. I cloned Groups, a composite app which includes highly-configurable member profile, an events calendar, a forum and a photo gallery. What I ended up with was the Yoz's New York Trip app, a lovely bit of disposable situated software. (It's okay to make a disposable Ning app. You can have up to ten apps in a single account, completely free. Create one, delete it later, it's up to you.)

The Groups app has some very nifty features, my current favourite being our support for Microformats. We added this to the main Groups app over the weekend; you can now export group member profiles as hCards and subscribe to the events calendar through hCalendar. Even cooler, this handy widget lets you embed the upcoming events in external sites - for example, my blog. Thanks to microformats, anyone can just click the little icon in the corner of the "GROUP" box on my blog and subscribe to my New York trip schedule.

During the talk I made various code modifications to my New York trip app. If you own a Ning app, you can get at the raw PHP code underneath it and add whatever features you like. You can edit code through the web interface or SFTP; furthermore, Ning will automatically make backups of your code as you edit, so you can freely experiment and undo changes if something breaks.

The two modifications I made were:

  1. Adding the current weather in NYC to the front page (pulling in Yahoo weather RSS)
  2. Adding a new tab with a page that lists the kosher restaurants in the New York area. It does this by querying the Ning Content Store for objects in the Kosher Restaurants app that are in the right geographical area.

However - this is the really important bit - you don't need to be a coder to take advantage of the new features I've added. The new app I've created is just as cloneable as all the others. Bob saw the nifty features I'd added and thought that, since she's going to NYC soon as well, she'd take advantage. Ten seconds later she had Bob's New York Trip. Take a look down at the bottom right and you'll see another nifty feature that we added for this demo (but you can steal the code if you like) - clones of the app know about each other. You can also see the app Jon made for his Palo Alto trip. In his case he tweaked the new "Restaurants" page so that it pulls objects from the Palo Alto Restaurants app.

This is an interesting design pattern for user apps - instead of creating a monolithic app with lots of individual user configurations, each user can clone the app for themselves. This means they get total control over the app while keeping the most important feature of monolithic apps: data sharing. This can be a really useful model for, say, large non-profit organisations that are mainly composed of disparate, local, volunteer-based groups. Someone can create a template app which is cloned by each group; they don't need a server, they don't need technical expertise - they can be up and running in seconds. The clones can all know about each other and share their data on a national level while still giving each group full autonomy over its app if it wants to make changes.

So that's dealt with getting data in, sharing data between apps - but what about getting data out again? In the talk we proudly unveiled our new Atom API which lets you execute arbitrary queries against the Ning Content Store and get the results as an Atom feed. This means that every app on Ning gets a web services API with full read access without having to add a single line of code. Some of the queries are really nifty, too - here's how we got the list of clones of my NY Trip app. You can subscribe to that feed and be notified every time someone makes a clone. As part of our Atom API support we'll soon be rolling out write access too, using the Atom Publishing Protocol.

We finish by showing off some of the great apps already created by users on the system. At the last count we had about 8,000 apps, most of which have been created by non-coders for their own purposes. Here are some of the standouts:

Dogstars
Chris Pirillo (of Lockergnome created this app for dog-owners to share videos of their pups. It's a straight clone of Video Sharing - great for single-subject use.
Amy's Robot Linkit
The bloggers at Amy's Robot use a clone of our Bookmarks app for their own link blog.
KartMatch
Kyle Ford took the Bookmarks app and used it as a way for Mario Kart DS players to share friend codes with each other. (You might spot a few familiar names in there.)
Cinecrap
Another one from Kyle Ford, this time an innovative use of Wishlist to share and comment on the worst in cinema.
Anime Reviews
This is a great extension of our Bookshelf app - try clicking on the YouTube buttons. (It's by a coder who had never written anything for the web before.)
Wrinks
An interesting app created from scratch by Stephen Paul Weber - it's a kind of collaborative blogrolling system. It exports PHP and JSON for easy embedding in external blogs.
DeviantFeed
Fabricio Zuardi wanted an easy way to keep up with his brother's work on DeviantART, so he created this. Ning's great for putting together simple services quickly.
Girl On Girl
Consistently in our top five apps: Ivan Bueno made cloned This Or That and added some nifty web services-driven detail pages. Oh, and loads of beautiful women. (Not sure which was the success factor there.)

If you want to know more about Ning or hit any problems when building apps, please don't hesitate to give me a yell: yoz (at) ning.com. David can also be reached at david (at) ning.com

That's about it. We'd like to thank everyone at O'Reilly for both allowing us to talk and putting on such a fantastic conference. We'd also like to thank Tantek Celik of Technorati for letting us be part of his microformats talk (we love microformats so much now), Dick Hardt of Sxip for pointing at our hurried implementation (we got it up ten minutes after they released the code, how's that for speedy) and Tim Bray for his comments and mentions with regard to the new Atom stuff. It's been a ton of fun!