yarn start
The goal of this project is to create a sharing and give-away app built on top of the NOSTR protocol.
Other services exist online for sharing goods between people:
- Olio
- Facebook Marketplace
- even Instagram is used for some sales and give-aways
there are sure to be more examples. What they all have in common is that they are so called "walled gardens". The data that they create within their application ecosystem is not accessible from the outside. It is only accessible through their application interface.
NOSTR protocol provides a means of creating interoperable applications. A sharing and give-away platform is best suited in an ecosystem which is interoperable and open the way NOSTR is. This means that while our project can start defining good standards of use, other projects can start their own applications for their tailored use cases but following the same standards. This means that we can achieve true network effects while working on disparate applications, because we adhere to the same protocol and have access to the same data through relays.
This application will make use of the NOSTR protocol.
- For an overview of the NOSTR protocol: https://github.com/nostr-protocol/nostr
- For an overview of the NOSTR NIPS: https://github.com/nostr-protocol/nips
- For a NOSTR Development Kit, NDK: https://github.com/nostr-dev-kit/ndk
- For a React NDK: https://github.com/nostr-dev-kit/ndk-react
This project is a fork of the React Native Boilerplate repository, https://thecodingmachine.github.io/react-native-boilerplate/, for the file structure.
This project uses gluestack-ui component library, https://gluestack.io/, for basic, useful and pretty components.
Each object created by a user will use a standardized formatting. For example, we could already use a formatting which has been proposed for what they call "classified listings" from NOSTR NIP 99.
One screen in the app should show users the objects that they have created which we call the "inventory". They should be able to modify the details of their objects if needed. I imagine this as a scroll view, or gallery view screen.
Users should be able to discover the items of other nearby users. This will be done by referring to local relays for event subscriptions. The main screen where users can discover the items of nearby users will be a swiping screen so that users can swipe through objects. There should also be a search screen with a gallery view.
Discovering objects can be done by searching through tags and key words in the object symmary and title. Another way that objects can be filtered is through user social graphs. A user's social graph is defined by the npubs that the user follows. Objects can be displayed for a given depth which specified the depth of the social graph generated by looking at increasingly more followers of followers.