Git Product home page Git Product logo

nostr-how's Introduction

💜 Nostr.how

A comprehensive guide to all things Nostr. Including step-by-step setup guides and details on clients, relays, and NIPs.

Table of contents

🐣 Getting started with the codebase

Nostr.how is built with Svelte, a lightweight javascript framework.

  1. Clone this repo.
  2. Install the dependencies npm install
  3. Run the development server with npm run dev
  4. Access the site in development at http://localhost:5173

🚨 IMPORTANT

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.

🫂 Contributing

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.

Create or Edit content

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

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.

Getting started

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:

CLONING THE REPO
  1. First, you'll need to have a github account, so set that up first.
  2. Then, on the Nostr.how repo page, you want to click the "Fork" button at the top of the page. fork-me
  3. This will create a new copy of the repo under your account on Github.
  4. Next you'll want to clone that new forked copy to your local computer. On the terminal, run the following command. (don't copy the $ at the beginning of the command)
$ git clone https://github.com/<YOUR_GITHUB_USERNAME>/nostr-how.git
CREATE A NEW BRANCH

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.

  1. On the terminal again, run $ git checkout -b <LANGUAGE>_translation, if you have trouble running this command you might not have git installed.
  2. Creating a new branch to work from means that you keep all your work separate and organized.
  3. Now, go ahead and open up a text editor and start hacking you code cowboy!
CREATING A PULL REQUEST (PR)
  1. Once you've made a few changes you can commit those changes by running 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.
  2. Each commit that you make is like saving your game. You can always easily restore the state of your code to those commit points whenever you'd like.
  3. After you've made a few commits, you can push your changes to github with git push -u origin <BRANCH_NAME> (remember to change that to the real name of your branch).
  4. Once you've done this you can navigate to the "Pull requests" tab at the top of your repo in Github.
  5. Press the big green "New Pull Request" button at the top right of the page and then double check that you have the right branches selected. Below is an example of how it should look if want to create a pull request for the branch on my fork of a repo back to the main branch of the source repo. compare
  6. That's it. Once you've created a pull request you can continue working and pushing changes to your own branch and your pull request will continue to update with each new commit.
  7. Once the PR is completely ready, I'll merge it and we'll celebrate! 🎉

i18n JSON files

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.

JSON file

Markdown pages

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:

  1. Create a new folder with the 2 letter country code as the name. E.g. /src/routes/pages/es/ for Spanish.
  2. Create blank files with the same names as the files in the /src/routes/pages/en/ (english) directory. It's important that the names are exactly the same so that they can be dynamically loaded.
  3. Translate each page.
    1. The section at the top (between the ---) 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.
    2. The full page should be translated to your target language.
    3. For URLs to other pages, please change the two letter country code to your target language. e.g. /en/get-started should change to /fr/get-started if you're translating to French.
    4. It's ok to change the anchor links for each header to the target language. These make it easy for people to link to specific parts of the page. e.g. ## [§](#understanding-keys) should chance to something like ## [§](#compendere-chiavi) if you're translating to Italian.
    5. That's it.
  4. If you'd like to add any images or create new images specific for a given language please get in touch. I'll be happy to help you add them to the right places.

📜 License

The Nostr How project is open source software under the MIT License.

nostr-how's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

nostr-how's Issues

[copyedit] /nostr-projects

Part of #121

https://nostr.how/en/nostr-projects

Original: Nostr.wine’s filter relay is an interesting project that aggregates reading and writing from and to serveral other major relays. Its goal is to help bridget the gap between public and private relays.

Update: "its goal" (not "it's goal") and "bridge" the gap, not "bridget".

Resources section | Spanish Translation

As a user of the website and spanish speaker, I'd like to have the resources contents in this language to expand the education about Nostr to other non-english speakers of Latin-America or Spain.

Relays pages

  • Add a page talking about what Relays are and how they work
  • Add page with a list of different relays we know about (organized by language they're written in)

Improve nip 07 guide

nostr:nevent1qqsfv3dmvpx27q2t7v2tzfep5c2judmg4cxe88tfqg9jf03f6h5njhsppemhxue69uhkummn9ekx7mp0qgs8d3c64cayj8canmky0jap0c3fekjpzwsthdhx4cthd4my8c5u47srqsqqqqqpn97k59

Screenshot_20230918-223511

Think about how to help with issues Karnage uncovered

@Karnage recently ran some informal research on newbie experiences on Nostr.

  1. It would be great to use this list to spawn other issues where we think that nostr.how can help.
  2. In general, this is a great read to get your head in the right place for nostr how content. 😄

Below is his summary:

Having collected some feedback, combined with some personal ideas, here are what seem to be the areas for most improvement in Nostr / clients:

Discovery is an issue, people don’t know who to follow. Since the are not that many diverse profiles that are easy to discover, it might be easier to recommend topics (hashtags).

We could also add profile descriptions on other clients (I think Damus already has this).

Spammy global is a turn off.
Could be solved by recommending Hash tags to follow. What if we create a list of common hash tags (kind of like subreddits) and show those to people? To help populate them, we could (if technically possible) create a client-side list that can be autosuggested as you type in a hashtag. For example, if I typed #p - it could suggest Photography, Plants, Parenting, Philosophy, Programming, etc… This way people who are using hashtags to tag would have an easier time picking something that already exists instead of making totally random ones that nobody is going to discover unless they see it in a note.

Grownostr (IMO) is not a useful hashtag as it is too generic and mixes too many subjects into one. If it were up to me, I’d ditch this one and use auto-recommended ones if/when implemente.d

Crypto talk is a turn off. Can’t stop people from talking about what they are passionate about, so I think the best strategy is to find topics to follow.

Global could become a list of topics you follow instead of actual global notes. Once you follow a few topics, it would become much more useful.

Some (nobody?) understands NIP5 without reading into it. Personally I think this is a terrible name to begin with. Either rename it, or get rid of verification entirely. Since impersonation is likely to affect a smaller number of accounts, we could add paid verification for people who only exceed a certain number of followers. Not sure how you’d enforce this across clients though.. ideas welcome.

People are very confused about keys. nsec, npub, what to enter into a website, what not to… totally understandable. I propose we add small explainers and use old terminology within labels to help people understand these concepts. For example, an input field could be Username (npub) Password (nsec). Of course, I can already hear people shouting at me “But this is not what they are!” Rightfully so. Perhaps, then have tiny explainers, visual, video or just text to plainly explain the concepts right within signup.

Relays - hard to understand. No onboarding process talks about relays now. Idea I have here is to automatically connect people to top X relays while showing this screen in onboarding AND giving a quick explanation of what’s a really. Use fun, engaging copywriting combined with an image or a video to increase the odds of people reading / watching it.

People have a very hard time in profile setup. I think Damus is leading the way on this. Personally, I would stop immediately all development of other features and focus 100% on profile UX. This is a critical step IMO and needs to be absolutely nailed. We can’t expect people to use 3rd party image services to add a profile picture. It needs to be as easy as every other social platform.

People don’t know what zaps are, or how to find a wallet. Steep learning curve. Ideas here: Add old school terminology along side in labels. For example: Zaps (payments). 

For wallets, create a section within the client that explains wallets and recommends a few options (are there a few options, perhaps WoW, Alby).

Overall people are not familiar with many of the concepts of Nostr. Solution here would be to create an educational area in a client that covers terminology / concepts and has fun ways to explain what things are. Perhaps even a game or an interactive quiz. I know… a lot of work! 

One idea floated was having no signup process at all and generating a key on Post. I am not sure if this would be a good UX given people might get confused why there’s no way to signup or may not take their key seriously and misplace / ignore it. But, it would be cool to test this idea with some client.

Damus guide

Write damus guide with screenshots
(blocked while damus is in testflight)

small typo spotted

Found nostr.how while looking for some resources for nostr clients to direct my wife to, noticed the smallest typo on the page:

image

"find a client" under "What is Nostr?"

"Andriod" instead of "Android". Thought I'd throw you a heads-up, love the site and the great resources to help folks learn further about nostr.

Guides section | Spanish Translation

As a user of the website and spanish speaker, I'd like to have the Guide contents in this language to expand the education about Nostr to other non-english speakers of Latin-America or Spain.

Dutch translation

After reaching out to @erskingardner I've started with a Dutch translation for nostr.how.

Work in progress in this draft pull request: #167

If you would like to help, please reach out to me via Nostr
npub1qe3e5wrvnsgpggtkytxteaqfprz0rgxr8c3l34kk3a9t7e2l3acslezefe / [email protected]

Copyedits and review

Here are a handful of edits/additions that came to mind when reviewing the Guides sections of Nostr.how. Say the word if this feedback format is accessible.

https://nostr.how/en/get-started
Note: the end of this page reads, "Great, now you’re set up with a lightning wallet..." but the get-started page does not instruct how to set that up. Do you want it to link to a section on https://nostr.how/en/zaps ? Or input a section on the get-started page, with instructions on setting up a wallet and connecting it to a client?

Related, on the specific client setup pages like https://nostr.how/en/guides/damus, do you want to include instructions on how to connect the LN wallet?

https://nostr.how/en/get-started
Original: "Nostr itself is just a protocol; an agreed upon procedure for passing messages around on the internet."
Update: Hyphenate "agreed-upon"

Original: Verify your identity - I would update the hyperlinked text to "Verify your identity or pseudonym"

Next steps section: What about the addition of a link to a (not-yet-written) page titled "Start Posting Notes". This page could include information on tagging users and utilizing hashtags to find new accounts to connect with.

https://nostr.how/en/nostr-projects
Original: Nostr.wine’s filter relay is an interesting project that aggregates reading and writing from and to serveral other major relays. It’s goal is to help bridget the gap between public and private relays.
Update: "its goal" (not "it's goal") and "bridge" the gap, not "bridget".

https://nostr.how/en/guides/iris
Original: "Once you have the extension installed create a new account"
Update: add a comma - "Once you have the extension installed, create a new account"

https://nostr.how/en/guides/damus
Step 2 > Part 8: "Copy both of these values and store them somewhere VERY safe. 1Password or another password manager is a good option."
Update: add (to Damus page as well as other client tutorials), "It would also be wise to record your key pair on paper, and put that somewhere safe and secure."

Zaps page

  • what's a zap
  • what wallets work
  • what clients work

[idea] Add a FAQ page

What about a FAQ page with several questions and answers?

Some example questions which come in my mind:

  • How do I delete something on Nostr?
  • How do I deleted my profile?
  • I've lost access to my account, what can I do?
  • Why do I need to login with a extension?
  • My client is slow, how come?
  • My DMs don't show up, is this normal?
  • My feed is empty, how do I fix this?
  • My relay list is empty, how do I fix this?
  • Why are the following and followers counts different on each client?
  • How do I search on Nostr?
  • How can I link to my Nostr profile? See #127
  • How can I invite my friends to use Nostr?

es.json for sidebar menu

As a Spanish speaker-user of the portal, I'd like to have the contents of the sidebar menu in Spanish. This going to help the Nostr education to more people inside the community.

Note: This is the 1st archive of all the Spanish Translation for the site, if you're spanish speaker and wanna contribute with this part too reach me out, I'm happy to know!

git repo is 300MB

Just complaining that it is taking a long time to download it from here. Maybe there are some dependencies or bundled assets committed to the git history that shouldn't be there. Would be good if we could prune them and rewrite the history.

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.