Skip to content
This repository has been archived by the owner on Mar 21, 2023. It is now read-only.

nichoth/hermes

Repository files navigation

hermes Netlify Status

see the demo website ⚠️ note — this is not ready to use yet

see version 1, ssc

Hermes logo

develop

This is an example of using wnfs + preact & @preact/signals. We are using client side routing via the browser's history API in route-event, because the navigation API is chrome only.


Start a local development server:

npm start

About the dev setup

you can place the asset in a special public directory under your project root This is configured as _public

Focus on privacy and sharing data with known people

This project is designed to share images via a social network. It started with using services that are more traditional — a DB and blob host, + UCANs for ID.

In the interest of dogfood though, I've realized that what I'm really looking for is a small scale way to share images with specific people, and I've discovered that wnfs already has a way to do read permissions on a per-user basis. It's kind of interesting because it's all based on decryption capabilities instead of access control.

And wnfs gives us a common backend / ID-source for users, which makes identity easier, since webCrypto private keys cannot be cross-domain.


to share private files with a group of people, you would need to write down the list of people in the group. Then call fs.sharePrivate and pass it the list of other users. So wnfs I think has everything needed for this usecase. At this point it's more a matter of finding time to try this & build some UI for it.


The way I've been thinking about this at a high level is that it's like Signal, the messaging app, in the sense that no one is able to read your messages except the recipients, but with an added social network aspect.

The social part is all configurable too, at a pretty granular level. So you can configure things like -- do you want to let your friends see who your other friends are? Or hide that info from everyone? In any case, you get to choose who can read that. Not even the server-operator is able to read that info, unless you allow them to.

This is a big difference from traditional social networks, like Instagram, where the server reads/knows all your data.

relevant links

notes

MVP is "online first" / online-only