A React-based community request management system that uses OpenBunker for Nostr authentication and solely uses NOSTR as a backend.
- Node.js 18+
- pnpm (recommended) or npm
-
Clone the repository
-
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Open http://localhost:5173 in your browser
See docs for more details
The request form can be embedded in other websites:
<iframe
src="http://localhost:5173/embed"
width="100%"
height="600px"
frameborder="0"
>
</iframe>Need to set up the environment. Copy the .env.template file to .env (for example cp .env.template .env) and fill in the required values before running:
# The url that will be opened when trying to authenticate with openbunker
VITE_OPENBUNKER_POPUP_URL=https://openbunker.opencollective.xyz/openbunker-login-popup?scope=community-requests
# The url that will be opened when trying to authenticate with openbunker (via e-mail confirmation)
VITE_OPENBUNKER_API_URL=https://openbunker.opencollective.xyz
# Scope used in OpenBunker (identities are scoped, allowing people to have one identity per scope and
# separating their identity across NOSTR apps)
VITE_OPENBUNKER_SCOPE=test-community-requests
# Comma separated list of featured community a tags (format 34550:<community_id>:<identifier>)
VITE_NOSTR_FEATURED_COMMUNITIES=34550:bc072411cb5a2c5651c8a5cfd92975cef68c165928c5e98b0705edff4301b6db:oc-test-group-mbt7yvyppnpm buildArtifacts in the dist/ folder can then be used to serve the application.
The main user page is User dashboard to manage requests and profile.
Authentication is needed to perform certain functions, including posting a request or a comment.
The app supports OpenBunker authentication. The application sends an API request to the VITE_OPENBUNKER_API_URL endpoint, and the user will subsequently have to confirm their login by using a one-time authentication code.
The NOSTR protocol side of this is implemented using nostr-tools and doesn't require any specific adjustments to the NIP-46 protocol.
A user submits request to the request form :

The request form can be embedded in other websites via iframe
Requests can then be managed via the request detail page.
All requests are stored and managed through Nostr relays.
The full list of NIPS used including new ones is outlined in docs/NIP.md.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details
For issues and questions:
- Open an issue on GitHub
- Check the Nostr documentation
- Review OpenBunker documentation on the Openbunker Github



