# nostr web client this is a web interface to [nostr](https://github.com/nostr-protocol/nostr#readme). a live instance is hosted at https://nostr.ch/ some useful resources: * JS library used in this project: https://github.com/fiatjaf/nostr-tools * NIPs: https://github.com/nostr-protocol/nips * relays registry: https://nostr-registry.netlify.app/ * event inspector: https://nostr.com/ * a working web interface in vue.js: https://astral.ninja/ * https://github.com/aljazceru/awesome-nostr ## dev nodejs v18.x and npm v8.x are recommended. after `npm install`, start by running a dev server with: npm run serve and point a browser to http://127.0.0.1:8001/ the `serve` command injects a live reload snippet. to build a "production" copy, execute npm run build the build is done using [esbuild](https://esbuild.github.io/), with a config in [esbuildconf.js](esbuildconf.js). the result is placed in `dist` directory. ## release 1. make sure `version` field in [package.json](package.json) as seen by remote git on **master** branch matches the tag created in the next step. 2. tag a commit on **master** branch with a `git tag v`. 3. push the tag to the remote: `git push --tags`. the CI then receives a git tag event, executes `npm run build`, creates a tar.gz with all the files found in `dist` directory and uploads it as a new release artifact. the release is named after the tag name. the idea is that nostr web instances are then notified about a new release, download the tar.gz archive and update their local copies. this is not yet implemented. at the moment, the CI symply rsync's dist/ with a remote on https://nostr.ch.