Open source in the IndieWeb refers to both a set of projects where community members share their creations (usually code, open source software, or OSS) to collaborate & build together, and an imperative from our principles encouraging public sharing of code, designs, and content for re-use by others in and beyond the community.
Open sourcing at least part of your IndieWeb project is a great way to enable & encourage asynchronous feedback from the rest of the community.
Your code may be useful as a reference for others who are implementing similar functionality or standards support.
By separating at least some of your code into an open source library, you may provide a building block that many other developers can use to more rapidly implement similar applications or features.
How to open source a project
Before you open source a project, you should make sure that any proprietary code that you would like to keep to yourself is separate from the code you open source. You should also:
- Choose a license for your code
- Remove any sensitive information
- Write a README that explains your project and how it works
Further down the line, you might want to write a CONTRIBUTING file that outlines how people can contribute to your project.
Ideally you should open source your code on your own site, and share it where others may easily re-use it.
Many IndieWeb community members publish open source projects on GitHub. GitHub has wide adoption in the developer community and an extensive range of interactive, intuitive tools that you can use to collaborate on projects together.
Open for contributions
There are many open-source IndieWeb projects which encourage and support contributions.
Here are a few, clustered by programming language:
- mf2tojf2, converts MF2 to JF2.
- Indiekit, a Micropub server that currently supports git based static sites
- CASSIS, a library and set of utilities for some common internal functionality on IndieWeb sites
- CASSIS, as long as you’re willing to write JS-compatible PHP syntax.
- indiewebify.me, a website that helps people get started with the IndieWeb and test their implementations of various basic building blocks.
- mf2py, the Python microformats parser.
- IndieWeb_Utils, a Python library that makes it easy to add IndieWeb building blocks to your web application
- brid.gy, the POSSE and backfeed as a service tool.
- granary, the social web translator tool.
- IndieWeb Search, a web crawler, interface, and search back-end. This project indexes IndieWeb and related websites and makes them searchable.
Looking for examples of active OSS projects that have or help IndieWeb functionality in these languages:
- Add examples...
- Add examples...
Community Members Writing Open Source Code
Community members who publish open source code that relates to the IndieWeb (alphabetical by full name)
- Aaron Parecki
- Mark Sutherland
- Paul Robert Lloyd
- Ryan Barrett
- Tantek Çelik
- Tom Morris
- Add yourself here… (see this for more details)
Participating in IndieWeb Standard Development
Members of the IndieWeb community have contributed to, written, and edited various standards. If you implement a standard on your site and want to get involved with it, you can do so by open sourcing your code, writing about your implementation, and/or sharing your thoughts about the standard and what it allows you to do.
The IndieWeb community maintains an IndieWeb GitHub account where you can file feature requests and issues that relate to standards. Sharing your ideas about how a standard can be improved will aid its development even if the standard is mature. Our community standards, including those that are stable, all benefit from hearing developers' experience implementing them. Sharing your thoughts will help the community figure out how standards can be improved.