The IndieWeb Community is largely based on principles (AKA tenets) such as own your data, scratch your own itches, build tools for yourself, selfdogfood, document your stuff, open source your stuff, UX design is more important than protocols, visible data for humans first and machines second, platform agnostic platforms, plurality over monoculture, longevity, and remember to have fun!
The IndieWeb community has a code-of-conduct.
🗽 Key principles of building on the indie web, numbered for reference, not necessarily for any kind of priority.
- ✊ Own your data.
- 🔍 Use visible data for humans first, machines second. See also DRY.
- 💪 Make tools for yourself first, not for all of your friends or ”everyone“. If you design tools for some hypothetical user, they may not actually exist; if you make tools for yourself, you actually do exist. It's extremely hard to fight Metcalfe's law: you won't be able to convince all your friends to join the independent web. By making something that satisfies your needs, and is backwards compatible for others, e.g. by practicing POSSE, you benefit immediately, without having to convince anyone else. If and when others join, you all benefit. This principle is also known as scratch your own itch (See also: Cathedral & Bazarre lesson #1).
- 😋 Use what you make! AKA eat your own dogfood. Whatever you build you should actively use. If you aren't depending on it, why should anybody else? We call that selfdogfooding. Personal use helps focus your efforts on building the indieweb around your needs and consistently solving immediate real world problems. selfdogfooding is also a form of "proof of work" to help focus on productive interactions.
- 📓 Document your stuff. You've built a place to speak your mind, use it to document your processes, ideas, designs and code. At least document it for your future self.
- 💞 your stuff! You don't have to, of course, but if you like the existence of the indie web, making your code open source means other people can get on the indie web quicker and easier.
- 📐 UX and design is more important than protocols, formats, data models, schema etc. We focus on UX first, and then as we figure that out we build/develop/subset the absolutely simplest, easiest, and most minimal protocols & formats sufficient to support that UX, and nothing more. AKA UX before plumbing.
- 🌐 Build platform agnostic platforms. The more your code is modular and composed of pieces you can swap out, the less dependent you are on a particular device, UI, templating language, API, backend language, storage model, database, platform. Modularity increases the chance that at least some of it can and will be re-used, improved, which you can then reincorporate. AKA building-blocks. AKA "small pieces loosely joined".
- 🗿 Longevity. Build for the long web. If human society is able to preserve ancient papyrus, Victorian photographs and dinosaur bones, we should be able to build web technology that doesn't require us to destroy everything we've done every few years in the name of progress.
- ✨ Plurality. With IndieWebCamp we've specifically chosen to encourage and embrace a diversity of approaches & implementations. This background makes the IndieWeb stronger and more resilient than any one (often monoculture) approach.
- 🎉 Have fun. Remember that GeoCities page you built back in the mid-90s? The one with the Java applets, garish green background and seventeen animated GIFs? It may have been ugly, badly coded and sucky, but it was fun, damnit. Keep the web weird and interesting.
- There seems to be an unwritten principle of focusing on UX that I've encountered multiple times while participating in the indieweb community. A recent example where it was cited is this. Should we make it explicit? (see also ) -Www.sandeep.io 18:54, 7 July 2013 (PDT)
- Added explicit principle above about UX/design. - Tantek 13:40, 24 August 2013 (PDT)
This article was quoted nearly verbatim in WIRED in 2013
- 2013-12-01 WIRED/Bruce Sterling Indieweb principles