Regarding the Indie Web : Who

Who is the Indie Web?

The Indie Web is made of people. It’s made by me. It can be made by you too. There’s no gatekeeper. You can join anytime without anyone’s permission. The Indie Web is made by everyone.

The Indie Web community is a small but growing group of people from several countries. We’re on a few but not not continents. We are hiding in plain sight, or rather we’re not hiding at all. We have jobs in tech and not in tech. We build our own software or install other’s (like WordPress or Known). We are designers, developers, devops, UX and non-technical folks.

The Indie Web community is not as diverse as it could be and needs to be. Admittedly, the community is overwhelmingly white men. There are some women and some people of color. But we need to do much better at reaching out to people, at being more inclusive and at sustaining a diverse community. Because if the Indie Web is going to succeed, it must represent the rich plurality of people in the world.

We are working hard at making the Indie Web not just for us by us, but for all of us by all of us.

Originally published at on June 5, 2016.

Regarding the Indie Web : Where

Where is the Indie Web?

The Indie Web is everywhere. The Indie Web is nowhere. The Indie Web is anywhere you can access the internet.

Personal Websites

The Indie Web is simply the web when it’s owned and controlled by individuals on their own domains. The Indie Web is that place where someone publishes a creative work to her own website. The Indie Web is on individual’s personal domains and in the interactions directly between them. The Indie Web is when just a copy is syndicated out to imperialist website silos. The Indie Web is of the internet on our personal websites.


The Indie Web is, of course, just made of people. The Indie Web community regularly gathers in an IRC channel #indiewebcamp on (with a Slack bridge called, indiewebcamp). There’s also a web version at


Once per year, we meet in Portland, Oregon, United States for the Indie Web Summit (started in 2011). Additionally, other IndieWebCamps have been organized in multiple cities in the United States and in Europe. We hope to add more cities and in more continents.

Homebrew Website Club

Also, in multiple cities in the United States and in Europe smaller groups meet up more frequently and more informally at a meet up called Homebrew Website Club. At HWC, we share with each other our progress in building and improving our websites. We encourage each other to continue our improvements. And in some cities, there is a silent writing hour where attendees simply write new material for their website.

Both Homebrew Website Clubs and IndieWebCamps are free and available to anyone who owns their domain or wants to. Anyone can also organize a Homebrew Website Club or an IndieWebCamp in their city.

Originally published at on June 5, 2016.

Regarding the Indie Web : How

How Can You Get on the Indie Web?

The Indie Web is not a place separate from the web that you already know and use. The web that you’re probably reading this article on right now.1 The Indie Web can be almost anywhere on the web.


The first step to getting on the Indie Web is to own your domain. 2

A domain (or sometimes called a “domain name”) is the part of a URL that looks like On my website, my domain is It doesn’t have to end in “.com”. It could be .org, .net, .info, .biz, .me or country codes 3 like .io, .it, .co or all kinds of new TLDs4 like .limo, .club, .ninja.

You can buy a domain from any number of registrars. I recommend if you’re just buying one or a few domains. If you find yourself owning 10 or more, I suggest using I implore you to avoid Even if they’re selling the domain you want for a few dollars cheaper than others. Everyone I’ve ever known that used GoDaddy regretted using them later.

Try to think about the longevity of your the name you choose. Will you still want to use this domain in ten years? In fifty? Always a reliable classic is your name at some TLD.,, etc.

Some websites that provide the publishing software (like SqaureSpace or WordPress) will also sell you a domain directly through your account settings. And when you buy it through them, they also configure it to Just Work™ for your site.

For example, when you sign up with you choose a subdomain for your WordPress blog: But when you buy through WordPress, they set it up so that only is ever shown to the world instead of

It’s critically important that you don’t use a subdomain (like or as your primary website. The reason is that you don’t really own any subdomain.5 If you ever decide to move to different publishing software (like from Tumblr to WordPress) none of your URLs can be moved. And good URLs don’t change.


Once you’ve got a domain, publish something. Publish lots of somethings. Publish to your heart’s content. And then publish some more.

Publish short text notes. Publish longer structured articles with titles and HTML formatting (if you want). Publish bookmarked links, photos and videos. Anything that you currently publish on other sites, like Twitter, Facebook, Instagram, YouTube, etc.

Later on in the process of expatriation from the corporate silos that currently control what and how we publish to the autonomy of the Indie Web, there’s a process called syndication where a copy of your post is sent to a silo for greater distribution or visibility for people you want to see your post but don’t go to your site. E.g. friends and family on Facebook.

We call this process of syndication POSSE. That stands for Publish (on your) Own Site, Syndicate Elsewhere. I’ll cover POSSE in more depth in a syndication specific post.

About Me

Or about you, really.

On your site, there’s probably a header, sidebar or footer place for you to put some information about yourself. Your name, your photo or avatar, some URLs and usernames on other sites. If you feel comfortable doing so, your phone number and/or email address. Maybe even a short paragraph or two bio about you. You can expand this even further by creating a page (typically called “About” at the path of /about). You can also add a resume/cv and/or portfolio. Or you can do something completely different. It’s your site, your identity.


Get a domain. Find some publishing software (or if you’re feeling adventurous, build your own). Publish some posts. Include an about me section. Write an about me page (and for bonus points, a resume).

Now you’re on the Indie Web!

There’s some additional technology under the covers that will improve your experience, but all of that requires that you’ve done these parts first.

1. Unless someone printed this article from a webpage and handed it to you.^

2. Technically we only ever rent our domains from registrars who in turn rent them from ICANN, but that’s a different post for a different time.^

3. Something to consider when buying a country-specific domain is the longevity of that domain. Are there certain rules that apply to who can own a domain in that country? Eg, do you have to be a citizen of that country? Does that country have laws that don’t apply to you as a non-citizen, but would apply to your domain that might cause your domain to get shut down by a foreign government? Some countries have a “morality” clause and if you’re LGBQT, they might shut down your website at anytime. See for example .ly domains, like Violet Blue’s short domain, getting shut down by the Libyan government.^

4. The part that comes after the dot in a domain is called a Top Level Domain. The “com” in “” is the TLD.^

5. Unless, of course, you also own the domain that the subdomain is on. Like if I decided to use instead of I still own so the blog subdomain is still completely under my control.^

Originally published at on June 5, 2016.

Regarding the Indie Web : Why

Why Get on the Indie Web?

In a word, autonomy.

Call it freedom or agency or control or ownership. Call it any number of things, but no one knows how to live your life better than you do.

The current state of the web for most of us most of time looks like this. We go to one website or app and publish some post. Then we go to another site or app to publish a different kind of post. Or maybe we cross post it from one site to another. All of those sites and apps are by other people or corporations. They all have a different set of users with different usernames, and different networks, with their own cultures and norms.

New sites and apps come along. We try them out. Some go out of business or get acquired and “sunsetted”. The sites get shut down. Our posts and URLs get destroyed forever. Rinse and repeat on another site over and over.

Nevermind the communities that take shape on these sites. Nevermind that when these sites get shut down the communties get disappeared too. We all find support through communities. If a community that we’ve come to depend on disappears, that can have a real impact on our lives.

Get Free

All good things are wild and free. But we can’t be wild and free on an imperialist website silo1 that’s owned and controlled by someone else, especially a silo owned and controlled by a corporation whose business model is surveillance and advertising. We can only be wild and free through a model of self-determination and mutual aid.

Any website that we publish our creative works to controls the terms and context under which we publish.

Some reasons to control your own website instead of solely trusting silos are: content censorshipterms of serviceprivacyadvertising / monetizationthe algorithmidentitylongevity.

If they want to delete our posts or account, they can for any reason with no warning. If they want to sell or give information about us and our activity to advertisers, law enforcement or governments, they can without our knowledge or consent. If any money is made from your published posts (say, from advertising views), you don’t see any of that money.

Stay Wild

We love power and hate authority.
— Crimethinc

By participating in the Indie Web, you are helping to create an alternative to the corporate-owned, advertising-subsidized surveillance state of imperialist websites like Facebook, Twitter, Instagram, YouTube (and all the rest).

The  Indie Web looks like owning your personal website and publishing all of your creative works there. Notes, articles, photos, videos, events, rsvps, likes, bookmarks… all of the things. You publish how and where you want. Your friends, family, followers and fans can read and view your posts how and where they they want.

1. When I say a “silo”, think of a corn silo. There’s stuff inside of it. There is not stuff outside of it. It does not connect to other things. Everything is just inside of it. Some people call these “walled gardens”, but I think that’s giving them too rosy of a description. I don’t think Facebook is a garden where things bloom and grow. I don’t want to eat anything that’s grown in there. ^

Originally published at on June 5, 2016.

Regarding the Indie Web : What

What is the Indie Web?

It’s not a place. It’s not social network. It’s not a website, Slack channel or secret club. It’s not on the dark web. It’s not a new protocol. It’s not a new format. It’s not an app or specific software.

Fundamentally, the Indie Web is an idea!

The idea is that any person can and should have their own website on their own domain that they own and control.

I can’t speak for anyone else, but I believe that as a culture we must expand our definition of human rights to include two more things.

  1. All humans have the right to access, read and participate on the Internet free of restriction, censorship and surveillance.
  2. All humans have the right to own a website that they have complete control of free from censorship for the entirety of their life and that is preserved after their death.

The Indie Web is a small step forward toward these goals.

Originally published at on June 5, 2016.

JSON-LD is an Unneeded Spec

Today I learned about a proposed spec called JSON-LD.
The “LD” is for linked data
(Linked Data™ in the Uppercase “S” Semantic Web sense).1

From the JSON-LD site:

Data is messy and disconnected. JSON-LD organizes and connects it, creating a better Web.

Linked Data empowers people that publish and use information on the Web.
It is a way to create a network of standards-based, machine-readable data across Web sites.
It allows an application to start at one piece of Linked Data, and follow embedded links to other pieces of Linked Data that are hosted on different sites across the Web.

JSON-LD is a lightweight Linked Data format. It is easy for humans to read and write.
It is based on the already successful JSON format and provides a way to help JSON data interoperate at Web-scale.
JSON-LD is an ideal data format for programming environments, REST Web services, and unstructured databases such as CouchDB and MongoDB.

Linked data. Web sites. Standards. Machine readable.

Cool. All of those sound good to me.
But they all sound familiar, like we’ve already done this before.
In fact, we have.

Linked data
That’s just the web, right? I mean, we’ve had the <a href> tag since literally the beginning of HTML / The Web. It’s for linking documents. Documents are a representation of data.
Web sites
If it’s not wrapped in HTML and viewable in a browser it, is it really a website? JSON isn’t very useful in the browser by itself. It’s not style-able. It’s not very human-readable. And worst of all, it’s not clickable.2
Standards based
To their credit, JSON-LD did license their website content
Creative Commons CC0 Public Domain.
But, the spec itself isn’t.
It’s using (what seems to be) a W3C boilerplate copyright / license.
Copyright © 2010-2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
Machine readable
Ah… “machine readable”. Every couple of years the current trend of what machine readable data should look like changes (XML/JSON, RSS/Atom, xml-rpc/SOAP, rest/WS-*).
Every time, there are the same promises. This will solve our problems. It won’t change. It’ll be supported forever. Interoperability.
And every time, they break their promises.
Today’s empires, tomorrow’s ashes.3.

Instead of reinventing the everything (over and over again), let’s use what’s already there and what already works.
In the case of linked data on the web, that’s html web pages with clickable links between them.
For open standards, open license are a deal breaker. No license is more open than
Creative Commons CC0 Public Domain
(See also the Mozilla wiki about standards/license, for more.)
There’s a growing list of standards that are already using CC0+OWFa.

No process is more open
than a publicly editable wiki. (Mailing lists are toxic.)

Finally, for machine readable data, nothing has been more widely adopted by publishers and consumers than microformats.
As of June 2012, microformats represents about 70% of all of the structured data on the web.
And of that ~70%, the vast majority was h-card and xfn.
(All RDFa is about 25% and microdata is a distant third.)

Maybe it’s because of the ease of publishing microformats.
Maybe it’s the open process for developing the standards.
Maybe it’s because microformats don’t require any additions to HTML.
(Both RDFa and microdata required the use of additional attributes or XML namespaces.)
Whatever the reason, microformats has the most uptake.
So, why do people keep trying to reinvent what microformats is already doing well?

Back to JSON-LD.
The “Simple Example” listed on the homepage is a person object representing John Lennon.
His birthday and wife are also listed on the object.

  "@context": "",
  "@id": "",
  "name": "John Lennon",
  "born": "1940-10-09",
  "spouse": ""

I look at this and see what should have been HTML with microformats (h-card and xfn).
This is actually a perfect use case for h-card and xfn:
a person and their relationship to another person.
Here’s how it could’ve been marked up instead.

<div class="h-card">
  <a href="" class="u-url u-uid p-name">John Lennon</a>
  <time class="dt-bday" datetime="1940-10-09">October 9<sup>th</sup>, 1940</time>
  <a rel="spouse" href="">Cynthia Lennon</a>.

You can throw in a little bit of decoration for improved human readability without comprising machine readability.

<div class="h-card">
  <a href="" class="u-url u-uid p-name">John Lennon</a>
  was born on
  <time class="dt-bday" datetime="1940-10-09">October 9<sup>th</sup>, 1940</time>
  and was married to
  <a rel="spouse" href="">Cynthia Lennon</a>.

This HTML can be easily understood by machine parsers and humans parsers.
Microformats 2 parsers already exists for:
JavaScript (in the browser),
PHP and
HTML + microformats2 means that machines can read your linked data from your website and so can humans.
It means that you don’t need an “API” that is something other than your website.

Please don’t waste time and energy reinventing all of the wheels.
Instead, please use what already works and what works the webby way.

In its footer, the JSON-LD site mentions that it’s a “Part of the PaySwarm standardization initiative“.
Which in turns claims to be “The Universal Payment Standard”. An awfully big claim.
But, that’s another post for another time.

Hell! You can’t even put comments in your JSON.


  1. 2005-2009(?): StructuredBlogging
  2. 2005-2011: Google Base schema
  3. 2007-2011(?): Google Data API/Elements
  4. 2009-2009(?): Yahoo et al
  5. 2009-2011(?): Google
  6. 2010-present Facebook OGP meta tags
  7. 2011-present Google+MS(Y!)
  8. 2012-present Twitter Cards meta tags
  9. 2012-present


Originally published at:

No More Sharecropping!

There was a time when "having a website" meant you owned a website that you could do anything you wanted with. Any kind of content. Any kind of structure. Any kind of software. You were truly the Master of Your Domain. But in all fairness, it was sometimes hard to be that (web)master.

If you just wanted to put pictures of your cat on the internet, but didn't know anything about HTML and FTP, let alone chmod and unix, you were in for a world of hurt.

And then came Blogger (amongst other things).

It was like Twitter without the 140 character ceiling. Just type stuff into the box and press the button. That was it! You just published stuff on the Internet. There weren't even post titles in the beginning. After that we would see a flood of hosted web services that enabled people to publish stuff on the Internet very easily.

Before we knew it, all of our content was being hosted by these web services. Flickr, Picasa and Photobucket had our photos. Typepad, WordPress, Blogspot (and a slew of others) had our long form writing… called "blog posts". Delicious and Magnolia had our bookmarks and read later lists. YouTube, Vimeo and heaps of video sites had our movies. Slideshare had our presentations.

It all seemed like a good idea. Let someone else worry about uptime, backups, redundancy, bandwidth bills, etc. And for a time, things were good.

Then as we published all of our content on other services, we became dependent on them. We became digital sharecroppers. Which maybe wasn't so bad. But then… Magnolia lost all of its data. Six Apart bought Pownce and closed down the site providing no export option — or even much warning. URL shorteners cropped up, got popular and went away in the shortest of time, taking all of their short to long URL mappings with them.

And of course, there's Geocities. With all of its neon colors, tiled backgrounds, sparkly text and animated gifs, Geocities was a ghetto. But it was a huge ghetto. And now that Yahoo turned it off, it's gone. Imagine if every ghetto, barrio, favela and shanty town was literally taken away in one moment. That's a lot of very homeless people (even more homeless than before).

Enough already!

It's time for something better. It's time for a web where any person can easily create a website and publish all kinds of content there. It's time for us to own all of our data, beholden to no one. It's time that our personal diy rolled websites play nice and integrate closely into external services. It's time for a real sense of privacy, where not only is our data "protected" from others seeing it, it's also encrypted at the source so that even if seized by criminals or government alike it'd do them no good. It's time for easy granular sharing controls allowing to grant access to some content to some people, not all content to all people or to no one.

There will come a time in the not too distant future where having a website will be considered a birthright. It's time that we start building the tools that will make that a possibility.

Instead of sharecroppers, we must become homesteaders.

Some Additional Thoughts

As a person I want

  • to have a website
  • to own all of my data
  • to participate in online communities

As a user I want

  • to publish everything to my website
  • my website to syndicate my content to other sites
  • my syndicated content to link back to my site
  • to choose which sites to syndicate to

As a developer I want

  • to add outbound sites easily with a plugin
  • to add inbound formats to publish with


  • Installation should be easy, at least as easy as WordPress
  • Setup should short and simple
  • Existing tools should publish to my website

New Blog Post Workflow

  • I open MarsEdit
  • I write a post
  • I publish it (via MetaWeblog API / AtomPub)
  • My website receives my post
  • My post is available on my website ( )
  • My website algorithmically generates a short url for the post ( )
  • My website updates its Atom feed
  • My website alerts its subscribers that a new update is available (via PubSubHubbub)
  • My website syndicates a copy of my post with the short url at the end to WordPress, Tumblr,, etc
  • My website posts the short url and title to Twitter, Facebook,, etc

New Note Update Workflow

  • I open Tweetie
  • I write my tweet
  • I publish it (via JSON to Twitter api clone)
  • My website receives my update
  • My note is available on my website ( )
  • My website generates a short url for the note ( )
  • My website updates its Atom feed
  • My website alerts its subscribers that a new update is available (via PubSubHubbub)
  • My website posts the short url and content to Twitter, Facebook,, etc

There's surely stuff that I've thought about but am not thinking of right now. I'll write more as it comes to me. It's also worth noting that while I had a lot of these thoughts independent of talking with others, it turns out that more people are thinking roughly the same stuff. Discussions with Tantek really helped my thoughts coalesce, especially the personal url shortener work that he's done. He's using with a one letter namespace, 3 character base60 number of days since epoch and one digit nth item of that type on that day. I am too. I jacked that all from him and ported his JavaScript / PHP version to Ruby. Thanks, Tantek. I've also talked a fair bit with Brian Ford and Rich Kilmer about all this stuff. Both had the idea of bundling the software package up into a VM instance that one could just throw at some server and hit the ground running. I hadn't thought of that before. Thanks for that, you two.

Let's get together and make this thing. Get into it.

Originally published at: