Distributed online life
Understanding this piece, is easier by first understanding how I see Holochain, which you can read about here.
This is a pretty long thing, but you can probably get a good percentage of the whole thing from just looking at the pictures for a little while.
I feel a need to let this piece of writing out of me for a few different reasons.
Firstly, I’ve been sitting with this longstanding need for a whole bunch of coordination tools in a number of settings and situations I find myself in and I want to share how I think about that.
Secondly, I want to highlight that these are my perceived needs and that other people, other agents as we may be called, have different needs but we can still play together in order to hopefully fulfil them together. I’ll just touch on this agent-centrism piece but it is something that is at the core of Holochain so I figured it’s good to clarify a little.
Thirdly, there are so many things happening in the world right now when it comes to digital tools and there is so much turbulence through which we need to navigate together so I just want to share specific capabilities and capacities that my social groups need in my view.
I’ve also created some images that I hope will help convey this stuff.
Starting from social reality
Humans like other primates and many other animals live in groups. Our lives are completely wrapped up in the lives of other people and our perspectives grow out of relationships. For quite a while, this reality has not been in the center of our digital explorations but hopefully it will be soon. Hopefully we’ll start designing for ourselves as social organisms.
In my last article on Holochain, I spoke about some of the different groupings I am a part of. Some of the bubbles that rub up against other bubbles.
What I would like to do with this piece is to show how my specific situation might look like if I design tech for these pre-existing social contexts.
So, to be extra clear, what I try to argue for here is that we take the social contexts we are in and figure out little pieces of code to make them work better. This is kinda different from making a big app for EVERYONE to join.
Who joins an app is actually very important, just like it is important who gets to walk into a meeting or a home. A little more on that towards the end of this piece.
Here is a little view into my reality, some of the groups I work/play with:
- Mycogreens (a microgreens and mushroom enterprise)
- Growhub (A coop for healthy growth, meetings and connection)
- Röstånga (Our village, about 1000 people)
- Rekobyn (An ecovillage initiative and future bioregional learning center)
- Food Shift (an open collective looking to shift our food systems onto rengenerative and bioregional patterns)
- Gotalandet Bioregion (this is not really a thing, just a fictional name for an undefined bioregion that I live within, I just want to use it as an example for larger scale coordination)
So all of those are social spaces that I operate in, there are more of course, my family, extended family, a book club, online communities, etc. But this is probably more than enough to be confusing already.
I sat down to draw an image of these spaces and to think about the kind of coordination needs that I have experienced within them. Here is how that turned out
What I am trying to show here is a sort of overview of some of the parts, or “apps”, or functions, or capacities, that I feel we need within these groupings to collaborate better.
We can think of these capacities as micro-services, as little possibilities of things that people in this group can do. Things that we are collectively capable of.
In order to paint a richer picture I’ll just walk through the capacities I’ve included in the image above. And this is no complete list, I can probably think of another chunk the size of this one to add to but this is good enough for flavour.
So what are these different icons representing?
Chat — The ability to just have a quick way of messaging each other, think Slack or whatsapp, something like that.
Dreams — This is a big one for me, basically porting the Borderland dreams (code) for large art co-creation
Events — Event coordination, tickets, attendee-communication, etc.
Toolshare — Distributed tool libraries. who has that saw-saw I would love to borrow/rent?
Carpool — How can we share cars and rides here?
Co-budgeting — How do we budget our funds in a group in a clear, fun and engaging way? (Check co-budget for inspiration)
Consulting calendar — Book a consultation, maybe combined with a journaling tool
Inventory Management — Stocking of products, what’s available, to whom and when?
Invoicing — A piece of code generating invoices in line with local tax regulation.
Courseware — Setting up online courses, holding study materials and forums etc.
Logistics — Materials coming and going, software to coordinate that stuff is helpful.
Boox — distributed library. why are your books trapped on your bookshelf? I am sure some trustworthy person would like to borrow one or two of them!
Food Procure — How do we create relationship to the people producing food around us? Software that makes discovery, agreement and collaboration easy in our food webs. This is something we are working on with Food Shift and Shiro!
Asset-backed Currency — helps us create a flow that connects demand for and supply of useful assets like compost, biochar and housing. More on this elsewhere ;)
Bookings — Sharing laundry machines, a bunch of bicycles or a meeting room? Booking systems are useful for that.
Seed commons — tools to safe-keep, grow and collaborate on our genetic diversity around us. Check out SeedShare!
Mapping tools — Where is that pothole we can fill? Who’s a part of the living Christmas calendar? Making and enriching maps in community.
Anyway these are probably also made of sets of lower level functionality and could be even more modular. But never mind that, on to examples in a few of the contexts then.
Examples of groups
I will just go through two of these groupings that I am involved in to show how they are similar and different. In order to plant a seed of a perspective where we look at humans as cells in larger organisms, I will use the term social organism which is a term that comes up frequently around Holochain.
Social organism 1: Mycogreens
After a few months of learning to properly grow food we’ve realised that much of the work, if not the majority of the work, done as any type of farmer is actually coordination work. This is especially true when we are many people in not just a one person operation.
Turns out that we at least need chat (turns out to be pretty useful for any group to be able to speak asynchronously), inventory management, invoicing capability, food procurement software (for others to order from us), logistics (how are we to deliver? drivers? routes?) and seed commons (where do we get our seed from?).
This is a small and tightly knit social group of 4 people right now. We mostly need operative tools to make our work in the world easier. Much of exploration, discovery and perspective making happens in person.
Social organism 2: Röstånga Village
Within this group we are primarily concerned with figuring out things like: Who has what? What things are happening around here right now? Or would someone like to join me in doing…?
What I’ve really felt missing here is the real time chat spaces and most importantly perhaps the co-creation software. There is so much initiative and creative talent in this village that could be channeled though coordinating and “crowd-support”. This could be building pieces of art or planting trees around the village or an outdoor picnic day.
Events are also totally central for this space as it is hard to know what is happening with all of the subgroups that exist here.
In addition to that there could be great use for sharing capacities, so many useful things are mostly sitting around. We could make the books on our bookshelves, tools in our garages and cars available to others in the Village. This is done to a small degree right now but could well grow if we enable accountability (who has what where? for how long? when did it break?) and possibilities of just integrating costs for things like vehicles and expensive tools.
There are more capacities that I could put in here and I could go through the other examples too but I will stop here with the examples for now, I hope this paints a picture.
Something that I just want to re-iterate and talk a little more about is what makes these groups, these social organisms, possible. Membranes.
Basically, like you know if you’ve looked at pictures of biological cells there is a sort of boundary around them. These boundaries are not completely closed, they are semi-permeable. That is to say, things can come in, things can come out. But without them there would be no cell.
Thinking back to early life on the planet, there seems to have been this free living rna/dna as first self-replicators but life really gets grooving once it creates this barrier around itself and becomes a cell.
So, it’s useful. But how can we use this concept in a good way when creating distributed applications?
I have no definitive answers here, only emerging thoughts and mostly questions.
One of the big challenges here is: who is allowed into the membrane?
Another challenge is what is acceptable/unacceptable behavior here?
Which also leads to questions around: what happens if someone does things which the social organism deems unacceptable?
Something I feel is important to note here is that the work I do around this stuff is very much informed by thinking around Commons. Both that the spaces we are creating online are to be commons but also that the tech in itself can be held in common. The questions above are also very much in line with Ostroms principals on how to manage commons well.
So, looking at this picture of all the circles again then..
Let’s examine what membranes might look like for some of them.
In Mycogreens, the people that would be in that membrane are the people working with the mushroom and microgreens production and delivery.
In addition to thinking about who gets to move in and out of a membrane, we can also think of what information moves in and out of a membrane.
For instance we want our inventory information (what we have for sale) to flow out into other spaces where people can use procuring software to order that inventory.
Markets like this can be created with the help of frameworks like hREA where different people and groups learn to speak a joint economic language in order to interact across system boundaries.
Röstånga village membrane
This is a much more porous group or social organism. We are around 1000 people living here and some more in adjoining villages. So here it is a little more fluid on who gets to install the application.
Should it be open for anyone to enter this app? Or it’s a thing that is validated by putting in ones address or zip code. Another way to ensure that this correlates with physical reality and instill trust might be that people vouch for each other to let each other in (check out the social triangulation code by Guillem for more on this).
A note on agent-centrism
This whole post is very much out of my perspective and needs. There are probably others in this village that would like to see very different capacities. Maybe someone is just interested in chat and events for instance, everything else would just be clutter.
What is exciting about this infrastructure is that those two views can both happen together fluidly.
A holochain-based application is comprised of two parts. A front end or user-interface (UI) and the data layer (backend). Holochain as a framework is only really dealing with the backend, it is designed to be a distributed data integrity layer.
So the data that is required to run the applications, like the books in the book share app or the messages in chat, are stored and distributed in a way that enables any UI to interact with it.
I could (if I have the chops) create an interface just for me that has all of those capacities in it while someone else creates a much slimmer UI with only chat and events. Still, while we both have different looking applications, we can still engage with each other in the spaces we share, the chat and the events.
This customisation will be helped along by the degree to which developers work to modularize UIs for the capacities they are developing.
Onward fellow humans
I am excited to start playing with this as the infrastructure is finally maturing to where we are having functioning apps appear. If you want to get a feeling of what composing like this might be like try out the compository and if you want to join in developing these capacities that we all can use and benefit from, head on over to the holochain forum to get involved.