Why Nostr? What is Njump?
2023-07-13 12:04:51

Hello, Redditor!

Hello, Redditor, and welcome to Nostr!

If you are reading this, you've likely recognized the inherent risks centralized platforms pose to the growth and development of communities. At any given moment, the rulers of these platforms can decide to prioritize profit over user experience, or suppress freedom of speech. Such actions tend to occur when these platforms feel invincible, believing that their users have no alternatives and will comply to maintain what they've been building for years. The annals of modern history are replete with instances where applications had to sacrifice functionality to avoid expulsion from Apple's App Store, or when apps dependent on Twitter's API were forced to abandon their work due to prohibitive cost increases. Now, this issue has infiltrated Reddit. Rest assured, this is just the tip of the iceberg: as Apollo's existence atop Reddit is threatened, it strengthens Reddit's grip, empowering them to implement policies that further assert their dominance over end users. It's only a matter of time. Thus, while Reddit's recent actions may seem detrimental to the community, they may be a blessing in disguise. This provides the opportunity to recognize the problem, explore alternatives, and choose a platform that not only pledges to refrain from imposing draconian measures, but is inherently incapable of doing so.

Exploring Alternatives

Recent research into the so-called "Twitter exodus" indicates that Mastodon is the preferred alternative for users dissatisfied with the escalating censorship on mainstream social media platforms.

While Mastodon offers a promising alternative, it primarily serves as a platform for short-form posts and carries its own set of challenges, as outlined by Nostr developer fiatjaf in his Nostr Manifesto. Key issues include:

  • User identities tied to domain names controlled by third parties;

  • Server owners maintaining the power to ban users, akin to Twitter, and block other servers;

  • Server migration is a secondary consideration, and can only be facilitated if servers willingly cooperate. This approach fails in adversarial settings where all followers are lost.

Some of these issues are being addressed by the ActivityPub protocol. This protocol has facilitated the development of a variety of applications for federated social networking. However, it too has limitations. For example, users have expressed the wish for others to read their messages but not reply to them, a feature that the structure of ActivityPub does not readily accommodate. Similarly, challenges have surfaced around managing messages with specific policies, such as "followers-only" posts and direct messages, as ActivityPub lacks a mechanism to express these nuances.

There are a multitude of other apps and protocols that could potentially serve as a refuge for redditors seeking freedom, but each comes with its own set of compromises. Some are proprietary, others lack functionality, and some are centralized, which inevitably means they could succumb to the same fate as Reddit over time. Ultimately, the choice rests with you to select one (or more) solutions that best meet your needs. As an advocate of the Nostr protocol, I aim to provide insight into the development of Reddit-like clients (apps) on Nostr and offer a comprehensive guide with step-by-step onboarding for newcomers.

Nostr

I'll refrain from delving deep into the workings of Nostr or its contrasts with other protocols, as there's a wealth of detailed material on this subject. A few notable resources include:

  • A FAQ-style resource by Pitiunited</a></span>)

  • A Documentation-style resource by JeffG</a></span>)

  • An aggregator by Bevo</a></span>), encompassing all things Nostr-related

Nevertheless, I'll touch upon several key features that set Nostr apart from other protocols and platforms:

  1. Nostr isn't a clone of Twitter or an alternative to Reddit. It's a decentralized communications protocol that ensures the broadest possible distribution of your notes (the information you transmit) to numerous mini servers known as "relays". This redundancy safeguards against censorship, permitting developers to create any application they desire that is interoperable with all other apps based on Nostr.

  2. While federated approach, implemented by Mastodon and the likes increases the level of decentralization - there is no single point of failure - its servers are not that lightweight and easy to spin up. It is still a compromise between centralized systems and full-on p2p protocols.

  3. Nostr achieves decentralization by minimizing the load on its servers (relays). Most of the computational work in Nostr is done by the applications (clients), making relays highly efficient, affordable, and easy to establish. Each client can connect to multiple relays, assuring redundancy of data transmission. Remember, once something is transmitted to a few relays, it cannot be undone - avoid posting while inebriated!

  4. At present, over 1500 Nostr relays are in operation, and the protocol has been in active development for less than a year. This number may seem small compared to the quantity of Mastodon servers, but remember that Mastodon, being almost seven years old, does not allow for simultaneous connection to multiple servers like Nostr does. For more on Nostr relays, see my guide here.

  1. The second significant component of Nostr is the clients (apps). There are already dozens of Nostr clients, and while a client's developer could choose to mute or ban your account from their app, they cannot erase your previous interactions since they are stored on multiple relays. This ensures that if you are banned within one app or are displeased with an update, you can simply log into another app and find all your previous interactions intact.

However, don't feel obliged to use Nostr solely as a Reddit alternative. You're encouraged to explore the multitude of Nostr apps available, ranging from Twitter-like apps to platforms for long-form posts, video and audio streaming. Moreover, there are several "utility" Nostr-based apps that expand the platform's functionality and enhance user experience. Notably, Nostr integrates unique features absent in other platforms, like the integration of the Lightning Network, a second-layer Bitcoin solution enabling censorship-resistant, instant peer-to-peer financial transactions. To kickstart your Nostr journey, check out my "Welcome to Nostr" guide. But now, let's shift focus back to Reddit alternatives, shall we?

Freedom to Redditors

As we've already noted, Nostr offers a promising protocol for Reddit users seeking a haven from the possibility of future heavy-handed measures. Yet, can it deliver the necessary functionality and familiarity to both users and moderators? It's on the right track. Just a month ago, curated communities were not feasible within Nostr, but this is swiftly changing. Nostr is an open protocol, so anyone can propose an enhancement or a new feature; if it proves robust and valuable, it will be implemented. Recently, <span itemprop="mentions" itemscope itemtype="https://schema.org/Person"><a itemprop="url" href="/npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1"><span>Vitor Pamplona</span> (<span class="italic">npub1gcx…nj5z</span>)</a></span> , the creator of the most popular Nostr-based Android app, introduced NIP-172 - a Nostr Implementation Proposal that facilitates the formation of curated communities. This proposal's integration led to the development of a dedicated Reddit-style Nostr client (app) known as Nostr.kiwi. What's more - and here lies the true beauty of Nostr - this proposal has also been adopted by the general-purpose Satellite app and the Reddit-like Nostr pioneer Zapddit. This means that from the onset of this new feature, there isn't a single point of failure. If the developer of Nostr Kiwi were to impose unreasonable rules on its users, they could instantly switch to Satellite.earth and continue their community interactions as if nothing had changed. As time goes by, we anticipate more Nostr apps supporting this feature to emerge. This will spark competition, encouraging the addition of new beneficial features and, consequently, enhancing the user experience.

Reddit on Nostr

Let's review existing Nostr applications that aim to offer a Reddit-like experience.

Nostr Kiwi

Nostr Kiwi, although a newcomer, is advancing at a brisk pace. It's a PWA, a Progressive Web App, offering numerous benefits to its users and guaranteeing resistance to censorship. You can learn more about PWAs in my previous post here. Recent scrutiny directed at another Nostr-based app, Damus, by Apple have underscored to developers the risks of dependence on tech giants when building apps. Given Apple's discretion over the functionality we're permitted to incorporate, it's prudent to avoid app stores moderated by such tech giants.

Installation

The process of installing a PWA differs slightly from regular App Store or Google Play installations, but it remains straightforward.

For mobile:

  1. Access the https://nostr.kiwi/ website in your native mobile browser: Safari for iOS and Chrome for Android.

  2. Tap the share button in your browser and select "Add to Home Screen" on iOS or "Install" on Android.

For desktop:

  1. Open Google Chrome or Brave browser, navigate to https://nostr.kiwi/.

  2. Click the download icon on the right side of your search bar.

  3. Click "Install".

Login

To get in on the Nostr action and use any Nostr-based app, you've got to generate a private key. This key is like your Nostr password, authenticating all your interactions with the protocol. Whether you're posting, liking, quoting, or zapping someone else's post, you're stamping your action with your private key. This allows your interaction to be broadcasted to other users.

I'd recommend taking a few moments to dig deeper into this concept here as I don't want this guide to get too technical. But it's crucial to understand that your private key is like the keys to your Nostr kingdom. If it falls into the wrong hands, the attacker can wreak havoc on your account, and there's not much you can do to stop them.

If you're looking for the best way to set up your Nostr "account" and start mingling with the community, the Alby browser extension is your ticket, especially for desktop users. Need a hand getting started? <span itemprop="mentions" itemscope itemtype="https://schema.org/Person"><a itemprop="url" href="/npub1cly0v30agkcfq40mdsndzjrn0tt76ykaan0q6ny80wy034qedpjsqwamhz" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1"><span>melissa</span> (<span class="italic">npub1cly…amhz</span>)</a></span> got your back with her guide on embarking on your Nostr journey with Alby right here.

But, mobile users, don't worry! While there are some platform specifics and complexities that prevent you from logging into a PWA using a browser extension, you're not completely out of options. If you're using the app via a mobile browser, you're in luck! You can use the Nostore mobile extension with Safari or the Alby extension with the Kiwi browser. My <span itemprop="mentions" itemscope itemtype="https://schema.org/Article"><a itemprop="url" href="/naddr1qqxnzd3cxyunswpkxgcrqdpjqyvhwumn8ghj7un9d3shjtnwdaehgunfvd5zumrpdejqzxthwden5te0wp6hyctkd9jxztnwdaehgu3wd3skueqpz4mhxue69uhkummnw3ezu6twdaehgcfwvd3sz9thwden5te0dehhxarj9ekkjmr0w5hxcmmvqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpzpmhxue69uhkummnw3ezuamfdejszenhwden5te0ve5kcar9wghxummnw3ezuamfdejj7mnsw43rzvrpwaaxkmn2vu6hydtvv94xuu34xv6rxwrwv33hj6ned3nhzumjdee8guf4vae8xdpex4mrgvn3vvmxzamndg6r27tnxulkyun0v9jxxctnws7hgun4v5q3vamnwvaz7tmzd96xxmmfdejhytnnda3kjctvqyd8wumn8ghj7un9d3shjtn0wfskuem9wp5kcmpwv3jhvqg6waehxw309aex2mrp0yhxummnw3e8qmr9vfejucm0d5q3camnwvaz7tm4de5hvetjwdjjumn0wd68y6trdqhxcctwvsq3camnwvaz7tmwdaehgu3wd46hg6tw09mkzmrvv46zucm0d5q32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqgs87hptfey2p607ef36g6cnekuzfz05qgpe34s2ypc2j6x24qvdwhgrqsqqqa28q0ux69" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1">naddr1qq…ux69</a></span> guide will come in handy here.

Once you've got Alby installed in your browser, logging in is a breeze with NIP-07 - that's just a fancy term for the browser extension login.

And for those of you using Nostr Kiwi or any other app as a PWA (meaning you've added it to your home screen and plan to use it as an app), you can still log in securely without giving away your private key.

<span itemprop="mentions" itemscope itemtype="https://schema.org/Article"><a itemprop="url" href="/note18lyq7asgqs0a639nj3vgpl90aujtlf5crxyf3c3egafc30446v3srpmk3v" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1">note18ly…mk3v</a></span>

Sure, it's a bit more complex, but when it comes to security, a little extra effort goes a long way, right?

<span itemprop="mentions" itemscope itemtype="https://schema.org/Article"><a itemprop="url" href="/note1d896vxmq34e0aule97aga3mdfdcxl2xmcr6v65pfeau9c89wz25qcljgf6" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1">note1d89…jgf6</a></span>

And here's where the nifty tool called nsecBunker, created by All-Star Nostr developer <span itemprop="mentions" itemscope itemtype="https://schema.org/Person"><a itemprop="url" href="/npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1"><span>PABLOF7z</span> (<span class="italic">npub1l2v…ajft</span>)</a></span>, comes into play. Now, I won't get all techie on you in this guide, but here's the gist: nsecBunker lets you lock your private key up safe and sound while generating handy 'target keys' and 'access tokens'. These allow you to securely log into Nostr apps without exposing your private key. For all the nuts and bolts on how it works and how to set up your very own Bunker, take a look at my dedicated nsecBunker guide right here. Once you've got that sorted, swing back to the Kiwi app (or any PWA supporting this function, also known as a NIP-46 login), click on "NIP-46 login" and paste your login token into the appropriate field. It's as easy as pie!

Browsing

Kiwi allows you to (1) view the general feed of topics or notes posted by the users you follow and (2) browse communities. You can also (3) choose the topics (#hashtags) of interest and (4) see your profile info. The 3 dots in the top right corner (5) signal that there are some options you can explore.

The "For You" tab allows you to switch between seeing notes by people you follow and scrolling through the Topics feed. Simply tap on the bar at the top to switch between these options.

Creating a community

Creating a community is a straightforward process. Go to the communities tab at the bottom and tap on the three dots symbol at the top right followed by the "Create new community" button.

Fill up the required fields and tap "Create community"

A few of the fields here do require an explanation:

  1. Name the community

  2. Provide a brief description

  3. In order to add a cover you must provide a link to the image. It's gotta be a link to a file using a .jpeg , .jpg or webp format. The best services to upload images and acquire links to them are nostr.build and nostrcheck.me. You can drag and drop an image to nostr.build and it will return you a corresponding link. Alternatively you can register with Nostrcheck and gain access to your personal gallery and other useful features.

  4. Specify the rules you find important for community members to follow

  5. You can also add moderators to help you curate the feed. For that simply insert their public key -- a string every Nostr user gets when creating an account (starts with npub, see image below).

You can copy a user's npub by visiting his profile on any general purpose Nostr client like Plebstr for mobile, Amethyst for Android, or snort.social for web.

When ready, tap "Create Community" and you're all set. Now you and the users you've assigned as moderators can post and approve notes, having the feed of your community curated and free of garbage and spam.

At the moment all the notes must be approved by one of the moderators in order to be displayed in the community feed.

To approve a note, you should open the community, tap on the three dots symbol followed by "Notes pending approval". This will lead you to the screen with all the notes awaiting your approval. Tap "Approve" next to the ones you find worthy.

At the moment only the original posts must be approved, while comments get displayed as soon as they are posted.

After a note is approved it can be commented on, liked and zapped. Zaps are a new way to interact with the community that is native to Nostr. They allow you to send any desired amount of bitcoin directly to the note's author. You can find out more about zaps here. Other important features like upvoting and downvoting are on the way.

Being a censorship-resistant protocol, Nostr introduces a peculiar feature to the communities: every user is free to browse the notes regardless of whether they were approved. All they've gotta do to see the moderated feed is flip the corresponding switch.

See unmoderated notes in your feed on Kiwi and Zapddit (more on this app below).

Because of the way Nostr is designed, all the notes posted in the community also get broadcasted across the network and can be seen by any user globally. This means that curation is exclusive to the communities and the apps that support them (currently Kiwi, Zapddit and Satellite).

This much info should be enough to get you started with Kiwi app and curated communities on Nostr. If you have any questions or suggestions, join our Redditors' Paradise community here and help shape this new open and permissionless initiative and turn it into a place you'll be proud to call home 💜.

Zapddit

Zapddit was the first Nostr app to focus on providing a Reddit-like experience. It is also important to note that it is open source. Even prior to the protocol's support for community creation, Zapddit enabled users to follow or mute hashtags, and upvote or downvote posts. Being a Progressive Web App, just like Nostr Kiwi, the installation process for Zapddit is identical.

If the idea of creating an account with Alby or nsecBunker doesn't appeal to you, Zapddit presents an alternative. Thanks to Vivek</a></span>), Zapddit offers a streamlined onboarding experience for new users. You also have the option to explore the app without committing to an account by selecting the "Try without an account" button.

The experience of creating and moderating a community closely mirrors that of Nostr Kiwi, making further explanation here redundant. In addition to communities, Zapddit offers a global feed that you can personalize by choosing the topics you are interested in. This setup can be done during the account creation process with Zapddit, or by clicking on the magic wand button in the top-right corner of the screen. You can also add hashtags to follow using the search field at the top of the page.

The option to mute topics (hashtags) is located in the settings menu. Muting topics makes all posts with the selected hashtags disappear from your global feed.

Another notable feature of Zapddit is the ability to "upzap" and "downzap" notes. Upzapping sends a predetermined amount of sats to the note's author. On the other hand, downzapping sends sats to a user of your choice, indicated in the "Zaps" tab of the Preferences panel. In my case, my downzaps go to the app's developer, Vivek.

There are a few more adjustments available in the options that are largely self-explanatory. The only exception is the "Relays" tab, which might be confusing for newcomers. It's recommended not to alter these settings unless you have a clear understanding of their impact. For a comprehensive guide and advice on the best relay configurations, you can refer to my guide here.

Satellite

Satellite stands as an open source, multi-functional Nostr web client (application). This all-encompassing app supports a variety of features such as standard posts, direct messages, and notably, communities. What Reddit users may find particularly appealing is Satellite's unique, seamless support for threads, a feature that distinguishes it from other Nostr clients.

Satellite is an excellent entry point for those new to Nostr, as it gives a comprehensive view of the ecosystem's offerings. For Reddit aficionados, the highlight of Satellite is likely to be its community features. The "Communities" tab opens up the Reddit-style aspects of the app, showcasing a range of communities and providing the tools to create and moderate your own.

Like many other apps, Satellite supports the NIP-07 login method, allowing you to log in with a browser extension. Given the extensive coverage of the general functionalities of various Nostr apps, I will focus on explaining the communities features. For everything else, feel free to explore the guides provided by other knowledgeable Nostr users i've shared in the very beginning of this post.

Communities

Click the "Communities" tab to view the list of existing curated communities.

Join a community that catches your interest, or create one of your own. To start a community, click on your avatar at the top-right corner of the page and select 'Communities' from the dropdown menu:

Click "+ New Community"

Choose a name, upload a banner image by providing a link to a media file, provide a description, and establish the rules. You can also invite moderators to assist you in overseeing the community.

Now you're ready to manage your new community. Any posts made via Satellite or any other community-supporting app will need your approval. If you've appointed moderators, they will also have the ability to approve notes. You can always add more moderators by revisiting the settings tab. To view notes pending your approval, navigate to the "Modqueue" tab and approve the ones you like.

Future Development

There's obviously so much to build ahead and developers are working hard on adding new features and introducing improvements. You wouldn't believe it, but this new Nostr functionality is not even one month old.

One of the unique aspects of Nostr is the open-source nature of most of its apps. This means that while developers might work on their individual projects, once a feature is rolled out, it can be readily adopted by other apps. This promotes faster and more efficient development. Additionally, developers are always on the lookout for ways to enhance their apps and are highly receptive to feedback and ideas from community members. So, don't hold back - reach out with your thoughts and suggestions. The best way to do so is by joining the Redditors' Paradise community and sharing what you have in mind.

Interoperability

One of the most remarkable features Nostr offers, applicable not only to the Reddit-like apps, is interoperability. Almost all of the features I've touched upon are accessible across the apps mentioned above. The decision to incorporate or omit certain features rests with the individual developer. Given that Nostr lacks a central authority, developers may have differing priorities for releases. Nonetheless, the most sought-after functions tend to find support across a majority of apps, as developers risk losing their audience otherwise. But what implications does this have for you?

Foremost, as pointed out earlier, should an app choose to ban or mute you, there's always an alternative app available. Secondly, the beauty of interoperability is that it allows you to draft a note using one app and approve it using another.

<span itemprop="mentions" itemscope itemtype="https://schema.org/Article"><a itemprop="url" href="/note1pxxgmk7nv4htavza7durte8v6f75flnr7tz9rhfju3wt6qcerc0sjwxtwj" class="bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1">note1pxx…xtwj</a></span>

You also have the flexibility to leverage unique features from certain apps while primarily using another app that you generally prefer.

You Are The Captain

With Nostr you are the captain. You get to decide which app to use and your content remains yours, no matter what.

Come and join this peaceful revolution in online communications. Do not ask anyone for permission, build your own community, join the ones you like. Be active, talk to other users and developers - we are always happy to receive feedback and work on improving things that are important for the users. Fellow Redditor, we're all ears for your opinions, so please, let them be heard!

Author Public Key
npub10awzknjg5r5lajnr53438ndcyjylgqsrnrtq5grs495v42qc6awsj45ys7