Coder Social home page Coder Social logo

wds4 / pretty-good Goto Github PK

View Code? Open in Web Editor NEW
22.0 2.0 2.0 20.16 MB

a nostr desktop client for mac, windows and linux, motivated by the desire to build a decentralized web of trust

License: GNU Affero General Public License v3.0

TypeScript 64.87% JavaScript 33.31% Shell 0.01% CSS 1.79% EJS 0.02%
nostr reputation reputation-system web-of-trust dcosl

pretty-good's Introduction

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 curated by your web of trust 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 in theory, and for the Channels app to demonstrate utility.

overviews of specific apps

Standard nostr client. Functional, but somewhat buugy with poor UI.

Proof of concept that DCoSL works in theory. Functional, but buggy with poor UI.

An attempt to demonstrate the utility of DCoSL by using it to crowdsource content curation. Not yet complete.

NIPS implemented

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

pretty-good's People

Contributors

wds4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

22388o immasmiley

pretty-good's Issues

AppImage?

Hello,

it says:

Linux
Download and open PrettyGood-0.1.2-alpha.AppImage.

But from where should I download it??? No link for download ....

Add nostr as a topic to this repository

Hello,

This repository is listed on the Awesome Nostr list, which is a collection of useful Nostr projects. However, it seems that the 'nostr' topic is missing from this repository's topics.

Adding the 'nostr' topic will help users discover your project more easily and recognize its relevance to the Nostr ecosystem. To add the topic, please follow these steps:

  1. Navigate to the main page of the repository.
  2. Click on the gear icon next to "About" on the right side of the page.
  3. In the "Topics" section, type 'nostr' and press Enter.
  4. Click "Save changes."

Thank you for your attention and for contributing to the Nostr community!

Loss of followers and relays lists

Prerequisites

Expected Behavior

For any profile being managed in this app and simultaneously in one or more external apps, all profile details including relays and following lists should be synced at all times. That means that you can update your profile details, including relays list and following list, in the PGA app or externally, and your profile should sync immediately, everywhere it is located.

Current Behavior

Under certain situations you can inadvertently trigger loss of your following list and relays list.

Currently, syncing does not happen unless you activate a toggle button, which by default is turned off and which may currently be too well hidden, at least for new users.

Steps to reproduce

Enter privkey from external app, do NOT activate the option to sync your profile, and then follow someone. This will broadcast a kind: 3 event with a following list that is now empty (except for the profile you just followed). Updating your relays list using an unsynced profile will likely also trigger this same problem.

Potential Solutions

All of the following under consideration:

  • Set the sync option to "on" by default
  • Always sync by default. Get rid of the option not to sync a profile.
  • For any profile not created locally, disallow changing any profile details unless syncing is already turned on and has completed successfully at least once
  • Perhaps simply deactivate the ability to enter externally provided profiles. Or at least, display big flashy warnings of the danger.
  • Create the option to create a local profile and link it to your external profile in some manner. This may obviate the need to enter your externally derived profile in the first place.

My apologies to anyone who has encountered this error -- please let me know if this has happened to you and I will try to help you recover your lists!

Set the fonts

Some buttons have fonts which are very small on my computer (despite the buttons being quite big: see picture below).
Would it be possible to set the fonts used please?

image

How to add relay?

Nostr is based on Relays FWIU... But where do I add one (for example wss://purplepag.es)?
Is it different from "NIP-51 list" which is on the side window?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.