Awesome
Pretty Good Apps
This is a refactor of my older project, electron-nostr, and is based on electron-react-boilerplate.
Pretty Good Apps is a desktop client (linux, mac, windows), embedded currently with two apps:
- Curated Lists: an implementation of the DCoSL protocol (decentralized curation of simple lists). Currently functional although bugs exist and UX is poor.
- Pretty Good Nostr, a standard nostr client, currently with limited functionality
The fundamental purpose of Pretty Good Apps is to provide a proof of concept that genuinely decentralized, web of trust-based curation of knowledge is something that can be done, despite the fact that as of today, we still haven't truly done it. And once we do, it be incredibly useful! Of course, this hinges on the question: what do we mean by "genuine decentralization?" I hope this app will stimulate an examination of that question. See DCoSL for an introduction to this topic.
As of late June 2023, I am in the process of using the basic tools of Curated Lists and building a third app: Curated Nostr Channels. With the Channels app, the user can select a topic (a "channel") such as monetary policy, nostr development, entertainment, sports, etc, and see a nostr feed focused on that topic. Don't see a topic you like? Add it! The list of topics, their arrangement in a hierarchy (e.g. movies is a subcategory of entertainment), and pubkeys that associate with a given topic will all be <i>curated by your web of trust</i> following the principles and methods described in DCoSL. Among other things, this will be a great tool to discover new users to follow.
tl;dr: My goal is for Curated Lists to prove that genuinely decentralized curation of knowledge is possible <i>in theory</i>, and for the Channels app to demonstrate <i>utility</i>.
overviews of specific apps
Pretty Good Nostr
Standard nostr client. Functional, but somewhat buugy with poor UI.
Curated Lists: decentralized web of trust
Proof of concept that DCoSL works in theory. Functional, but buggy with poor UI.
Channels
An attempt to demonstrate the utility of DCoSL by using it to crowdsource content curation. Not yet complete.
NIPS implemented
- NIP-01: Basic protocol flow description<br>
- NIP-02: Contact List and Petnames<br>
- NIP-03: OpenTimestamps Attestations for Events<br>
- NIP-04: Encrypted Direct Message<br>
- NIP-05: Mapping Nostr keys to DNS-based internet identifiers<br>
- NIP-06: Basic key derivation from mnemonic seed phrase<br>
- NIP-08: Handling Mentions<br>
- NIP-10: Conventions for clients' use of
e
andp
tags in text events<br> - NIP-18: Reposts<br>
- NIP-19: bech32-encoded entities<br>
- NIP-21:
nostr:
URL scheme<br> - NIP-25: Reactions<br>
- NIP-32: Labeling<br>
- NIP-33: Parameterized Replaceable Events<br>
- NIP-51: Lists<br>
- NIP-57: Lightning Zaps<br>
Download and install Pretty Good
latest releases will be made available here.
development
If you're a developer and/or comfortable with the command line, first check to made sure you have node and node package manager installed on your machine. If you're not sure, use commands: node --version
and npm --version
to check, and install them if necessary.
Then clone this repo and install dependencies:
git clone --depth 1 --branch main https://github.com/wds4/pretty-good.git pretty-good
cd pretty-good
npm install
Start the app in the dev
environment:
npm start
Packaging for Production
To package apps for the local platform:
npm run package
The packaged app can now be found in release/app/build.
For more packaging options, including packaging for other platforms and debugging production build with devtools, see erb packaging options.
License
GNU Affero General Public License v3.0 © Pretty Good