Skip to main content

Humanist technologist. Equality and adventures.

I co-founded Elgg and Known, worked on Medium and Latakoo, and now invest in innovative media startups to support a stronger democracy at Matter.



Two years of being on the #indieweb

2 min read

For the last two years, I haven't directly posted a single tweet on Twitter, a single post on Facebook or LinkedIn, or a photo on Flickr. Instead, I publish on my own site at, and syndicate to my other services.

If Flickr goes away, I keep all my photos. If Twitter pivots to another content model, I keep all my tweets. If I finally shut my Facebook profile, I get to keep everything I've posted there. And because my site is powered by Known, I can search across all of it, both by content and content type.

My site is Known site zero. It's hosted on my own server, using a MongoDB back-end. I'm also writing 750 words a day on a site - kept away from here because this site is mostly about technology, and those pieces are closer to streams of consciousness. Very shortly, though, I'll be able to syndicate from one Known site to another.

The indie web community has created a set of fantastic protocols (like webmention) and use patterns (like POSSE). I'm personally invested in making those technologies accessible to both non-technical and impatient users - partially because I'm very impatient myself.

This is a community that's been very good to me, and I find it really rewarding to participate. I'm looking forward to continuing to be a part of it as it goes from strength to strength.


Introducing the Indie Dash Button! #indieweb #vrm

4 min read

I wish I knew how to quit youWe've all been there: you're standing by the washing machine, about to start a load, and you realize you're out of laundry detergent. Or you're getting ready for bed and you realize you've forgotten to buy more mouthwash. Less often, you find yourself wondering how to fly to a particular destination cheaply, or needing a good deal on a new car.

You don't want to deal with a single vendor for each of these things, but you also don't want to spend ages doing price comparisons. What would be great is if you had a personal shopper that would find the best version of these things and automatically get them for you.

For regular, low ticket value essentials - laundry soap, mouthwash, diapers - wouldn't it be nice if you could get these products in a vendor-agnostic way by pushing a single button?

Here's how it works.

What you'll need

A website running on your own domain, with the ability to accept webmentions. Hey, Known does this! So do a variety of other projects!

The request

First, you need to publish a request on your own site. To you, it's a simple statement: something like, "I need some more laundry soap". (The button could make this statement for you.)

On the back-end, the statement is marked up using microformats, and a note is made to a PubSubHubbub hub that there's new content.

A product request aggregator is subscribed to your request, and is notified immediately via PubSubHubbbub. Your request is pushed to an aggregated feed of requests from all over the web. Vendors can subscribe to the requests, or filter them by location, or other profile characteristics that you have published on your own website. Again, these profile fields are just published as HTML, using microformats; there's nothing fancy or proprietary here.

Over time, as vendors build relationships with individual consumers, they can subscribe to their feed of requests directly. There's no requirement for a middle-man.

Making an offer

Vendors can then respond with an offer.

Offers are written as HTML statements too: product details, the quantity, and the price. For example, a statement could include a box of Tide at a particular price.

This statement is published as a reply to your original request using webmentions. In other words, your request to buy something - an item on your personal URL - is answered by a corresponding offer, which is an item on the vendor's personal URL.

Accepting an offer

You can peruse all the offers that have been made on your request. But you could also tell the platform that runs your URL to automatically accept offers within a certain range (for example, if you're offered Tide at a reasonable price, or airfare from SFO to LHR under $800).

To accept an offer, another statement is made, again written as HTML marked up with microformats. This just says something to the effect of, "yes please". Using webmentions, it is attached as a response both to the vendor's offer, and to your original request. That means that any vendor can see that you have accepted an offer, and the vendor can see that their offer has been accepted.

All of this happens behind the scenes, and although the formats involved are very simple, the user gets to use their phone, their browser, or another familiar interface. Again, it could all be done with a simple button.

And then the connection is made. If you have no prior arrangement with the vendor, they get in touch with you (via contact methods published on your URL) to arrange payment and delivery. Otherwise, if the arrangement is already set up, you're good to go.

Finally, another webmention is sent when the product has been shipped - or if the order had to be canceled or changed for any reason.

Why does this make the world better?

This model for commerce - commonly referred to as Vendor Relationship Management, or VRM - turns traditional advertising on its head, and removes the need for complicated targeting technology. Customers readily identify themselves, creating more valuable sales channels where guesswork is all but eliminated.

Additionally, the use of indieweb technologies like webmention and microformats here removes the need for complex or proprietary identity technology. The customer can use the platform of their choice, without the risk of a single vendor locking stakeholders into a single service and impeding commerce and innovation over time.

The customer says they need to buy something; vendors respond with their best offer; money is made, products are sold, and everyone walks away happy, with almost no friction.


Yes, you can build great products without spying on users. #indieweb

3 min read

Dustin Curtis, the creator of Svbtle, recently wrote:

Apple is going to realize very soon that it has made a grave mistake by positioning itself as a bastion of privacy against Google, the evil invader of everyone’s secrets. The truth is that collecting information about people allows you to make significantly better products, and the more information you collect, the better products you can build.

Cole Peters responded:

Data isn’t inherently good or bad, useful or useless; therefore, access to data does not equal access to insights that will be beneficial to product development (and, ultimately, user experience). One could easily argue that obsessing over user data could impede product development; time spent on analysing data, and attempting to glean from it relevant and accurate insights (again, this doesn’t always happen) could just as well be spent on testing and (re)iteration of the product.

I would go further than this. What Dustin seems to have been talking about was a kind of data-driven user research: getting feedback from users in aggregate.

This is realistically useful for a small subset of the tasks involved with building a great product.

User research is key to building great products. (By the way, we open-sourced our user research materials.) But deliberate research is far more useful than collecting aggregate data about user details, and reducing your userbase to a series of statistics.

Certainly, keeping track of key performance indicators about your platform can help you understand how it's doing. If nobody's posting to a social network after a month, you've got a problem, for example. But I'd argue that building and improving your tools - i.e., actually pushing forwards - requires a more humanist approach.

You need to talk to people. A lot of people. You need to ask the right questions, but mostly you need to listen to them, and understand as well as possible not just the needs they're telling you, but also their unspoken needs. The things they reveal as insights in conversation. Similarly, you can watch them as they use your product, and even go so far as to track their eye movements, individual clicks, and tiny physical responses.

These conversations are often compensated, and they always happen with the full consent of the user. There's nothing hidden or nefarious about them, and they are not asked to reveal any personal information that they don't want to. They're also far more useful than bulk information that's totally disconnected from the individual human context of the user.

What aggregate statistics are useful for: demographic information for targeted advertising. Let's not trick ourselves into thinking that the assumptions that make ads possible are absolute, unmovable, or necessary to build any kind of well-designed product.


Why can't you comment on this post? #indieweb

2 min read

I'm sometimes asked why my posts here on my Known site don't let people comment on them.

The answer is: actually, they do. And I want to read your comments. Feedback is a gift.

Known, like p3k, Taproot and a number of other platforms, uses an open technology called webmention to power its comments. Plugins are also available to help WordPress use webmention.

What webmention gives us is a truly decentralized conversation: you can make a post on your site, mark it as being in reply to this post, and it'll show up as a comment here - but you also get to keep everything you've written on your own site. That way, even if my site goes away, you have a record of every conversation you've had with me. (If you want it.)

You don't need Known to leave a comment: you can use anything that supports webmention.

Through the power of webmention and Bridgy, you can also reply to this post on Twitter and Facebook (see the links at the bottom of the page for this post), and your response will show up here.

This isn't to say that we're not going to add public comments to Known. We are. But we want to make sure we do it right. Sites like Medium have shown interesting new models for user feedback that we're very interested in (and there are decentralized counterparts like marginalia).

We're definitely inviting feedback on this, and would love to read your thoughts. What kind of comments would you like to see?


Drawing a line from @elgg to @withknown: an adventure in #edtech and #indieweb

6 min read

1. Elgg: a social networking engine for education.

Elgg communitiesIn November, 2004, we released the first version of Elgg to the world. We originally called it a learning landscape: an educational software platform that took its cues from the emerging social web rather than rigid classroom structures. In many ways, it was as much a reaction to Blackboard and WebCT as it was to Livejournal and MySpace.

I'd been building web communities since 1995, so when I arrived at the University of Edinburgh to work on elearning software, I was appalled at what I'd found. Every single person who used the dominant learning management systems, from the administrators down to the students, hated them. Students only used them because they were forced to; as it turned out, administrators only used them because they were forced to.

And yet, people were learning from each other on the web all the time. Through platforms like Livejournal and Delicious, people with different skills and contexts were colliding and creating a new kind of culture. The web had made it possible for anyone to publish as long as they bought some web space and learned HTML. Suddenly, anyone could publish, as long as they could connect to the Internet at all.

Elgg took the social web, applied it to education, and wrapped the whole thing in an open source license. It took off like wildfire.

Embedded podcastFrom the beginning, it was important to us that users got to control their own space. They could choose their own theme, and hack it, if they wanted to. Most importantly, they could choose exactly who could see each and every post: long before Mark Zuckerberg declared that the age of privacy was dead, our research indicated that students felt more comfortable with web publishing if they could keep tight reigns over who could see their work.

We knew Elgg was bigger than education when non-profits in Columbia got in touch to let us know they were using the platform. Soon afterwards, schools in Bangladesh were featured by the BBC for using it. Over time, as more non-education users emerged - more non-profits like Oxfam and Greenpeace, alongside Swatch, BMW, hedge funds, and the rugby star Will Carling - it evolved into a social networking engine that anyone could pick up and use. We started with a very specific use case - reflective learning in higher education - and widened into something much bigger. To date, Elgg users have included Harvard University, NASA, Hill & Knowlton, the federal governments of several nations, and the World Bank.

I made the choice to move on to new pastures a few years ago. Today, Elgg is managed by a non-profit foundation. The current team is doing an amazing job, and, under their stewardship, the platform has transformed again, into a programming toolkit for people who want to build social applications.

2. Known: the easiest way to own your own space on the Internet.

Meanwhile, individuals are in need of spaces that they truly control more than ever before. In the old days, we thought this was important to help them feel more comfortable with posting their personal reflections to a public space (not everything has to be about maintaining your "personal brand", after all). While that's still true, sites like Facebook are pointing to a more imperative need: a place to publish where you won't be experimented on without your permission, where you won't be spied upon, where you can move your content at any time, and where your content and conversations aren't owned by one of a very small number of corporate silos.

Known is a platform for a new kind of social web. You can think of each Known site as being a single social profile, either for an individual or a group. Each one can interact with each other in a decentralized way (using indie web technology), or they can interact with all the other sites they use - including Elgg, as well as Facebook, Twitter, Foursquare and all the rest of them. Educational institutions are already asking us if we can integrate with learning management systems like Canvas - and the answer is, yes.

We have privacy, too. Known site owners can choose who can see their content, and they can choose the look and feel of their sites, including what kinds of content they want to publish.

We know that over 50% of Internet use happens on a mobile device, and any new platform has to take that into account. We've made Known fully responsive, so it works on any mobile device with a web browser, including your iPhone, Android phone, Windows Phone device, iPad, tablet, and so on. Even your BlackBerry works with Known. Because mobile usage leads to new kinds of content, Known supports location check-ins and posting photos while you're moving around. And, of course, individuals and organizations can roll their own content types using custom plugins.

On any device, ownership of your site and content, combined with an understanding of your community, gives you a new kind of clarity about your online self. You know exactly who can see each item you post. You know who's responding to you on which networks, and you understand which kinds of content your audiences are interested in. Known is both a safe space to reflect, and a singular site that represents you on the web. And more than anything else, it's respectful software that puts you at the center of your online world.

Known is open source. As a company, we're providing software and customization services to make it easier for organizations to administer, as well as support subscriptions for everyone who uses Known. Finally, we're also working on providing managed infrastructure for anyone who wants to run Known, either individually or for their organization, without the hassle of server administration.

I've been privileged to spend over a decade working on open platforms that empower people and organizations to control their own spaces on the Internet. The pendulum is swinging back to a world where users are asking for that control, and I'm looking forward to making Known the definitive way to own your content online.

If you've read this far, you should definitely check us out: at, on Twitter, and on AngelList.


My #indieweb life: how my site gives me an awesome social media archive of everything I've ever written

3 min read

Here's how I post from my Known site.

When I log in, Known gives me the option to post lots of different kinds of things: status updates, photos, streaming media, and so on. Because it's what's called a "responsive interface", it adapts to whichever device you're looking at it on: it works just as well on a phone as on a desktop browser. These buttons work great on a touch-based interface, and I post on my phone at least as often as I post from my computer.

This morning, I decided to write a status update:

I decided to post it to my friends on the traditional social media sites too. Above, I've selected Twitter - after I took the picture, I decided to post to Facebook as well.

Known posts the status update to my own site:

But because I selected Twitter, it posts it there too:

And because I selected Facebook, another copy ends up there:

My friends can interact with me over on those sites:

And those replies - whether they're from Facebook, Twitter, or my friends' own websites (running Known or something else) - will show up on my site too, thanks to great indieweb technologies like

This way, I have all of my interactions around that content in one place.

If I want to reply to my friends on the silos, I can do that too. I can just do that from my site using the bank of buttons you've already seen, but if I'm using Firefox, I can use a direct "reply" button integrated with my browser:

Or there's a "bookmarklet" - a button that I drag to my browser's bookmarks toolbar - that makes it easier, which works with every browser.

Either way, those replies will show up on the site my friends replied from, as well as on my own site.

Because I post everything from my own site, I have an archive of everything I've ever written to social media. That means I can look to see everything I've written about "Wimbledon", for example:

And I can filter my search to particular kinds of content:

Because this archive is hosted on my own site, people are likely to find it when they search for me. That means I have more control over how I'm represented on the web. One of the ways I can customize my appearance online is through themes:

But if I'm a developer (and I am!) I can build my own themes and plugins to integrate Known into my existing site, create new kinds of content or radically change the look and feel. It's a pretty great toolbox.

My archive of everything I've posted and all my replies lets me analyze my data in all kinds of ways, that let me post better and participate more directly with my community. I'll be talking more about that another time.

In the meantime, you should sign up to our beta list.


Rushing the street: building our #indieweb business

3 min read

We have a William Gibson quote above our desk here at Known HQ:

"The street finds its own uses for things."

It's from Burning Chrome, and serves as a reminder that users will find uses for technologies that its creators were not necessarily expecting. We don't just want to remain open to those new uses; we want to encourage them as much as we can.

We're back from IndieWebCamp in Portland - one of my favorite technology events in one of my favorite cities in the world. Technologists and like-minded creators get together in order to help create web platforms that promote ownership, allow people to communicate with each other freely online, and give people full control of the things they create and share.

I'd started building Known before I aligned myself with the indie web community, but it fits so well: Known allows anyone to publish to their own website as easily as Twitter or Facebook, lets them talk to other people all over the Internet (on existing social networks, on other Known sites, and on blogs and journals), and gives them control over their content.

In a world where the platforms we use every day are spying on us, or even performing psychological tests on us without our knowledge, and when platforms shut down all the time, more people are certainly crying out for more ownership and control. We'll be there for them. Our mission is to empower people to publish to their own space on the Internet.

As part of a discussion on indie web businesses, Amber Case said she thought the market for these products is going to emerge organically. I agree, and it's always better for people to tell you what they find you useful for. Twitter is a great example of a service that has developed that way.

Of course, I also have a business need to sell our product, and prove that it will be useful for enough people to support our growth. We've been having some great conversations with people who need Known: people whose reputations and incomes are tied to their identity online, and the things they make and share on the web. But as any scientist will tell you, anecdotes aren't enough.

Over the next two weeks, we'll begin inviting people to use our Known service. Now is a great time to add yourself to our beta list. It's free - we want your feedback and develop our product hand-in-hand with the people who are using it. We think that's the best way to help the street find its own uses for what we're making, and in the process, create something that changes the way people represent themselves on the web.


Gathering content in a space you control: doubling down on #indieweb & journalism

4 min read

Journalism and the indieweb were made for each other.

Because of the way we've been describing Known - particularly focusing on our ability to syndicate content to third-party social networks and important social interactions using - we've received a lot of feedback that this is how we should describe ourselves as a business:

Known is a social media marketing application that allows marketing departments to justify ROI using aggregated data from audiences across multiple platforms

For all kinds of reasons, this isn't what we want to do. There are solid business reasons - social media marketing is a crowded market, for one - but there are deeper reasons, too. It's not why we got into this. It's not, on a fundamental level, what we're trying to do.

After all, this is how you could describe the product:

Known lets you own your own social website without having to give up talking to your friends on the web.

I believe in the indieweb as a movement that will empower people to own their own representations on the web. I know that will have broad implications over time, and that the success of these ideas and technologies will make a profound impact on the way the web works. I also think that running a commercial business based on indie web principles is a great thing.

I also think that certain groups of people are ahead of the curve when it comes to privacy and ownership - and journalists are very much among them.

There is a long-term trend towards greater ownership and privacy. Partially this is due to post-Snowden sentiment, but it's also driven by factors like generational differences, a growing commercial dissatisfaction with Facebook, and security breaches at companies like Target. Providing a service that is as easy to use as Facebook, while being respectful to its users, mindful of privacy, and yours, is a good idea. There will be a tipping point where people will be looking for something new, and we will be there for them, alongside other software in the indieweb ecosystem.

But there's also a growing need for this right now. Edward Snowden's whistleblowing was, of course, an important moment in journalism. We participated in a workshop run by the Tow Center for Digital Journalism on newsgathering in a post-Snowden world this week, and were inspired by the renewed focus on protecting sources and swiftly building stories, while being simultaneously dismayed by the lack of effective software to support them. Journalists value ownership, privacy, control and ease of communication - which, of course, are indieweb fundamentals.

We're investigating how Known, and the indieweb, can be effectively harnessed for journalism. This includes heavy research into the workflows people are using today. My experience with latakoo (which is used by professional newsrooms around the world) has told me that every organization is different - but then, my experience with Elgg tells me that it's possible to build a light-touch tool that allows people to customize it for their own needs. In fact, that's what Known already is, whether you take the open source code and build on top of it, or use the hosted service we'll launch this summer.

Journalism is fundamental to democracy. We need to know what's happening in the world around us to make effective democratic decisions. We're also living in a world where journalism is being pinched by changing models and rapidly evolving audiences. If we can help, we would love to.

If you're a journalist, or if you work in a media or news organization, we would love to talk to you. You can email me at


How we're on the verge of an amazing new open web #indieweb

5 min read

The Open Stack

Web 2.0 was only the beginning.

Ten years ago, the read/write web was picking up steam. Services like Blogger, Flickr, Delicious, Upcoming and the nascent Facebook were doing something amazing: building publishing platforms that anyone could contribute to. You could share resources, build professional networks, publish to the world and gain audiences without any development expertise: you could just write, hit "post", and you were done. Publishing had never been as easy in the entire history of the world.

There is some consensus that these platforms were the seed for massive cultural change. We're still feeling the effects. Learning happens when people with different contexts, knowledge and assumptions encounter each other, and this is happening more than it ever has before.

But the social web was a proof of concept.

All weblog postsWe needed a space to experiment. There's an old maxim that says perfect is the enemy of the good: it's nearly impossible to create a perfect platform straight out of the gate. You need to figure out what works and what doesn't work, and iterate. That's why developers like to release early and release often. That first release probably isn't great, but the sooner you get your software in front of users, the sooner you can learn from how they use it, and change appropriately.

So it goes with Facebook, Twitter, and the other services that have come and gone over the years. We've learned a lot about social behavior. We understand how to create a great user experience that people find comfortable to use; we understand how to make it easy to share and to publish. Those things didn't come easily, but we have them, and the learning was made easier by creating simpler architectures: centralized systems where user activity could be observed.

It's time for the next step.

Open follows closed.

We know that we need to open our platforms, and that mass surveillance by governments around the world is a problem. It's even fair to say that it's a problem that's been enabled by creating these centralized proofs of concept. Luckily, the next evolution of the web is taking place.

The idea is simple: instead of everyone giving all their information to a site like Facebook, they keep it themselves, but still get to communicate easily using all of the great user experience discoveries we've made. You can still share selfies, make friends, listen to music together and share links, but now you do it in a space that's really yours, and that you get to have more control over.

The result isn't just more privacy. It's better experiences.

You can control how you appear on the web. Not just your profile photo and a background image, but the complete look and feel. You can use designs from people around the world, and mix and match them to create something that's completely unique. If you're a developer (and you don't have to be), you can create something new from the ground up, and share it with the world as well.

(And, hey, we've got more developers than ever before, thanks to great publishers like O'Reilly Media, sharing high-quality tutorials and technical content in an accessible way.)

It's not just about look and feel, though. Developers can create new kinds of content, and new apps, and let anyone else on the web use them. You won't need a Facebook account or a Google account; you'll be able to use them because you're on the web and that's what the web does. Nobody will control the new web, and that's going to allow for unprecedented creativity, and new markets for tools and content. It's going to be beautiful.

Not just that, though. Knowledge is fundamental to democracy. The web is going to continue to be a platform that ushers in new freedoms all around the world. That's already been happening to some extent, but when you connect the ease of use of the "web 2.0" movement with the decentralized, interconnected nature of the web, you empower people at a level never before seen.

I'm grateful for the people who have pioneered web publishing, and who continue to build amazing new experiences. It's fun to see that creativity start to funnel into the indie web, and it's a privilege to be working on some of those tools myself.

It's been a great ten years to write software. I think the next decade on the web is going to be very bright indeed.

If you're interested in these ideas, Indie Web Camp is being held at the end of this month in multiple locations. You should also sign up to learn more about Known, the indie publishing platform I co-founded. We're launching later this summer, and it's going to be great.

By the way, that picture above is the debut of something called the "Open Stack" in Digg's offices in 2008. It included lots of truly open technologies, including ActivityStreams, which is still used today.


Backing up the #indieweb: some evidence

5 min read

While there are lots of anecdotal stories about the , lately I've found myself wanting to back them up with hard, quantifiable data. For some people, the underlying principles of ownership, control and reach resonate and make sense; others need further persuasion that the movement is gaining momentum.

I think this kind of evidence-gathering is a good exercise. And of course, it has a selfish purpose too: backing up the need for Known.

The ideological case

Dan Gillmor made the broader case most clearly over on Slate:

We're in danger of losing what's made the Internet the most important medium in history: a decentralized platform where the people at the edges of the networks—that would be you and me—don't need permission to communicate, create, and innovate.


Nonetheless, the statistics suggest that the most readily-apparent value of the revolves around privacy. Last September, the PewResearch Internet Project found that:

[..] growing numbers of internet users (50%) say they are worried about the amount of personal information about them that is online - a figure that has jumped from 33% who expressed such worry in 2009.

People would like control over their information, saying in many cases it is very important to them that only they or the people they authorize should be given access to such things as the content of their emails, the people to whom they are sending emails, the place where they are when they are online, and the content of the files they download.

Meanwhile, Forrester Research suggests that the cloud isn't eating all software:

According to research outfit Forrester, businesses are moving to public cloud services in big numbers. By 2020, the firm says, cloud computing will account for about 15 percent of the IT market, which spans all the hardware and software and services that companies use to run their operations. But many analysts and other industry watchers believe that certain companies — especially those bound by government regulations, including financial and healthcare companies — will keep certain applications running in their own data centers. “It’s not about having everything running externally or everything running internally,” says David Cearley, a vice president at Gartner Research. “It’s about both.”

Privacy continues to be a driver for ownership, helped by the fact that 2013 was the worst-ever year for data breaches:

Working on data from the Open Security Foundation and the Privacy Rights Clearinghouse, the OTA estimated that over 740 million online records were exposed in 2013, the worst year for data breaches in history.

Placing personal data in a central location creates a giant honeypot for such breaches.


Not owning the site you use to communicate with your customers can hurt your ability to actually reach them. AdAge reported that the number of users seeing Facebook posts from brand pages they'd engaged with was dropping:

Research conducted by Group M Next (a unit devoted to sourcing new technologies) into pages operated by 25 brands finds that the share of Facebook users seeing organic posts from a brand they "like" was down 38% in the five weeks after Sept. 20, from 15.56% (consistent with the average 16% Facebook has often reported) to 9.62%.

This trend has continued. AdWeek reported that Facebook referrals to sites like Upworthy, the New York Times and Business Insider had dropped by up to 50% since November 2013. AdAge noted that Facebook in the past had "particularly objected to the inference that [..] changes had been made to spur marketers to spend more on ads to make up for lost reach":

But now Facebook is making the case for marketers to do just that. In the document, titled "Generating business results on Facebook," the paragraph in which the impending drop-off in organic reach is revealed concludes with an ad pitch; marketers are told they should consider paid distribution "to maximize delivery of your message in news feed."

Valleywag alleged some very drastic numbers associated with this strategy:

A source professionally familiar with Facebook's marketing strategy, who requested to remain anonymous, tells Valleywag that the social network is "in the process of" slashing "organic page reach" down to 1 or 2 percent.

In other words, now they've convinced everyone to sign up to their network, Facebook is charging people to get their messages through - something that would be free if this communication happened over a decentralized web.


Each of these trends is growing. More people are thinking about owning their own platform overall; people are more concerned about privacy online than ever before; the social networks we've all been taken for granted have been taking more liberties with the form, reach and content of our communications.

More data is needed, and I'll be posting regularly with new facts and statistics. If anyone has anything you'd like to add, or if you'd like to get in touch for any other reason, feel free to email me:


Known: taking a big bet on the #indieweb

3 min read

Friday marked the end of my first full-time week at Known, the new startup I've founded with Erin Jo Richey. We're lucky enough to be part of Matter's third class of startups aiming to change media for good. (Its founding partners are KQED, PRX and the Knight Foundation: great people to be involved with.)

Known is a publishing platform for everyone. You can share your story using a variety of media, publish from any device, and share it with your audiences wherever they are on the web. You'll be able to get your own site that you control in under 30 seconds with our service, or run it on your own servers. Either way, you should join our mailing list.

One of the jobs of a startup is to look at where the world is going, extrapolating from current trends and domain knowledge, and meet a future need with a product at exactly the right time. We think the time is right for an independent web that is owned by content creators and readers alike.

For the last few years, discourse on the web has been dominated by a few key platforms: Facebook, Twitter, and a handful of others. As the media analyst Dan Gillmor wrote in April:

[...] When we use centralized services like social media sites, however helpful and convenient they may be, we are handing over ultimate control to third parties that profit from our work, material that exists on their sites only as long as they allow.

We believe that, for the people whose livelihoods depend on content and data, ownership is going to become steadily more important. We want to be the best way to tell your story on the web whether you care about ownership or not, but if you do, we'll be there for you. We'll let you take full control; decide on the look and feel; export your data at any time; host with your own domain on your own server. That's a very different approach to Facebook, or Twitter, or a site like Medium.

An important facet of ownership is privacy. Last year, the Pew Research Center discovered that 68% of Internet users believe the law doesn't do enough to protect their privacy online; a full 50% worry about the amount of information they've shared. With a site that you control, you know exactly how much you're sharing, and with whom. By syndicating your content to third-party silos like Facebook, you can still share with your readers wherever they happen to be on the web - but in such a way that you understand exactly what you're sharing.

Statistics are one thing, but movements like the Indie Web, as well as events like Aral Balkan's Indie Tech Summit, books like Doc Searls's The Intention Economy and startups like ThinkUp draw a very clear line to a new kind of post-cloud software, where the customer is once again in control. Interest from the media, from the investment community, and from users, is growing.

There's no reason in the world why this kind of empowering, design-led, user-focused software should be any harder to use than Twitter or Facebook. In fact, it can be more feature-rich, more personalized, and more tailored to the way you work and think. That's the kind of platform we're building - one that respects its users, and that sits at the center of a successful business.

Sign up to join our mailing list, or follow our updates on the Known stream (which is, of course, itself powered by Known). It's going to be a great summer.


The sustainable web (and why sustainability is a kind of independence) #indieweb #iiw

3 min read

In his excellent newsletter Things That Have Caught My Attention, Dan Hon writes:

So my thing is this: not an indie web, but a sustainable one. One that is kind of adjacent to the indie web, but that builds long-lasting, reliable services, not ones that disappear. This adjacency comes from the answers to the question of: what kind of attributes are required for a sustainable web? Do you need easily exportable data? Sure. Do you need some element of user control? Sure. Are those the *defining* characteristics? Not really. But I think we might be verging on a sort of turning point where applications and services can, at the outset, say: "you know what, here's our plan for being around for a while so you can *trust* us and invest time in us". [...] A web where we build for the long-term, and perhaps pulling back from explosive, burn bright and short products and services.

You should read the whole newsletter here, and subscribe over here.

I buy into this completely.

I also believe, strongly, that sustainability is a kind of independence, and therefore something that should go hand-in-hand with the . If you're going to own your site and your own presence, you should be able to do so in a way that you're going to keep up: if you're writing your own platform or handcoding your own site (as a small minority will), you've got to make sure you'll keep writing your own platform or site, because otherwise what's the point? If you're building a startup that aims to solve a problem for real people, shouldn't you ensure that the product or service you're building can continue to exist? Otherwise the point is simply to make a lot of money. I'm not knocking that as a goal in itself - I am very interested in making my project a financial success - but if you're not continuing to solve the problem for your users, or if you're simply taking away a tool they have come to depend on, you're treating them as collateral damage. I don't believe that's an ethical way to build software.

If you're not building in sustainability, you're naturally going to be beholden to outside entities: either to acquire what you've built (if you're building a startup), which may result in your project shutting down, or to use someone else's service. As in life, you lose independence by not planning for the future.

All of this came about because Andy Baio is resurrecting, which I'm delighted by - at least until there's a viable, mass-market indieweb event tool.


Looking forward to #IIW

1 min read

I've been planning on heading to the Internet Identity Workshop for years; although I did once make it to a one-day London version, I've never managed to get down to Mountain View for the full three-day length.

From the website:

Do you care about privacy in Age of Surveillance? (You should.) Do you want to do something about it? Are you already doing something about it? IIW is where you get to meet and work alongside others tackling the same problem.

Or let's say you care about new forms of money (such as Bitcoin) and what the geeks call distributed hash and crypto ledgers. IIW is for you too.

Next week, I'm planning on being there. I'll be demoing Idno, but also talking all things and catching up with developments in the identity community.

Kaliya facilitates great events, and although I'm less personally familiar with the other organizers, I know they are very well-respected in the community. It should be fun. And if you're in the Bay Area on May 6-8 next month, it's not too late to join us!


I'm thinking about adding comments. What do you like? #indieweb

3 min read

Right now I don't have comments on my site. Despite this, I think discussion is one of the most important parts of the web. I'm definitely not anti-comment, and I love feedback.

My intention is that you'll write a reply on your own site and link over here. Using a back-end mechanism called webmention, which is supported by a growing number of platforms (there's a WordPress plugin), your comment can show up as if it was posted here, while living on your own site. If everyone starts to do this, we'll start building up distributed discussion threads across the web, that aren't owned by any one person or company. I think that's pretty cool.

But I also recognize that not everyone wants to do this, and not everyone can do this right now. Webmentions are a pretty technical proposition, and lots of people don't even have their own sites right now. If you saw this on Twitter or Facebook, you can comment there and those comments will show up here too, thanks to a back-end piece of glue called (You don't need to do anything for this to happen.)

Sometimes, though, you just want to post a damn comment. With that in mind, I'm curious: if you're reading this, do you prefer threaded comments - like you might find over on Reddit, or implemented over on Livejournal - or the single-track blog comments that you find in most places these days? There's a lot to be said for both. A lot of the supporting technologies around commenting - and regularly-updated content in general - are based around streams rather than threading, but that's not a good reason not to implement threads if they're more useful.

Then you start thinking about the form of comments. They've been text as a convention since forever, but this platform supports multiple kinds of content. I think allowing photo comments is a lovely idea, for example. Gawker's discussion platform Kinja supports this, and allows for some more colorful debate, as well as things like photo competitions. Audio and video comments are a bigger can of worms - Seesmic was a video discussion platform, before pivoting into more traditional media and being acquired by Hootsuite - but shouldn't questions of decorum and sensibility be up to the site owner rather than the platform?

At any rate, let me know what you'd like to see.

(And yes, folks, I think displaying webmentions as threads is a very interesting thing to think about. As long as you mention both the base thread and the sub-comment, I think it could work out.)


To support the #indieweb, we need better web hosting.

2 min read

I'm finding it fascinating to hear about the ways people host their websites. We're living in a world where professional hosting has been eaten by "the cloud": virtualized servers arguably rule, supported by tools like Docker and platforms like Amazon Web Services.

Yet personal hosting has not kept pace. Here, hosts like Dreamhost, Nearly Free Speech and (sigh) GoDaddy maintain a much older style of technology stack: virtual hosts, configured using tools like cPanel, which typically support PHP and MySQL. Geekier site owners might choose to set their site up on GitHub or S3, but these only support static page assets. Generally speaking, if you want to set up an app based on Rails, node.js or even Python, with a Postgres or NoSQL backend, you're kind of screwed if you don't have much technical knowledge, or if you only want to pay the $5 a month you'll lay down at many shared hosts.

One of the things communities like the need to support their efforts is much better hosting. Projects like Johannes Ernst's Indie Box solve adjacent problems in innovative ways, but there's certainly a market for easy to use hosts which support a wider array of back-end technologies in a way that allows non-developers to get up and running quickly. Yes, centralized services are an important part of this solution space (if they're built in a way that is respectful to their users), but there's a self-hosted middle ground, too.


Seeking an #indieweb alternative to Google Voice

2 min read

The whole time I've been in the US, I've been using a Google Voice number to communicate.

Here it is: +1 (312) 488-9373.

The reasons are numerous: I can get phone calls on any of my connected devices, even when I'm out of the country. I can change phone service providers at any time. I can make calls in places with wifi but no cellphone reception. I get voicemails as text, so I don't have to listen through an endless series of recorded messages.

Phone numbers themselves are kind of an archaic technology, but it's not feasible to ditch them just yet. So I was disappointed to read that Google Voice is going to be rolled into Hangouts.

That's Google's prerogative. Any silo service provider could make a similar decision at any time. So the question becomes: how can I create my own Google Voice setup on my own infrastructure?

I want four things:

  1. Phone calls that come to me wherever I am, on whatever device
  2. The ability to change phone provider without hassle
  3. Voicemails in my email
  4. Cheap international calls

I also don't want to use Skype or another proprietary provider.

I'm really not sure what to look for here. I know about SIP and Asterisk, but setting up and maintaining them sounds like a pain to me. Is there something user-friendly I can use?

I'll be following up in a subsequent post with what I discover.


How idno handles #POSSE syndication to third-party sites #indieweb

4 min read

Last week at Homebrew Website Club, I was asked how Idno syndicates to third-party sites like Twitter when I post content.

Here's how it works.

First of all, Idno has a plugin system, that allows new functionality to be added system-wide. As well as new kinds of content like slide presentations, plugins are available that interact with the APIs of Twitter, Facebook, Foursquare and Flickr.

When I install any of those plugins in Idno, I'm taken through a process where I register my Idno site with the third-party API. Each of those sites has a slightly different process, but in each case it takes about 30 seconds.

Once the link has been made, the plugin shows up as an option in Idno's user settings screen. I click "settings", and then click a button to link my account to the site:

This is exactly the same procedure as logging in with any of those sites, or attaching any third-party application. It's about two clicks: in the case illustrated above, I'm taken to Twitter, which asks me to confirm that I want to give Idno permission to use my Twitter account, and then taken back to my Idno settings. Internally, my OAuth token for that site is saved to my user account.

Here's where things get interesting.

Remember I said that Idno's content types are also provided via plugins? There's a plugin for status updates, for photos, blog posts, events, etc etc. Whenever I want to add a new content type to Idno, I add a plugin. (They're really easy to write; the presentations plugin was written in about an hour, while I was recovering from a root canal operation.)

As well as descriptive content type - "status update" - each plugin announces a generic content type that maps to those used by the activity streams specification. A status update is also a "note"; a blog post is an "article". This allows plugins to extend functionality for certain kinds of content without dictating which plugin you use for that content. Someone can add extra logic for status updates, while not caring which status update plugin I actually use.

When I post new content, the system pulls up an interface supplied by that content's plugin, and also asks any syndication plugins if they're able to handle content of this type. So when I click on my "status update" button, Idno asks plugins if they're able to syndicate content of type "note".

Idno automatically renders some buttons for me based on those plugins. If I enable the "Twitter" button, my content will be syndicated to Twitter when I post it. If I enable the "Facebook" button, it'll go to Facebook, too. If I later decide to add a button for Path or LinkedIn or Friendster via a plugin, it'll show up there, and work in exactly the same way, without me having to change any of the status update plugin.

When I hit Save, the syndication plugin receives information about the content type (but not which plugin created it), as well as information about my account. It retrieves my API token from when I linked my account through my settings panel, and uses that to sign an API request posting the content to that site. It then retrieves the URL of the syndicated content and saves it to the local content in Idno, so a "syndicated to" link can be displayed underneath it. (Check at the bottom of this post's page: you'll see a link to Twitter.)

This process works throughout Idno. Photos (of generic type "image") can be syndicated to Facebook, Twitter and Flickr, and while the logic is different for each site, the user interface flow is the same for each one. This works whether I'm posting from a laptop or a phone, and whether I'm on the standard web interface, a custom interface or the API.

It's important to note that none of this takes much time, for any of the parties involved. Writing a content plugin takes about an hour; writing a syndication plugin can take much less time, if the third-party API uses OAuth. Site admins can install a plugin and set it up in a few minutes. The process for the user takes mere moments, and that's the most important thing.


I'm making 50 pieces of art. Do you want one? #indieweb

1 min read

The following is doing the rounds on social media. It sounds like fun, so I thought I'd adapt it:

I, Ben Werdmuller, promise to send a small work of art for the first fifty people who comment on this post by replying from their own website. Twitter or Facebook is not enough. Just link to this post and let me know you want in; I'll update this and provide an easy way to do that shortly. (If you're a developer, you can get started right away.)

***You may in turn post this on your own site and make something for the first fifty people who comment they want in on your post.***

The rules are simple: it has to be be your work, made by you and the recipient must receive it by the end of 2014 . It can be anything: a drawing, photo, video, a conceptual work of art or anything in between ...


What I love about Silicon Valley

4 min read

I enjoyed, but didn't fully agree with, TechCrunch's piece Silicon Valley Lost, And Found:

However, in other ways, what drew my mother and my grandfather here is very much alive. A desire for non-conformity and a grandness of aspiration still exists in certain entrepreneurs here. The 150-year-old Gold Rush mentality lingers on in the engineers who show up every year from all over the world to try their luck at starting new companies. The Valley’s unique cultural language around materialism and status persists. While it does get flashier every year, there is still a certain discretion about being well-dressed or having a nice car here, at least compared to New York or Los Angeles.

"Non-conformity and a grandness of aspiration" is what I love about working in tech. I find subversion comforting, so find a lot to love in cities like Berkeley, Oakland and San Francisco (just like I enjoyed the anarchic artistic scene in Edinburgh). As well as the cultural environment in those places, which developed independently of the technology industry, I enjoy tech's ability to look at the status quo and decide that it can be made better. Contrast that with many industries, which remain stagnant, or worse, start to see themselves as institutions.

But let's not forget the petty bigotry and wealth-imbalance-related issues that have started to come to a head this year. Or the more-and-more audacious displays of wealth. That "discretion" about materialism that the author discusses is important to me; even in the short time I've been here, it's become more and more visible to me. I'm interested in what I consider to be the "real" Silicon Valley, by which I think I mean the "authentic" one: the one that's about making things better with your skills, rather than people turning up because they think they can make a fast buck.

The difference is illustrated ably, earlier in the article:

Working with bankers and traders also wasn’t the same as dealing with founders, engineers and hackers day in and day out. People were sharp, but they didn’t love their work - not the way my grandfather or dad did. Jobs in banking were a means to accumulate year-end bonuses and holidays. They didn’t spend their spare time messing with a half-dozen oscilloscopes or building makeshift telescopes.

Those people - the folks in the basement with their oscilloscopes and telescopes, tinkering on their own terms - are my heroes. The people with that nerdy tinkerer mentality, and the freedom to pursue it that is still fairly unique to Silicon Valley, are the ones who changed the world, and will keep on changing it.

It's not written about much these days, but out there in the rest of the world, engineers still draw scorn. You hear them being talked about as "back-room guys", with the implications that the other, "normal" people should be front of house. Geekdom is still niche, and in places, taboo. And that's one of the other things that makes Silicon Valley special - here, geeks have freedom to be themselves, outside these constraints. And it turns out that when they have this freedom, they create the world's most valuable companies, develop transformative technologies, and so on.

This is important. What worries me a little about the latest trends are that the engineers have been co-opted into a resource by incoming people with dollars in their eyes. Factories of willing developers are being established based on the promise of the previous generation, and the lottery-like idea that maybe your company will succeed to the tune of millions, or billions, of dollars. As one engineer told me at a well-funded company that will remain unnamed, "yes, you work weekends, but everyone else does too, so your coworkers kind of become your family." That's nothing short of a bullshit deal, and it seems to me that this kind of exploitation risks killing what's special about the Valley. It also perpetuates the inequalities we've heard so much about this year.

But the non-conformist geek engineers are still there, tinkering on their own terms, side-by-side with San Francisco's counterculture, which lives on. It's one reason why I've fallen in love with the community (and its spin-off, Homebrew Website Club). These movements are no less likely to change the world, but they're on our terms, for us and for everyone, rather than the predatory desires of a generation of hopeful MBAs.


Here's what I want to do more of in 2014.

4 min read

It's traditional to create resolutions for the new year. I've been thinking a lot about where I want to take my work in 2014; these are some ideas.


Specifically, I want to write more for other people, following from my previous work for the likes of ZDNet, IBM DeveloperWorks and Packt Publishing. I'm also interested in guest posting on blogs and sites around the web, about the social web, , open source and responsible application development.

Empower independent content creators.

How can we put independent creators on a level pegging with the world's largest media companies? One thing I've been thinking about is that 24-7 news channels are obviously not a future-facing content medium given the web, where you can look up breaking news whenever you want, wherever you want, from whomever you want, without having to wait for a newscaster to restart their 30-minute cycle. Despite the ease of the web, leaning back and watching TV (or some screen) is sometimes pleasurable. Could you create a video newscast that aggregates stories from multiple providers based on your interests and context? Google News meets CNN?

Help support niche communities on the web.

The strength of the web is that we can all publish and communicate with each other, in a variety of different media, and it can all interlink as a single, continuous mesh of conversation and information. Unfortunately, that strength has been undermined by the proliferation of data silos, which make it harder to establish these kinds of links, and also limit certain kinds of content, topics and conversation through conservative design.

There are so many things to talk about, in so many ways, and by limiting ourselves to the platforms that the likes of Facebook provide, and by funneling the value generated by our communities to those sites, we're not using the web to its full potential. I want to help support the full range of communities on the web, and help them be self-sustaining, so that the people who create safe spaces for niche topics can continue to maintain them.

Idno is certainly a part of this idea, and I will continue to develop it as a first-class social publishing platform for both groups and individuals.

Figure out open source for designers.

Open source software suffers by treating designers like second-class citizens.

The open source process for programmers is well-established: we have many different flavors of version control, and the tools that surround them are first-class. I'm as happy as I've ever been working with Git, and software like GitHub and GitLab.

Working with design media is harder. Not only is it hard to represent visual changes using version control, and manage them in a sensible way using our project management tools, but even the accepted file formats for design work are closed. Photoshop comps are the norm, and UX wireframes often use closed software like Omnigraffle. That's because those tools are absolutely the best ones for the job, but standardizing on those formats make it harder to build open tools for design collaboration. And even with this aside, issue trackers are all written with source code in mind.

Collectively, this all means that welcoming designers into an open source community is extremely difficult. Nonetheless, design is an extremely significant part of any software project. It's worth thinking about the first steps towards making this easier.

Build bridges.

It's hard to share from, eg, the Twitter app to my own website, whether it's based on Idno or something else. I'm planning on building a shim that allows me to do that more easily, based on Android's share dialog. But there's more to do. There are ways to take ostensibly closed platforms and find ways to pry them open. For example, functionality to share closed content by email can be used to integrate directly into other, open software. Other integrations are possible, exploiting "growth hacking" features designed to find more people to lock into these platforms.

Work from everywhere.

I've still never been to Seattle. Or Tokyo. Or Melbourne. And it's been too long since I was in London, or Oxford, or Edinburgh. I want to travel more, and use the fact that I can work anywhere there's an Internet connection - and that I am not responsible for a family at this stage in my life - to see more of the world.

If you'd be willing to host me at your office for a few days, wherever you are in the world, let me know!


The blog might be dying, but the web's about to fight back #indieweb

4 min read

As part of the Nieman Journalism Lab's Predictions for Journalism 2014, Jason Kottke writes:

Sometime in the past few years, the blog died. In 2014, people will finally notice. Sure, blogs still exist, many of them are excellent, and they will go on existing and being excellent for many years to come. But the function of the blog, the nebulous informational task we all agreed the blog was fulfilling for the past decade, is increasingly being handled by a growing number of disparate media forms that are blog-like but also decidedly not blogs.

He then goes on to discuss the death of the reverse-chronological stream, as well as the inevitable move to what he calls tightly-bound social media sites. Thematically, it's an interesting companion piece to Anil Dash's seminal The Web We Lost, which was published last year at about this time.

And, despite some hedging on his personal blog, it's clearly true. Almost none of you will have found this link through a feed reader (although my stats show that some of you are using Feedly, Digg Reader, and even Livejournal's RSS feature). Most links will have come through Twitter and Facebook, with a straggling number showing up through and similar sites. If I'm lucky, someone might submit this post to an aggregator like Hacker News.

Note, though, that you're still reading it. The article isn't dying; you can think of the blog, or the stream, or the feed, as the container that the article sits in.

Medium exploits this in a clever way by presenting articles nicely, and then providing a magazine-style site for you to consume them in. Indieweb arguments about whether you should publish posts on a site that you control or on someone else's aside, there's no doubt that Medium's injected new life into long-form text on the web. That's great, and like Facebook and Twitter, you can choose to think of it as a well-executed proof of concept.

If you buy the idea that articles aren't dying - and anecdotally, I know I read as much as I ever did online - then a blog is simply the delivery mechanism. It's fine for that to die. Even welcome. In some ways, that death is due to the ease of use of the newer, siloed sites, and makes the way for new, different kinds of content consumption; innovation in delivery. Jason talks about the ephemerality of Snapchat (which is far from a traditional feed), and there are an infinity of other ways that content might be beamed to us on whichever device we happen to choose to be using at any particular moment. But these content forms are minor details.

The beauty of the independent web is that we can choose to represent ourselves online - and therefore, publish content - in a manner of our choosing. I happen to like the reverse-chronological feed, but if you prefer to publish in the form of an immersive 3D world, or a radio show, or full-screen autoplaying video with annotations, then, hey, that's up to you. It's all part of a rich, interlinking medium. Independence means not necessarily going with the flow.

The counterpart to that is how you read content. In the past, we've been very stream-heavy: RSS readers, Twitter feeds, Facebook timelines, and so on. But there's no need for that to be the case. Part of the joy of a diverse web is that while I might choose to read in the form of a feed or a newspaper, you might want to mash your reading list up in entirely new ways. You could have a robot announcer read to you while you drive to work in the morning (wouldn't that be better than the radio?), or mash related articles up to provide new kinds of content that provide better insight than the sum of their parts. And I can choose to use a completely different form to you. Each one of us can have a completely different experience.

That's a tough concept to get across to an audience that's used to mass media, where everyone consumes the same content in the same form. But we don't need that anymore. Not only can content be personalized, but the form of the content can be personalized. Facebook might agonize over the algorithm that decides which posts are surfaced, but in the future we can each have our own algorithms. Form and content will be separated.

These new kinds of readers will begin to appear in 2014, powered by simple web technologies like HTML and microformats. They will eventually be as easy to use as Twitter and Facebook. And they will make us all more empowered readers and creators, once again connecting us all, but this time on our terms.


A few thoughts on IndiePhone #indieweb

2 min read

Aral Balkan announced IndiePhone today. He did a good job of making it sound exciting, in a very Jobsian way:

I think it's great that he's driving interest in the subject, and of course it's fantastic to see anyone starting something up with these sorts of principles. I particularly agree with his arguments about poorly designed open software. I do have some specific questions though:

  1. I'm curious about the motivation for actually building a phone. That seems like a very Apple thing to do - whereas for me, an indie approach would imply being able to run the software of my choice on the device of my choice, with full control over data transmissions and storage. It's also a dangerous thing to do, and could taint the water in the same way that Diaspora arguably did for decentralized social networking. The Ubuntu Phone failed, and it had a giant name behind it. Meanwhile, Firefox OS, with a much more handset-agnostic approach, is chugging along nicely.
  2. What might the experience look like? Whereas the likes of Apple are very prescriptive, to me "indie" suggests that I should be able to tailor my own experience to a much greater degree than other platforms. For example, the ideas surrounding a people-focused communication experience might work well for a lot of people, while others might want their phone / platform / OS to work another way. Independence means I should be able to choose.
  3. I want to make sure latakoo and idno can both run on it. What might that process look like? What kind of software will it run? That isn't clear yet.
  4. Why was it necessary to trademark the word "indie" in the context of the cloud and operating systems (as well as "indie cloud", "indie phone" and "indie OS"), given that the indie web is a concept that's been around for years now?

I love the ambition here. But I'd also love to know more, and I'm a little bit concerned that the presentation inadvertently co-opts terminology and ideas developed by existing communities, without involving them in the project.


Building the user-centered web: an update #indieweb

4 min read

Back in 2009, I wrote:

Right now, we have to register with each application we want to use. What if we required each application we used to register with us, in digital identities under our own control?

What if, using these identities, anyone could connect to anyone else, and anyone could store their data anywhere as long as the storage provider followed the same broad standards?

The web itself would become a social networking tool.

By establishing a general standard for social application interactions, the services and technologies used to make connections become less relevant; the Internet is people, one big social network, and users no longer have to worry about how they connect. We can all get on with communicating and collaborating rather than worrying about where we connect.

The full piece was based on a talk I gave at Harvard University's Hauser Center for Nonprofit Organizations. It declares a number of problems to solve:

  • User control: users should have ultimate control over their data.
  • Ownership: granularity of ownership, and the rights implied by ownership, is complex in certain contexts. Sometimes a single-user model of ownership is appropriate - but sometimes not.
  • Privacy & Transparency: the ability to control who has access to your data footprint across the web, but also a clear knowledge of what happens to that data.
  • Platform: software that actually embodies these properties.

In the interim, there have been many articles about the continuing silo-ization of the web - notably The Web We Lost by Anil Dash. In other words, the problem has become worse, not better. Generally speaking, users have less control, less ownership, less privacy and fewer platforms to choose from in 2013 than they did in 2009.

A glimmer of hope has been the indieweb, which I've written about at length. This is a movement that champions ownership, but through it, principles like user control, privacy, transparency and a healthy ecosystem of platforms are also promoted. Idno, the open source platform that powers this site, adheres to many indieweb principles.

There's more work to be done. I believe that contextual display advertising is the single biggest obstacle to a web that is under the control of users. In our advertising economy, users are tracked throughout the web in order to determine which ads will be performant for them. Mozilla Lightbeam is an extraordinary project that highlights the pervasiveness of the problem. Wherever we leave a data footprint, we are tracked.

The irony is that contextual advertising isn't even very effective! Fraud is rife in online advertising, and the price of online ads has dropped for eight straight quarters. As a result, publishers need to drive higher and higher visitor numbers, leading to less subtle growth strategies, often bordering on the unethical. Platforms seek vastly increased engagement, leading to an inability to remove your content, what amounts to spamming you to bring you back to the app, and a reduction in integration hooks that might make the software more useful within the context of a user's entire suite of applications.

On the content side, meanwhile, viral sites like Upworthy and Buzzfeed are king, which is great if you're writing about the top 15 things you might not know about Miley Cyrus - but death if you're a niche publisher, community or information source trying to make ends meet.

What if we rethink advertising in the same way that we're rethinking personal sites with the indieweb? "Niche" - in other words, highly specialized - communities are in many ways the lifeblood of the web. They're one of the things that makes it special; the fact that there can be a place to meet for any interest group. Finding platforms that will adequately financially support these groups, as well as by giving them responsible software that gives them control, privacy, transparency and ownership, will be hugely empowering.

Building the open web we want isn't just about software. It's about the mechanisms involved that will make it sustainable for people to create the right kinds of businesses that use it as a platform.


What the heck are the references at the end of my posts? #indieweb

2 min read

If you're following me on sites like Twitter or Facebook, you may start seeing references at the end of my posts. They look something like:

( s/3Nb4L)

Or they'll just be a link to the post, with the URI scheme (the "http://" bit) removed.

I'm adding those to make it clearer that I'm not actually posting on those sites; if you're following me on Twitter, Facebook or elsewhere, those are echoes of my content, using a mechanism called POSSE (Publish [on your] Own Site, Syndicate Everywhere). I began exclusively using POSSE to post to other sites on June 1st.

If you search for the citations on the web, you should find the original post. Or, you can add a slash between the two clauses, and they work as a link on their own. (I don't just post a link to my site if there isn't more content to read, and I don't bother posting a citation if there's already a link to my site in the post.)

This is all part of the indieweb movement, which is about owning your own site on the web to represent yourself and communicate rather than primarily saving it in a third party silo that you don't control. I use my own software, idno, to host all this, but many other projects are available. (Nonetheless, if you'd like to get started with idno, I'm very happy to help you out.)


How #xoxofest and #indiewebcamp saved me, in a way.

8 min read

For me, one of the most interesting aspects of was the humility on show from people like Evan Williams, Maciej Cheglowski and Cabel Sasser - people who, in my mind at least, have "made it", and should be happy, successful and singing on hillsides with butterflies. Instead, each of their presentations was introspective and personal in different ways.

Frank Chimero captures one facet of it well in this amazing post:

After several talks, an unstated theme began to emerge, providing fuel for many of the stories and ideas expressed throughout the two days. It was often hinted upon, but only directly stated in Christina Xu’s talk. It came out as bright and searing as magnified daylight: “Independence is lonely.”

Independence is lonely.

When I moved to the San Francisco Bay Area, I did so for personal reasons. My mother has (had?) idiopathic pulmonary fibrosis, an incurable disease of the lungs that causes progressive scarring until you can't breathe anymore. I wanted to be close to both my parents to support them, and to spend more time with them. It was a good decision: I was there when she had to be bumped up to two refrigerator-sized oxygen concentrators in parallel in order to be able to breathe, I was there when she had her double lung transplant, and she's lying on my sofabed right now, in readiness for yet another session at the hospital.

So I have no regrets, even with everything else aside. However, you've probably noted that the San Francisco Bay is not the worst place in the world to be if you're making software. Legends have been made here. The people here have have made the world change over and over again - even before the computer revolution - and will do so many more times. I want to be in that mix. Call it egotism, but I believe I can help the world change, too.

But I was lonely.

Now, it's true that I wasn't fully independent, or alone. I work for latakoo, an enterprise video management startup based out of Austin, Texas. I'd been working with them first as an unpaid advisor, and then transitioned to lead their technology team. However, they were all in Texas, and I was all the way over here. Flights and Google Hangouts are useful, but they're not quite the same as having a ready-made community to plug into.

I've always liked to have my own projects, but the last big self-owned project I'd helped to start - something called Elgg - had not ended well. It still continues to be widely used, and I'm still very proud of the work we did, but the startup we'd founded with it succumbed to a series of bizarre interpersonal issues that I still don't fully understand. It's a shame, because we had been successfully bootstrapping, and had succeeded in a way that I think most web startups wouldn't be capable of, from a standing start with zero knowledge.

Those interpersonal issues were killer. There were, through the course of Elgg's evolution, a number of what felt like attempts to subjugate me in importance in the company, and in the project. I was threatening, I think, which is bizarre; if you've ever met me, you'll know that I go out of my way to be un-threatening. (And I was responsible for building the project, which is still in use in two national governments, Fortune 500 companies, etc etc.) In the end, though, it was a disagreement over a fundamental business direction that made me leave; I realized that it could never be profitable under its current heading, and I realized I didn't have quite enough clout to change this on my own. The company faded away less than a year later, and Yammer, a company that took exactly the direction I wanted to head in, was sold to Microsoft for a billion dollars.

So it goes. I left in 2009, just as the web was becoming more mobile; it was something you accessed from everywhere, rather than on your desktop or laptop. So I started to build something called Outmap, which would let anyone create, curate and crowdsource sets of geographically-tied data, and then share and access them from wherever they were. My two big use cases were (for the free version) crowdsourcing lists of free wifi access points using Twitter, which was a big issue at the time, and (for the pro version) being able to take biological species counts using a smartphone.

But then there was a kerfuffle with some people, because they felt that perhaps I shouldn't have been creating any social software at all after Elgg. All software is social, of course, and it was really an attempt to bully me into doing some things I didn't want to do, having already been bullied into doing some things that I also didn't want to do. They had a lot more money and power than me, though, which meant that I wound up shelving the project.

All of which brings me to San Francisco in 2011, feeling utterly burned-out about my own projects, and feeling shy about connecting with people in the industry because I was no longer doing the thing I was vaguely known for. I was forced to be a talker rather than a doer; something I strongly dislike. I had left my girlfriend behind in Edinburgh, I was dealing with a dying parent, I was in the midst of my startup's scrabbling-around phase (trying to find the right product-market fit), I was personally losing money every month because of the phase we were in, and I didn't know anybody at all. Without realizing it, I lost faith in my ability to create things on my own terms. Reader, I was miserable. For a year.

This is where community becomes important. Finally, in an act of desperation, I put out a message saying that I was having trouble meeting people (although, yes, that was mostly because of my own barriers). Tantek Çelik responded, inviting me to a microformats dinner in the Westfield Dome, where I had some great conversation with him, Kevin Marks and Ariel Waldman, and we collaboratively ended up submitting a pull request to Elgg, to get its profiles to support appropriate microformat markup.

A month or two afterwards, I went to XOXO and found a community of independent makers and doers who were creating things on their own terms using the power of the Internet and were improving their lives in the process. In a quiet corner one evening, I cried. And then I made a resolution: I would give myself time, every day, to build my own things again. In November, as part of NaNoWriMo, I wrote a novel.

That Elgg pull request was eventually rejected, and it was as a direct result of this that I found myself writing the first code for Bonita and then idno, and then eventually presenting my platform at IndieWebCamp. It was a lot more than a simple social platform that embodied some technical principles; for me, this journey has been more symbolic. It's been about taking my life, claiming some ownership, and rearranging it to be what I wish it to be.

(An important note: I have no ill will towards the current Elgg team at all, which is, in my opinion, doing a great job.)

I wrote the database and object code for idno while I was spending my evenings in my mother's recovery apartment, while she was getting slowly better after her invasive surgery. A couple of commits were from the ward after she was readmitted. I wrote the interfaces when I had moved back to my own apartment, and was still waking up every night with flashbacks from the day of the operation. I presented the first version - chickens! - when I was finally beginning to breathe again on my own terms, and was wondering what the rest of my life would look like. And now, I'm getting ready to release.

For me, the movement has been about software, sure, but it's more importantly been about meeting amazing people and once again being a part of a human movement. I have found my community in San Francisco, and I am no longer lonely.

They say that to have real satisfaction in your career, you should feel like you're making progress on meaningful work. More and more, I feel that way about my life. And it's helping me with my work on latakoo, my interpersonal relationships, and the way I feel about the world.

The power of XOXO isn't in the things that people are making on their own terms, although the things they're making are incredible. It's in the sharing of those things, and in the motivation to create, and in the community.

For both the and communities, I can say this: I'm proud to be there.


Idno and the #indieweb at the W3C Workshop on Social Standards #osfw3c

2 min read

It was an honor to present Idno to the W3C Workshop on Social Standards: The Future of Business in San Francisco last week.

My position paper, The Indieweb as a Minimally Viable Platform, was previously posted on this site. It speaks for itself: the decentralized social networking technologies evolving as part of the , I believe, are perfect for exploring and testing new social workflows and interactions without significant resource expenditure. In enterprise situations, this is key: too often, technology stacks are dictated by committee, and user experience becomes subservient to a growing list of untested needs. Silicon Valley startups know that you need to validate your ideas before you invest too heavily; it's time that enterprise caught up to this approach.

Conversely, larger organizations do have a different set of needs, and it's important to incorporate those into software designed to serve them. Security is often paramount (as it should be), and most large organizations won't consider running software on third-party clouds, or that "phones home" with aggregate statistics about their data. As it happens, those are some of the values that the shares. It's also Elgg's largest market, and it's clear that there's still a need for a simple to use, off-the-shelf, fully self-hosted platform that enterprises can use to facilitate social communication internally. Idno's intent as a replacement for Elgg that works with modern web standards continues to be vindicated.

Some comment was made about how the presenters at the event had to overcome their fear of the enterprise to get there. That's very far from the case. I've been working on easy-to-use enterprise software for almost ten years, and I continue to be passionate about bringing the ease of use and fluid social interactivity of the rest of the web to that market. I believe that the community's work is very applicable, intend to help get it there, and know that I'm not the only one.

Thanks to Harry Halpin, Mark Weitzel and the Programme Committee for inviting me. I learned a lot, and had fun meeting everyone.

Also posted on IndieNews


The #indieweb as a minimum viable social web ecosystem

8 min read

This piece was submitted as a position paper for the W3C's Workshop on Social Standards: The Future of Business, due to be held on August 7-8, 2013, in San Francisco.

Really interoperable interoperability

Much has been written about both the power of APIs to connect social applications in powerful ways, and vendor lock-in in the context of those APIs. Rather than usher in a new era of interoperability and open computing, APIs have allowed vendors to create new ways to lock users into their ecosystems.

In many verticals, simply gaining access to a product’s API documentation is enough to require complicated licensing arrangements, vendor evaluation of your business intent for the API, and often, an asymmetric Non-Disclosure Agreement. “Open” is the new closed: too often, the API is a proprietary product in itself. This is as true in social software as it is elsewhere.

This proprietary nature carries multiple business risks. Not only does it require that customers invest heavily in a particular vendor’s products, but should that vendor subsequently decide to discontinue those products – as happened recently in the case of Google Reader and a number of Yahoo! products – the customer must repeat that investment in another platform. Finally, recent surveillance revelations must be food for thought for any business using proprietary services to host sensitive data.

Sophisticated open API standards mitigate these risks, but developing support for these can require a significant expenditure, and the business case may not yet be clear to most vendors. There is no doubt that they occupy an important place in the emerging social landscape, but not all vendors, or their customers, can justify the level of technical expense currently required to “buy in”. Indeed, given a high enough barrier to entry, even ostensibly open APIs may inadvertently have the same ill effects as closed ones.

Proving it

Although there have been significant advances in the field over the last five years, there remains a need to prove the business value of decentralized web technologies. To many of us involved in both the industry and the movement, this seems silly: after all, the business value of other decentralized technologies, like email and the phone system, are hardly questioned. Nonetheless, in a world where centralized data siloes regularly receive multi-billion-dollar valuations, the onus is on those of us who are building more open technologies to demonstrate their worth. Note, it is not enough to argue their worth: we must build, ship, and actively demonstrate a profitable product or service with a business model where the decentralized social web is an inextricable component.

I believe that these compelling business models exist, and that they are most easily discoverable in the enterprise. However, belief is not demonstration: we must continue to test and iterate them. During this exploration phase, this means that, our software and underlying protocols must be easy to write, adapt and change. Ease of development is more important than sophistication; we must not create our own technical lock-in before we even ship.

The IndieWeb

The “IndieWeb” movement was founded by Tantek Çelik, Amber Case and Aaron Parecki, around their annual IndieWebCamp event. Although it was originally created to encourage participants to self-host their own web presences (a laudable goal in itself), over the last year it has also begun to incubate a number of simple social web protocols based around Microformats 2 and Webmention.

At its simplest level, assets on the web are marked up with appropriate Microformats 2 classes, so that any parser may obtain a consistent JSON representation of their content. Linked targets on the page are then pinged using Webmention (or pingbacks), which alerts them to the presence of that content. They may then go back and parse the source of the ping, discovering content like comments, replies, event RSVPs and favorites. Adding more content types would be trivial, and indeed, more are emerging every week. If a content type is not registered, the target page may simply register that the source “mentioned” it.

An obvious further implementation incorporates signed HTTP requests for both parsing and Webmention pings, allowing for lightweight authentication so that protected resources can be selectively revealed.

The protocols and standards under development within the IndieWeb community offer some unique advantages for testing decentralized social models:

  1. They piggyback on top of an open, decentralized system that everyone has already bought into: the web itself. Indeed, on the IndieWeb, where possible, the web is the API.
  2. They are extremely simple to develop for, allowing you to concentrate on building well-designed tools that meet human use cases instead of building support for social protocols.
  3. Social software need not be “monolithic”. Suites can be constructed out of small, compatible pieces, loosely joined.
  4. Major search engines support Microformats, so marking pages up to be IndieWeb-compatible may also yield SEO benefits.
  5. The IndieWeb community actively embraces participation in existing closed networks through a process called POSSE, minimizing the potential business impact for entities transitioning to a decentralized model.

POSSE - Publish (on your) Own Site, Syndicate Everywhere, as coined by Tantek Çelik – accepts that your friends, contacts or customers are easier to reach on the social platforms they’re already using. Therefore, content on your own, independently-hosted platforms syndicate out to your audience across the networks they already use; links point back to the originals. In the short term, it becomes immediately possible to experiment with decentralized social models without losing your existing audience. Over time, it may be possible to transition those audiences to consume and interact with your web presences in a more decentralized way, ensuring that you can post on your terms, and they can consume on theirs.

While most implementations of POSSE concentrate on consumer social tools like Twitter, Facebook, Flickr and Foursquare, there is no reason why the same principle could not be applied to commercial platforms like Yammer, Avid Interplay, GitHub, Salesforce or SocialText – or any proprietary service used internally inside any enterprise, APIs permitting.

Idno as an experimental testing ground

Idno is one embodiment of an IndieWeb-compatible open source platform that can be installed across many hosting environments. It was originally designed as a replacement for older open source networking platforms, but rapidly evolved into a testbed for many of the ideas the IndieWeb community was proposing.

At the time of writing, decentralized social web activities supported by Idno include:

  • POSSE posts to Twitter, Facebook, Flickr and Foursquare, and replies on Twitter
  • The ability to comment on, or reply to, a post (or multiple posts) on another IndieWeb-compatible site
  • The ability to “like” a post on another IndieWeb-compatible site
  • The ability to RSVP to events posted on other IndieWeb-compatible sites
  • The ability to post content, including status updates, blog posts, bookmarks, photos, geographic “check-ins” and events that other people with IndieWeb-compatible sites may comment on, reply to, “like” or RSVP as appropriate

Due to its framework origins, Idno allows developers to easily build new post types. Indeed, support for events and RSVPs – at the time unsupported by any other IndieWeb-compatible software – were built in a single evening, with one developer, directly after an IndieWebCamp event. Other software produced by IndieWeb developers began to support events and RSVPs the next day. By the end of the week, at least three separate software platforms supported the content type. There is no doubt that the barrier to entry is low for individuals and businesses alike.


The rapid development that IndieWeb standards make possible is perfect for testing business models relating to the decentralized social web. This does not undermine the technologies and successes of the wider federated social web movement, or of other open social software projects; however, it does allow models to be tested much more quickly.

The relatively low barrier to entry of the IndieWeb also may encourage more developers to take part (as has already been shown), and as such, it seems likely that the standards that community is developing may find themselves in wide use for some time to come. An obvious analogy is RSS, which is not a sophisticated syndication standard, but saw widespread use due to its ease of implementation.

Many of the prevalent models for social software are hostile to the needs of both businesses and individual users. The IndieWeb aligns software developers with their users, while providing simpler tools for development, and encouraging both wider participation and more experimentation. I believe the result will be accelerated innovation in social software, and a much faster path to validating business models for the decentralized social web.

Syndicated to IndieNews


What idno is

5 min read

This site runs on idno: 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, 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, and front-end frameworks, like 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 is based around MongoDB. 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 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 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 is an annual event for creators to discuss their platforms, technologies and ideas.

One of the big concepts to come out of has been : 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 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 (a way to very simply embed meaningful markup into any web page) together with Webmention (a way for any web page to lightly ping the pages it references), the community participants created the first indieweb decentralized comments 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.

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. Meanwhile, I continue to do work I'm proud of in my actual job, working for latakoo 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.


How chickens work #indiewebcamp

2 min read

I built an easy way to post chickens.

To post a chicken, or series of chickens, the user just clicks on the appropriate content icon:

Note that the content icons are designed to be accessible both on a touch device and with a pointer.

The user is then asked exactly how many chickens they would like to post (with clear messaging: "CHICKEN CHICKEN CHICKEN?").

Once the user has made their chicken selection, a new chicken object is created. An Activity Streams "post" event is called. I've written my chicken plugin to define chicken content as having an Activity Streams object type of "note".

Twitter and Facebook plugins are listening for new "post" events with object type "note". When I post chickens, they're sent one! If I've linked idno with my Twitter and Facebook accounts, the content is sent to those plugins, and they are in turn responsible for sending the content to their respective sites.

My chickens are posted to Twitter and Facebook.

Finally, the default template on my feed defers to my chicken plugin every time someone visits on my site and wants to see my chicken content. (The template there displays chickens with some photographic help.) I've added an h-as-chicken microformat content type behind the scenes, so third-party clients can parse my pages for chicken content. And finally, the Activity Streams content is available to anyone who requests my pages with an Accept: application/json header.

It took 30-45 minutes to code, except for chicken photo search and download time. And here's what a post looks like.


The tyranny of content types #indiewebcamp

1 min read

I've been thinking this morning about content types and granular access permissions (which, it turns out, is ground the IndieWeb community has already tread).

Activity Streams is a data syndication format with very granular content types, which is awesome - unless those content types dictate the kinds of content you actually allow people to create with your software.

Why should a content type be strictly a note, or an article, or a place, image, video, application? One of the amazing things about the modern web is that we can combine content types to create experiences that are richer than the sum of their media parts.

At the simplest level, I want to be able to (eg) include a photo with a checkin. But why not construct a post that's a photo followed by some audio followed by some text followed by an interactive widget followed by a non-linear video with an interactive layer on top of it? One of the neat things about the is that you control your platform - and that should mean controlling the form of your content too.

Watch this space ...