Compare commits

...

3 Commits

  1. 2
      src/views/DiscoverView.vue
  2. 194
      src/views/HelpView.vue

2
src/views/DiscoverView.vue

@ -185,6 +185,8 @@ export default class DiscoverView extends Vue {
const allAccounts = await accountsDB.accounts.toArray();
this.allMyDids = allAccounts.map((acc) => acc.did);
this.searchTerms = (this.$route as Router).query["searchText"] || "";
if (this.searchBox) {
await this.searchLocal();
} else {

194
src/views/HelpView.vue

@ -24,50 +24,181 @@
<!-- eslint-disable prettier/prettier -->
<div>
<p>
This app focuses on gifts & gratitude, using them to build cool things with your network.
This app focuses on gifts & gratitude, using them to build cool things together with your network.
</p>
<h2 class="text-xl font-semibold">What is the idea here?</h2>
<p>
We are building networks of people who want to grow a giving society.
First of all, let's build gratitude: see what people have given, and recognize
We are building networks of people who want to grow good society from the ground up, using modern
technology that connects people peer-to-peer.
First of all, let's showcase gratitude: see what people have given, and recognize
gifts you've seen. This is done in a way that leaves a permanent record -- one that
came from you, and one that the recipient can prove it was for them. This is
came from you, and one that the recipient can prove it was for them. This can be
personally gratifying, but it extends to broader work: volunteers get
confirmation of activity, and selectively show off their contributions
confirmation of activity, and they can selectively show off their contributions
and network.
</p>
<p>
With this, you highlight giving and also offer help --
which could be conditional on others' willingness to help, too.
<p class="mt-2">
With this, you highlight giving and you also offer help --
which could be conditional on others' contributions, too.
You can record your own ideas and invite others to collaborate.
It's a way to organize & build with the resource that everyone has in equal amounts: time.
</p>
<p>
This app uses the power of cryptography to build a reputation, recording
activity that you can share at your discretion. You put some activity
public, but these services don't share your ID with others without explicit consent.
This is in contrast to Meta and Google, who hold
your data and allow you use it while they manage sharing...
those services are useful but they have the control, whereas this app gives you the control.
<p class="mt-2">
Note that your personal data is safe: your ID is only shared with those you allow. Neither
your name nor your contacts' names are shared with anyone -- even our servers --
though you can explicitly share it with other individuals if you choose.
</p>
<h2 class="text-xl font-semibold">I want to know more because...</h2>
<ul class="list-disc list-outside ml-4">
<li class="p-2">
<div @click="showAlpha = !showAlpha" class="text-blue-500">... I'm a member of Alpha chat.</div>
<div v-if="showAlpha">
<p>
This is a project for public benefit. You are invited to add your gratitude
and propose projects on a distributable ledger.
</p>
<p>
The underlying data is on a merkle tree with each verifiable claim, signature and all.
The chain includes individual IDs for discovery & visibility, so not all data is distributed -- yet.
The goal is to eventually distribute the data on people's devices with their chosen network,
where anyone could host their own chain of provenance if they choose.
The formats follow standard schemas (eg. schema.org) to encourage interoperability.
We're currently at the beginning phase where we're trusting the server to keep IDs private.
It's all open-source, and we expect to have a professional audit someday.
</p>
<p>
A person's network of contacts is similar: the server currently knows some of the links between people
to allow discovery and visibility. However, even that will be manageable on personal devices someday.
</p>
<p>
There are no tokens to maintain the chain: the purpose is to create software that communities
and activists can easily join and use. We're betting that this is a case where network
participants have the motivation to run the software. The protocol is meant to be lightweight enough that
non-technical people can run it on inexpensive devices they already own. There may be cases for
MPC or ZKP in the future when they are more widespread and standard,
but our preference is to engineer as simply as possible with "white-magic" cryptography
over those "black-magic" functions.
</p>
<p>
Let's make real distributed computing and shared data happen, starting with our own small networks.
</p>
<p>
... and exemplify the fun along the way.
</p>
</div>
</li>
<li class="p-2">
<div @click="showGroup = !showGroup" class="text-blue-500">... I want to find a group I'll enjoy working with.</div>
<div v-if="showGroup">
<p>
This app encourages people to offer small bits of time to one another. It's a way to
run experiments with other people... tests of working together, which can start small
and easy but build into cooperation with people who are like-minded and who work well together.
</p>
<p>
Search the projects and place an offer on an interesting one
-- or create your own project and see who offers to help.
After your first experiment, you can give and get confirmation about the work, which you might choose
to show to future contacts.
</p>
</div>
</li>
<li class="p-2">
<div @click="showCommunity = !showCommunity" class="text-blue-500">... I want to participate in community projects.</div>
<div v-if="showCommunity">
<p>
These are mostly at the beginning stages, so any of them will appreciate your offers that show interest.
In fact, your offers can include your preferences, which give the project owners indications of how to proceed.
</p>
<p>
Search through the projects for issues of interest, locally as well as globally.
If you don't see any projects that interest you, create your own and see what kind of offers you get.
</p>
</div>
</li>
<li class="p-2">
<div @click="showVerifiable = !showVerifiable" class="text-blue-500">... I want to build with verifiable, private data.</div>
<div v-if="showVerifiable">
<p>
Make your claims and get others to confirm them. Then you can use the API to pull your copy of all that
data, both claims from you and claims from others about you. These are hard-and-fast credentials that can
be shown to others, along with their verifiable time and signature.
</p>
<p>
Furthermore, you can use your network to verify claims by other people, even if they haven't given you
visibility. First, on the claim screen you can see if the server detects anyone who is a direct link
between you, so you can reach out to those in-between people for more info. If there isn't anyone
who is directly in between then you can reach out with a message to your network.
</p>
<p>
This app generated an identifier, based on public & private keys located on your device.
That ID is only shared with our server and with people you explicitly allow.
The other information -- like gratitude and contributions and projects --
are published to a server that protects your ID. (Someday, your devices
will share directly P2P and not need a server... you can choose your levels
of discovery and privacy.) What this means is that you are in charge of your
network, and we provide tools and reporting to help you connect with your network for
references and reputation.
</p>
</div>
</li>
<li class="p-2">
<div @click="showGovernance = !showGovernance" class="text-blue-500">... I want to build governance organically.</div>
<div v-if="showGovernance">
<p>
This requires motivated, dedicated citizens. The good thing is that dedication the primary ingredient;
add coordination and we can find ways to replace monopolistic systems.
</p>
<p>
Add projects for your main areas of interest, and offer commitments to projects to kick-start some initiatives.
</p>
<p>
One other feature worth emphasizing: you build a history of credentials, ones that are verifiably
yours. But one other good thing is that you get support from those who confirm your activity.
You can share this support in a way that others can validate the data for themselves from people
in their own network. This kind of reputable project and history of performance is good evidence
for your ability to take responsibility for important initiatives.
</p>
</div>
</li>
<li class="p-2">
<div @click="showBasics = !showBasics" class="text-blue-500">... I want to supply life's basics freely.</div>
<div v-if="showBasics">
<p>
This platform is not optimal for balancing needs and resources at this point,
but we continuously seek out and list
those kinds of projects. Watch our blog, and watch the project list for words like
<router-link class="text-blue-500" to="/discover?searchText=sharing">"sharing"</router-link>
or
<router-link class="text-blue-500" to="/discover?searchText=basic">"basic"</router-link>
or
<router-link class="text-blue-500" to="/discover?searchText=free">"free"</router-link>.
</p>
</div>
</li>
</ul>
<h2 class="text-xl font-semibold">How do I get started?</h2>
<p>
You need someone to register you, like the person who told you
about this app, on the Contacts <fa icon="users" class="fa-fw" /> page.
Someone -- like the person who told you about this app -- needs to register you
on the Contacts <fa icon="users" class="fa-fw" /> page.
If you heard about this from our outreach, feel free to contact us (below) for a chat.
After someone registers you, you can
select any contact on the home page (or "anonymous") and record your
appreciation for... whatever. The main goal is to record what people
After someone registers you, you can register others.
</p>
<p>
Then you can record your appreciation for... whatever: select any contact on the home page
(or "Unnamed") and send it. The main goal is to record what people
have given you, to grow giving economies. You can also record your own
ideas for projects. Each claim is recorded on a
custom ledger. The day after being registered, you'll be able to able to
register others, too.
custom ledger.
</p>
<p>
The day after being registered, you'll be able to able to register others, too.
Note that there are limits to how many others you can register.
Take your time to bring people on... make it an opportunity to get to
know their projects, and to show your own.
know their projects, and to show off your own.
</p>
<h2 class="text-xl font-semibold">How do I add someone else?</h2>
@ -95,7 +226,7 @@
<h2 class="text-xl font-semibold">How do I backup all my data?</h2>
<p>
There are four sets of data to backup: the identifier secrets;
the private text data that isn't quite as secret such as settings and contacts;
the private text data that isn't as sensitive such as settings and contacts;
the private image for yourself; and the data that you have sent to the public.
</p>
@ -185,15 +316,14 @@
<h2 class="text-xl font-semibold">How do I create another identity?</h2>
<p>
Before doing this, note that it is an advanced feature that affects
functionality (eg. the words "Alt ID" next to results, backup features)
so beware. You can
Before doing this, beware that it is an advanced feature that affects
functionality (eg. the words "Alt ID" next to results, backup features). You can
<router-link to="start" class="text-blue-500">
create another identity here.
</router-link>
</p>
<h2 class="text-xl font-semibold">How do I erase my data?</h2>
<h2 class="text-xl font-semibold">How do I erase my data from my device?</h2>
<p>
Before doing this, you may want to back up your data with the instructions above.
</p>
@ -401,7 +531,7 @@
<p>{{ package.version }} ({{ commitHash }})</p>
<h2 class="text-xl font-semibold">
For any other questions, like getting a new account or removing all your data from the public ledger:
I have other questions, like getting a new account or removing all my data from the public ledger.
</h2>
<p>
Contact us at
@ -428,7 +558,13 @@ export default class Help extends Vue {
package = Package;
commitHash = import.meta.env.VITE_GIT_HASH;
showAlpha = false;
showBasics = false;
showCommunity = false;
showGovernance = false;
showGroup = false;
showDidCopy = false;
showVerifiable = false;
// call fn, copy text to the clipboard, then redo fn after 2 seconds
doCopyTwoSecRedo(text: string, fn: () => void) {

Loading…
Cancel
Save