Holochain Photos Project

This a web application that can upload, preview and share photos in holochain. Basically upload your photos to holochain, get a shareable link. All photos will be stored and retrieved from DNA.

Demo Site: hcphotos.westus.cloudapp.azure.com

Source Code: https://github.com/ogu83/holochain_photos


Very cool, the demo site is currently down. So I ran it locally.

I think there must be come azure services not working because I was getting stuck here.

Very very cool!


Strange. It was working for me yesterday when I played with it. I agree, it’s pretty cool though. I love seeing these different applications popping up. It’s like there’s an underground world developing on Holochain and new layers discovered every day.


Hi Thomas
Yes I have stopped the azure service. If you want to run it locally please change ./gui/holochain_photos.js

Remove the line
var url = "ws://hcphotos.westus.cloudapp.azure.com:50000";

So this code routes all web clients to the conductor that I was running at the hcphotos.westus.cloudapp.azure.com. Eventually I should stop that because there are issues.

First of all running just one agent and one conductor is not a good practice for holochain. Because that means it is not a chain :slight_smile: just a single node.
Moreover that computer was at the azure 1 cpu and 1 gb ram. Not good because holochain store dna in the memmory. So for this kind of hardware config azure is expensive 44$ per month. I stop the service but if you remove the line as I mentioned every body can run it locally for test purposes.

In the future for bigger photos I will divide the bytes of the photo into some chunks and then I will store one photo into many chunks and addresses. This kind of system is necessary for holochain.


@ogu83 if you want to collaborate on writing libraries for blob chunking and storage on a DHT, I invite you to join the conversation: "Standardised" common zome traits . We’re hoping to put together a working group (probably in collaboration with Developer Community Collaboration Call #1 - #3 by kristofer ) so that we work together rather than building the same thing over and over again :wink:


Why do you want to store images in the holochain? Wouldn’t it make more sense to store images in the cloud and only store the link, author and access rules in the chain?

1 Like


Why not? Because if you create a web based environment like twitter, facebook (actually there is a project called junto). Should this kind of projects store contents in other CDN’s ? Then holoports cannot host whole project, most of it would be hosted in conventional hosting or cloud services. So holoports could lost their meaning. By the way what about private files. If you can’t store any kind of file (big files like photos, videos, pdf, audio books, epub files, etc…) in holochain, it would be a big set back for holoports. Then developer can only host their web application and the zome layer in the holoports, for bigger content developer should pay more for cloud CDNs? Do you think is it a good solution? I think not. Storing photos is just a beginning from my point of view.

Oh, maybe I misunderstand the use of Holoports. I thought replicating big data through holoports is too expensive. Are they as efficient and cheap as standard cloud storage? I have to get a better understanding here…


Good question. I wonder also this. If not then holochain could not grow rapidly. It would be stay some kind of another graph sql cloud solution with p2p capabilities or something like that. Maybe I got it all wrong but at the and holochain should change the internet and at the end no body care to host app in another way that holoports. It should be like that or else what are we doing here ? There are hundreds of solutions host web application. Why using this DHT based DNA sequenced web microservice environment?

1 Like

Some baby steps: using two different UIs for the photos project


The DHT has its rights when it comes e.g. to access right management something that everyone in the network concerns. However, does the photo needs to be duplicated by all users?

While exploring the UI of Blockstack Envelop I was wondering what should be in the DNA and what shouldn’t. Envelop stores photos on gaia and provides a link for sharing. I think this link, this information about where the photos are stored are worth duplicating across the network, the photo itself not, maybe just a hash of the photo.

I am all with you that happs should be hosted on the DHT. (Blockstack apps are easily hosted on a DHT because they are fat clients.)

I am still learning about the concepts. Looking forward to exploring all the possibilities.

1 Like

What is a meaningful DNA for the Holochain Photos Project?

Uploading a file and creating a shareable link is not very good use case for holochain, isn’t it? There are many other solutions like that out there. It is nice to have but wouldn’t convince anybody to use holochain for that, would it?

Would access right management make it more holochain-ish? Something like holochain agents agree on to whom the owner of the file has given access to. Or what else would make sense?

If so then usage of holoports are questionable when we need other solutions to store files. Then this kind of thinking would made holoports useless. We should use holoports host files too somehow.

My understanding is that holoports host all the data of the DHTs, so they remain valid. However, app developers should think about what data should/must go into the DHT and which do not need to be duplicated across the network.

Maybe I haven’t understood DHTs not yet correctly.

If so again comes a big problem for application developers. If the files should goes into the another CDN, cloud company or hosting. Then why should they use holoports and holochain dna for. Code in rust? dontnetcore web api or NodeJS solutions backed with a scalable and secure NoSQL database solution like MongoDB or Casandra is more easy to code and deploy in the could like AWS, Azure or Google Cloud. By the way as you mentioned

so where the other content is already in, app developers could deploy their solutions. It would be much more cost effective and easy to code and deploy.

Unless when the developer could host contents like photos, videos in the holochain or in the holoports then develop in the holochain with rust would be effective for an app developer.

@ogu83 this is awesome.

Can you give an update on the current state of this project? i.e. are you currently developing it or has it been released?

Not sure if you looked into this but under #projects:100happs we have Project Template for teams who are looking to generate interest in the community and source help from others via participating on #events:virtual-hackalong similar to what @ddd-mtl did with his SNAPMAIL project.

For example @friedger is clearly onto something in terms of suggestions as well as even actively shaping UI alternatives.

Personally being a HoloPort owner, hanging out here in the developer forum, I am paying close attention to how the hApps are being built so that I can understand firstly ROB (Return on Bandwidth) in terms of HoloFuel, if say someone is using HoloPort DHTs as their redundant storage without paying me premium, I am clearly not interested in Hosting those hApps. Though if you be creative and see “Photos” as a “Currency” that people can trade in world of “Information Overload” then I am all GAME, especially Photos enCoded with messages or hints in them!

Sharing here some of my GIFs created as part of the Community Welcome Map effort, which in my head is enCoded with messages. Though being a non-developer you have to allow me to be in my Fantasy and think as if that was true. :wink:


@ogu83 Hello :slight_smile: This project is very interesting! Unfortunately, I am unable to contribute directly at this time. I’d just like to mention some potentially helpful Rust crates that might save lots of work:

  • Photon - Rust/WebAssembly image processing library. May come very useful for automatic resizing or editing features.

  • @pauldaoust Blurhashing can be used to generate blurry placeholders for images represented as a 20-30 character hash. This can be used to limit unnecessary load on the DHT. Can this optionally be included as metadata on the link to the first glob of an image, allowing the image to be loaded only as needed? Here’s an existing Rust/wasm implementation.


@alexoceann Alex welcome to the forum, it would be nice if you can introduce yourself so that we can learn more about you on #welcome thread

FYI - In background, I am coordinating with @ogu83 to learn how to install and understand the hAPP code. While working with few other community members, so that we all can learn together, especially the aim is to make a Case Study for On-Boarding newbies like myself, with this hAPP.

Request for help was made on this thread here since I encountered some issue when installing based on instructions provided on GitHub.

I am new in holochain and I was wondering how to upload the images. Do you upload the images somewhere or just add links or how it works? Where are the images stored?