Introducing the Compository

Hi everyone! Hope you are all having some great holidays!

I want to share with everyone an experiment I’ve been playing with that excites me greatly. Here you can access it:

Compository

This is part of the new Low Code series that we are moving along in the holochain ecosystem.

I have to give credit for the name and ideas to @zippy and @artbrock, as the compository is a pattern that goes back to early Ceptr days when they needed a repository of protocols that can be composed together.

Well, in this holochain compository experiment, you can compose zomes together to create DNAs on the fly, and then compose UIs from the building blocks associated from those zomes.

For now, it requires you to have docker installed because of the usability problems in RSM that are being fixed by the core devs. If you don’t have code expertise, in the compository page there are steps to help you along, if you are not able to run it on your machine reach us to me.

Here is a guide on how to publish your own zomes to the compository. If anyone wants some help on publishing the zomes I’m glad to talk!

At this stage, this is just an experiment and conversation starter. In the future, I have in mind to add cross-DNA entry sharing and display, inter-zome dependencies, multiple DNAs structures, DNA properties and membrane proofs… There are so so many possibilities I can’t wait to try them out.

What do you think? Is any of you excited to play with this in any way? :smiley:

16 Likes

I still remember reading about the compository all the way back. Great to see this get underway. Once I get up and running with Holochain on my Mac again I’ll want to check this out myself.

1 Like

Actually you don’t need to have holochain setup, just docker installed. Everything runs inside the docker container so you don’t even need rust or anything like that :slight_smile:

2 Likes

Also, just added non-terminal options for Windows and MacOs, let me know if anything doesn’t work or could be better explained.

1 Like

Cool looks good bro. Will check out… :slightly_smiling_face:

Thank you this is a great concept!
and I confirm it all works out of the box here on arch linux.

sorry if this seems stupid, but I’m just not sure what I’m meant to do with the app itself once it loads. Say, I want to create a DNA from the available zomes - I can give it a new template name and choose ‘generate DNA’ in the app but then nothing seems to happen. What is the next step?
In console I can see ERROR about ("invalid wire: Failure(Failure { reason: \"Dropped message to kitsune-proxy:
and a similar gossip_loop warning, but they might be red herrings.
Thank you.

Hi @robot5x, thanks for trying this :smiley:

So this is an issue that other people have experimented as well, I’m trying to investigate it. It seems that sometimes holochain cannot find the files for the zomes, but it’s a hit and miss. Can you try two or three times more to see if it works?

FYI, I’ve been seeing issues of the type Entry not found, which we are investigating with the core devs.

Meanwhile, I’ve had to set my holoport to reboot every 3 minutes, which fixes the problem. So, if you’re trying this, give it some time after booting up the docker image and then retry :smiley:

thanks @guillemcordoba yes I think I needed to be patient it is all good now. I can generate a DNA and edit/save layout etc. Very nice! :clap:

this will be very powerful.

1 Like

Do you see the Compository growing into something like Notion.so? I started using Notion yesterday and it blew my mind, and I feel that Holochain is the perfect backbone to build an open operative system with that type of interface.

1 Like

Well in some ways yes, in some ways no. The future of the compository is very much in the air, I don’t have fixed plans for it other than continuing the conversations around it to explore the possibilities to best fit the different functions it can perform.

One thing that is possible with this infrastructure is the cross-dht dynamic reading of data, which is quite exciting for me. I guess this would be the “notion like” feature that you are thinking about, but in a much less controlled environment in which every app can render whatever components it wants to render the data.

2 Likes

So with the current tools is not practical to create a happ from combining multiple zomes and DNAs? And the purpose of compository is to make this simple on both the Holochain level and the UI level? Did I understand correctly?

I’m see the compository as a piece of the puzzle, like, I imagine it as a part of the interface to create custom holo-widgets that you can easily share with friends by sharing a page like in Notion (or Anytype, which is a decentralized alternative that’s being built for IPFS)

Well, it is practical and easy to do as a developer, not as a non-technical person. The idea is to allow people to bootstrap their own games with their own rules (in holochain language, dnas), without requiring development skills or huge amounts of time.

I also see the compository as one piece, that we could plug other processes into. The idea is not at all for itself to become an ecosystem like Anytype or Notion, much more to be some kind of low-code bootstrapping / app generation tool.

1 Like

I love the perspective of Holochain apps as games; it’s so much easier to communicate and grasp. It also opens a new way to think about and design apps; imagining you are playing a tabletop game with other people!

4 Likes

@guillemcordoba if and when you are ready, have time and interest, etc, a demo showing how you want to use this would be lovely.

Even better if recorded…

Or if you have already done something like that and I missed it, and I can find it, I’ll watch it now.

Thanks.

Hey! So I have really short 3 mins demo videos, but this is still very early, and it may be difficult to show the larger vision with them. What would you want the demo for exactly? If I for example create some DNA for a community with mutual-credit blocks, add some context, and show two agents exchanging, would that be enough?

Otherwise happy to jump on a call also :slight_smile:

1 Like

That’s ok. Pls send links? I’ll watch them.

I have been thinking about how communities can assemble hApps from various components, and it seems like you are trying to do it, so I am interested and want to learn more.

Sure!

Maybe after I watch the 3 mins videos you already got? Then I might have better questions.

2 Likes

Sure! Here they are:

4 Likes

Brilliant! Thanks for creating and embedding here. I may have many questions. But first, I need to look at those modules…might answer some of them.

1 Like

First questions:

  1. Where does the Compository UI get the building blocks that can be selected for composition?
    1.1. Does it list all available Building Blocks? If so, are they cataloged or registered somewhere?
  2. Does a module need to follow some standards to be a Building Block?
    2.1. Is that was the Grapes are about?
    [edited]
  3. @guillemcordoba have you tried, and do you have examples of, using blocks together where data flows from one block to another?