A comprehensive guide to all things Nostr. Including step-by-step setup guides and details on clients, relays, and NIPs.
Nostr.how is built with Svelte, a lightweight javascript framework.
npm install
npm run dev
If you were a previous contributor to Nostr.how I have rewritten the site from Next.js to Svelte (change effective Apr 13 2023). Please double check that your local copy is up to date and accurate.
We're always looking for writers, coders, and translators to help us make Nostr.how more useful. A few more details below on how you can contribute. If you have an idea on how to make the site better in any way, please let me know.
If you recently learned something new about Nostr it's likely that other people don't know it yet! Writing new content for Nostr.how is easy. Feel free to write in whatever format you'd like and then reach out to me on Nostr and I'll get the page into the codebase (or, if you're technical, feel free to create a PR directly).
If you're less of a writer but have a sharp eye for typos and grammar, feel free to create issues here in Github for things you find that could be improved.
Translations in Nostr.how are done in two parts. For UI elements and navigation items we use in i18n library and simple JSON files to store the translated strings. The main content of each page is written in Markdown and each page must be translated separately and put into the correct directory in the codebase.
The best workflow for working on a translation is to first fork this repository and create a branch on your own forked copy. This makes it easy to open a PR for feedback while you continue working on translating all the pages. Let's see how it's done:
$
at the beginning of the command)$ git clone https://github.com/<YOUR_GITHUB_USERNAME>/nostr-how.git
Congrats π you now have a local copy of the repository set up and ready to use. Let's get a new branch set up for your translation.
$ git checkout -b <LANGUAGE>_translation
, if you have trouble running this command you might not have git
installed.git commit -am 'A short commit message about what you've changed'
βΒ you should replace the message part with a short note about what you've changed.git push -u origin <BRANCH_NAME>
(remember to change that to the real name of your branch).These files are found in the /src/lib/locales/
directory here. Each new language needs to have it's own file named with the ISO 3166 Alpha-2 code. E.g. en.json
for English and it.json
for Italian.
Currently we're not creating sub-localizations for regions, e.g. en-gb.json
for the UK as distinct from the United States.
To translate these files, copy the en.json
file and change only the values, not the keys, of each item.
Each of the individual pages of content are in the /src/routes/pages
directory here. The pages for each language are in a folder with the corresponding Alpha-2 two letter code for that language.
Here's how to create files for a new language:
/src/routes/pages/es/
for Spanish./src/routes/pages/en/
(english) directory. It's important that the names are exactly the same so that they can be dynamically loaded.---
) is called Frontmatter and it's really important that the formatting stays the same. Please don't change the title
or description
keys, but definitely translate the text after./en/get-started
should change to /fr/get-started
if you're translating to French.## [Β§](#understanding-keys)
should chance to something like ## [Β§](#compendere-chiavi)
if you're translating to Italian.The Nostr How project is open source software under the MIT License.