<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Soapbox Blog</title>
        <link>https://soapbox.pub</link>
        <description>Soapbox is customizable open-source software that puts the power of social media in the hands of the people.</description>
        <lastBuildDate>Thu, 08 May 2025 15:29:42 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Soapbox Blog</title>
            <url>https://soapbox.pub/assets/logo.svg</url>
            <link>https://soapbox.pub</link>
        </image>
        <copyright>♡2025. Copying is an act of love. Please copy and share.</copyright>
        <item>
            <title><![CDATA[Announcing Nostrify]]></title>
            <link>https://soapbox.pub/blog/sample-blog-title</link>
            <guid>https://soapbox.pub/blog/sample-blog-title</guid>
            <pubDate>Wed, 17 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Nostrify is a flexible library for building Nostr apps in TypeScript. It provides Relays, Signers, Storages, and more to help you build your app.]]></description>
            <content:encoded><![CDATA[<p><strong>As I have been building <a href="https://soapbox.pub/ditto" target="_blank">Ditto</a>,</strong> it has become clear that there are foundational Nostr development tools missing from the ecosystem — tools Ditto needs to succeed.</p>
<p>I have <a href="https://github.com/nbd-wtf/nostr-tools/pulls?q=is%3Apr+author%3Aalexgleason" target="_blank">contributed heavily</a> to <strong>nostr-tools</strong> (as the second-highest contributor), and sent <a href="https://github.com/nostr-dev-kit/ndk/pulls?q=is%3Apr+author%3Aalexgleason" target="_blank">a few patches</a> to <strong>NDK</strong>. But I found difficulties with both that are not easy to solve.</p>
<p>I wanted a modular library built around thoughtful interfaces, using modern web APIs like <a href="https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal" target="_blank">AbortSignal</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator" target="_blank">AsyncGenerator</a>. I wanted components that could be easily swapped in and out, instead of a monolithic framework.</p>
<p>Additionally, the problems I was facing on Ditto were also problems with the <a href="https://mostr.pub/" target="_blank">Mostr Bridge</a>. And I know I&#x27;m not the only one! So instead of just baking these solutions into Ditto, I decided to create a new Nostr library where we could all share code together.</p>
<p>Thus, <a href="https://nostrify.dev/" target="_blank">Nostrify</a> was born!</p>
<h2>What is Nostrify?</h2>
<p><strong>Nostrify</strong> is a flexible library for building Nostr apps in TypeScript. It provides Relays, Signers, Storages, and more to help you build your app.</p>
<p>It is centered around interfaces such as <a href="https://jsr.io/@nostrify/nostrify/doc/~/NStore" target="_blank"><code>NStore</code></a>, <a href="https://jsr.io/@nostrify/nostrify/doc/~/NRelay" target="_blank"><code>NRelay</code></a>, and <a href="https://jsr.io/@nostrify/nostrify/doc/~/NostrSigner" target="_blank"><code>NostrSigner</code></a>. So even if you don&#x27;t like the built-in components, you can easily swap them out for your own!</p>
<p>Nostrify uses nostr-tools under the hood for low-level operations, but it implements a brand-new <a href="https://nostrify.dev/relay/single" target="_blank">Relay</a> and <a href="https://nostrify.dev/relay/pool" target="_blank">Pool</a> from scratch. If you want, we even offer a <a href="https://nostrify.dev/integrations/ndk" target="_blank">wrapper around NDK</a> so you can use it as a relay backend!</p>
<h2>Building Together</h2>
<p>A core tenet of Nostrify is &quot;interfaces over implementations&quot;. You can think of Nostrify as a <strong>protocol</strong> for building on Nostr with TypeScript... kind of like Nostr itself!</p>
<p>We want you to <strong>build your own components</strong> and share them with the community. To get started, see:</p>
<ul>
<li><a href="https://nostrify.dev/relay/#custom-relays" target="_blank">Custom Relays</a></li>
<li><a href="https://nostrify.dev/store/#custom-storages" target="_blank">Custom Storages</a></li>
<li><a href="https://nostrify.dev/sign/#custom-signers" target="_blank">Custom Signers</a></li>
</ul>
<h2>Ditto: Soon</h2>
<p><a href="https://soapbox.pub/ditto" target="_blank">Ditto</a> is a decentralized, self-hosted social media server that emphasizes user control and community building across platforms. Key features include a built-in Nostr relay, compatibility with any Mastodon app, and full customizability. Always open-source, no ads, no tracking, and no censorship.</p>
<p>Please stay tuned. Ditto is almost ready!</p>
<h2>Bring your projects to life on Nostr 🌱</h2>
]]></content:encoded>
        </item>
    </channel>
</rss>