werd.io and idno

May 31, 2013 | 1 comment

werd.io publishing screenI’m posting over at werd.io, a site I’ve set up based on my idno software.

I wrote a short technical introduction to the platform:

idno is a personal attempt at building a publishing platform that adheres to IndieWeb principles: own your own data, publish on your own site, use existing social websites for dissemination but not as an origin. I’ve also tried to use microformats where possible, allowing every page to contain lightweight semantic information, as well as making it skinnable, extensible, and social.

Right now I’m using it as a blog, but the intention is that it could power a whole community, or set of communities. It certainly has the back-end functionality and APIs to do so, and I’ll be writing more about those as time goes on. It’s not immediately obvious unless you’re logged in, but idno has a full plugin system, which allows anyone to write new content types, and syndicate to new sites. (For example, two existing non-core plugins push to Twitter and Facebook, depending on the Activity Streams object type of the content you’re posting.) Access permissions are also baked right into the data model, so you’ll be able to keep non-public content, and share it in a federated way.

I’m pretty excited about it – but I’m also just enjoying posting to it. It’s a breeze. I’ll be opening a community site based on the platform soon, so stay tuned – or take a peek at the GitHub repository.


March 30, 2011 | 5 comments

OnfloodFriday night was sleepless for me. I couldn’t stop thinking about a simple idea I had, riffing off of Color and some of the technology I’d built for OutMap:

What if you could hook messages, photos, files and metadata to a particular location in space, and create an ad-hoc messageboard with this information based on where you were in the world?

I couldn’t put the idea down – so I built it.

To start, you set a location, either explicitly (by typing in the address) or implicitly (through your device’s location functionality). Onflood looks at the proximity of the messages around you, and sets an appropriate radius that it’ll draw messages from. For example, if there’s a lot of activity right near you, it’ll probably set a tight radius: if you’re on Edinburgh’s Princes St, you’ll only see messages within a mile of you. Meanwhile, more sporadic activity lends itself to a wider radius: at the time of writing, if you’re on Market St in San Francisco, messages are drawn from up to 606 miles away from you. This way no user is ever made to feel alone or like there’s no activity. You can, of course, manually widen or tighten the radius. You can also jump to other locations by entering a new address or clicking on messages around you.

My hope is that it’ll be useful for conference backchannels, neighborhood-specific information, and as a message-passing medium for local swarms like demonstration protests.


Onflood takes your location using the HTML5 geolocation API, which means that if you’re browsing on a GPS-capable device, it’ll use that, and otherwise it works out your location based on IP address and other ambient details. All compatible web browsers ask you for this information, so it’s never done behind your back, and you can always choose to manually enter a location instead.

Both geocoding latitudes and longitude coordinates from place names, and reverse-geocoding names from coordinates, are handled by OpenStreetMap’s awesome Nominatim API. I’d previously used Yahoo APIs for OutMap, but I found the OpenStreetMap endpoints easy to work with, largely accurate and developer-friendly. Plus, of course, you can run Nominatim from your own servers as well as OpenStreetMap’s hosted version. Open source wins out here.

So what’s to come? Right now, authentication is handled solely from Twitter. This is clearly something that I intend to change – OpenID and, yes, Facebook are to follow. I also have yet to implement photos and files (which will both be stored using Amazon S3). Finally, RSS and ActivityStreams feeds are also required.

You can think of this as a starting point. I’ll keep it up and running, and will continue iterating it. If there’s demand for it, I even have a solid business model in mind that will make it more than self-sufficient without annoying existing users.

Give it a try, and let me know what you think.