what idno is

Some interesting developments in read write hosted technology from the
inventor of elgg ...

Read more ...

[[

This site runs on idno <http://idno.co>: an open source social publishing
platform that I've been working on for the past few months in my own time.

You may know that I co-founded Elgg <http://elgg.org>, the open source
social networking engine, which is used by the likes of Oxfam, NASA, the
World Bank and several national governments as a social intranet and
learning platform. The original thinking around Elgg happened a decade ago.
Given that, you shouldn't be surprised to learn that my original thought
experiment was: *What decisions would I make if I was building Elgg today,
in 2013? What would I do the same way, and what would I do differently?*

*Some technical decisions*

I knew that I could make a faster social networking platform, with a better
templating engine, and a much smaller codebase - even while sticking to PHP
as an underlying scripting language. Partially that's because PHP 5.3+ is a
much better development platform than earlier versions. It's also because
there are now some well-tested, intelligent back-end frameworks, like Symfony
2 <http://symfony.com/>, and front-end frameworks, like
Bootstrap<http://twitter.github.io/bootstrap/>
.

One of the major decisions I made when we built Elgg 1.0 was that not only
was it a hassle for plugin developers to write their own database schemas -
it was undesirable to the point of being dangerous. We effectively faked a
NoSQL schema in MySQL by creating a data model around entities (first-class
objects like users and blog posts), metadata, annotations and
relationships. People were taken aback, and it was row-intensive, but it
worked, and it continues to work today.

Nonetheless, today we have NoSQL, so
#idno<http://werd.io/search/?q=%23idno>is based around
MongoDB <http://www.mongodb.org/>. This means there are far fewer database
transactions involved - and adding new data to an object is incredibly
easy. Together with a plugin architecture based on lazy loading, and
Symfony's excellent observer pattern support, as well as the framework code
I've built, I'm able to write a new plugin in an hour or two. That's
important for a system I'm building in my spare time!

Meanwhile, all of the things about #Elgg
<http://werd.io/search/?q=%23Elgg>that were great - a plugin
architecture, granular access permissions - are
intact. And on top of that there's a faster framework, and a responsive
front-end that works really well in a mobile browser. Great!

*But that's not the end of the story.*

The #indieweb <http://werd.io/search/?q=%23indieweb> community has existed
for years as a force to advance the state of the independent web, and to
promote ownership of our own spaces.
IndieWebCamp<http://indiewebcamp.com/Main_Page>is an annual event for
creators to discuss their platforms, technologies
and ideas.

One of the big concepts to come out of
#indieweb<http://werd.io/search/?q=%23indieweb>has been
#POSSE <http://werd.io/search/?q=%23POSSE>: Publish (on your) Own Site,
Share Everywhere. The idea is that your friends or followers shouldn't have
to join your site to engage with you; you should be able to post on your
own site and be read on Twitter, Facebook, Foursquare, or wherever they
happen to be. idno has built-in plugins for status updates, blog posts,
images, checkins and events. Correspondingly, it also has plugins to
#POSSE<http://werd.io/search/?q=%23POSSE>this content to Twitter,
Facebook, Foursquare and Flickr - and writing more
would be trivial.

That's just as well, because I've committed to *only* post on my own site
and copy to third parties (where that's possible).

*Reinventing the social web*

This year, though, something else happened. Using Microformats
2<http://microformats.org/wiki/microformats-2>(a way to very simply
embed meaningful markup into any web page) together
with Webmention <http://webmention.org/> (a way for any web page to lightly
ping the pages it references), the community participants created the first
indieweb decentralized comments
thread<http://tantek.com/2013/113/b1/first-federated-indieweb-comment-thread>
.

Using nothing more than the markup on their own web pages and a very simple
protocol, the participants created the basics of a decentralized social
community, where each comment is hosted on its owner's own site, but
nonetheless forms a coherent, easily-readable narrative.

This is a very big deal.

It's a completely different model to traditional social networking, where
content typically doesn't bleed outside the walls of a specific social
site. It's also different to previous decentralized social networking
efforts, which have been in many ways more sophisticated, but much harder
to join in with. Because a simple IndieWeb-compatible social tool can be
built in an afternoon, just as a simple RSS-compatible tool can be built in
an afternoon, these concepts have a much greater chance of succeeding.

Needless to say, idno is now a first-class participant in the decentralized
IndieWeb social community. I've implemented IndieWeb comments, and moved
immediately to also implement decentralized events that anyone can RSVP to,
as well as decentralized likes. It also integrates with Firefox's
brand new Social
API <https://developer.mozilla.org/en-US/docs/Social_API>.

*You can browse the web and reply to any page, on a site that you truly own.
*

As more sites and platforms implement the IndieWeb social standards, those
interactions will become correspondingly more social. For now, though, you
can go ahead and interact with the web already.

Beyond that, idno will continue to develop over time as a community
platform in itself. I'm using it here on my own site as a single-person
publishing platform, but it doesn't have to be that at all, and all those
Elgg-style features will continue surface as time goes on. But there's a
big, wide web out there, and it's important to embrace that as widely as
possible.

idno's homepage is here <http://idno.co>. Meanwhile, I continue to do work
I'm proud of in my actual job, working for latakoo <http://latakoo.com> to
facilitate media storage and transfer for video professionals and the
broadcast news industry. We're talking about using decentralized social
networking there too - but more on that another time.
]]

Received on Wednesday, 3 July 2013 08:55:06 UTC