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...
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:
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:
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!