<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ryan</title>
    <description>The latest articles on DEV Community by Ryan (@ryan_agora).</description>
    <link>https://dev.to/ryan_agora</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887318%2F9fe968a8-cd31-4bff-9967-76b738df79da.png</url>
      <title>DEV Community: Ryan</title>
      <link>https://dev.to/ryan_agora</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ryan_agora"/>
    <language>en</language>
    <item>
      <title>I'm building a censorship-resistant social network in Rust — and I need your help</title>
      <dc:creator>Ryan</dc:creator>
      <pubDate>Sun, 19 Apr 2026 14:16:52 +0000</pubDate>
      <link>https://dev.to/ryan_agora/im-building-a-censorship-resistant-social-network-in-rust-and-i-need-your-help-41j4</link>
      <guid>https://dev.to/ryan_agora/im-building-a-censorship-resistant-social-network-in-rust-and-i-need-your-help-41j4</guid>
      <description>&lt;p&gt;Most social platforms have a kill switch. Someone, somewhere, can throttle your reach, suspend your account, or just turn the whole thing off. I wanted to build something where that's architecturally impossible — not just policy-promised, but structurally removed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1lic83x7za14izpwckpm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1lic83x7za14izpwckpm.png" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's &lt;strong&gt;Agora&lt;/strong&gt;: an open-source, distributed social network with no central servers, no moderators, and no corporate gatekeepers. Identities are cryptographic keypairs. Posts travel over a DHT-based overlay network. Every participant runs the full stack themselves.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Repo: &lt;a href="https://github.com/agoratalk/agora" rel="noopener noreferrer"&gt;https://github.com/agoratalk/agora&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The stack has three main pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;daemon/&lt;/code&gt; written in Rust — handles identity, the DHT, peer discovery, messaging, and posts.&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;electron/&lt;/code&gt; desktop client that talks to a local daemon.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;web/&lt;/code&gt; UI server for browser-based access to your local daemon.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your identity is a keypair generated on first run. Your handle is derived from your public key. No registration, no email, no server to phone home to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it in two commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/agoratalk/agora.git agora
&lt;span class="nb"&gt;cd &lt;/span&gt;agora &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker compose &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.single.yml up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The web UI comes up at &lt;code&gt;localhost:8080&lt;/code&gt;. There's also a ten-peer local simulation mode for development.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's working, what isn't
&lt;/h2&gt;

&lt;p&gt;This is an alpha. Here's an honest picture:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Working&lt;/th&gt;
&lt;th&gt;In progress / rough&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Following, blocking, shareable lists&lt;/td&gt;
&lt;td&gt;IP hiding via Tor/I2P/WireGuard — implemented but not hardened&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Topic channels, group chats&lt;/td&gt;
&lt;td&gt;Proof-of-work spam resistance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Encrypted DMs with forward secrecy&lt;/td&gt;
&lt;td&gt;Mnemonic identity backup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local feed algorithm (on-device, no black box)&lt;/td&gt;
&lt;td&gt;Embedded content previews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multilanguage UI&lt;/td&gt;
&lt;td&gt;A lot of bugs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The IP-hiding layer is the biggest caveat. Tor mode works via an embedded &lt;code&gt;arti&lt;/code&gt; client, but there are edge cases in the DHT gossip layer where your real IP can leak — particularly around bootstrap connections. &lt;strong&gt;Don't rely on it for strong anonymity yet.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I most need help
&lt;/h2&gt;

&lt;p&gt;Privacy and networking work is the highest priority. If you have experience with any of the following, I'd love a PR or even just a conversation in the issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tor, I2P, or mixnet internals&lt;/li&gt;
&lt;li&gt;NAT traversal and peer discovery at scale&lt;/li&gt;
&lt;li&gt;DHT design and gossip protocols&lt;/li&gt;
&lt;li&gt;Rust async networking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But honestly, every area needs work: the Electron/web frontends, spam resistance, packaging, translations, and adversarial testing. If something catches your eye, that's probably a good place to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on pace
&lt;/h2&gt;

&lt;p&gt;This is a side project. Progress is slow and bursty. That's exactly why outside contributions matter — every patch moves things forward faster than I can alone.&lt;/p&gt;

&lt;p&gt;If this sounds interesting, take a look at &lt;a href="https://github.com/agoratalk/agora" rel="noopener noreferrer"&gt;the repo&lt;/a&gt;, file an issue, or send a PR. The license is WTFPL — do whatever you want with it.&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>opensource</category>
      <category>rust</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
