<?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: GHOSTWIREKENYA</title>
    <description>The latest articles on DEV Community by GHOSTWIREKENYA (ghostwire_ke).</description>
    <link>https://dev.to/ghostwire_ke</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.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13943%2F28e66cc2-5caa-4388-8b8d-7e9337063c11.png</url>
      <title>DEV Community: GHOSTWIREKENYA</title>
      <link>https://dev.to/ghostwire_ke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ghostwire_ke"/>
    <language>en</language>
    <item>
      <title>Why We Built GhostWire: Infrastructure for Human Dignity</title>
      <dc:creator>Michael Muriithi</dc:creator>
      <pubDate>Wed, 08 Jul 2026 08:37:36 +0000</pubDate>
      <link>https://dev.to/ghostwire_ke/why-we-built-ghostwire-infrastructure-for-human-dignity-49h5</link>
      <guid>https://dev.to/ghostwire_ke/why-we-built-ghostwire-infrastructure-for-human-dignity-49h5</guid>
      <description>&lt;h2&gt;
  
  
  Description: "A decentralized, censorship-resistant communication mesh built in Rust. No servers. No owners. Built for when the internet goes dark."
&lt;/h2&gt;

&lt;p&gt;The internet was supposed to be decentralized. Instead, we got walled gardens that can shut you off with a button press.&lt;/p&gt;

&lt;p&gt;GhostWire started with a question: &lt;strong&gt;what happens when the infrastructure you depend on decides you shouldn't exist?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every major communication platform has the same failure mode. Centralized servers mean centralized control. Account bans, API restrictions, DNS blocks, payment cuts — the list of pressure points is long and well-documented.&lt;/p&gt;

&lt;p&gt;This isn't hypothetical. It happens to activists, journalists, dissidents, and ordinary people in authoritarian regimes. It happens during natural disasters when cell towers go down. It happens when a platform changes its terms of service overnight.&lt;/p&gt;

&lt;p&gt;The tools that exist today have tradeoffs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Signal/WhatsApp&lt;/strong&gt;: E2E encrypted, but centralized servers. Blockable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Briar&lt;/strong&gt;: P2P, works over Tor, but limited transport options.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meshtastic&lt;/strong&gt;: LoRa mesh, but range-limited and no encryption by default.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tor&lt;/strong&gt;: Anonymous routing, but needs internet infrastructure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GhostWire doesn't replace these. It fills a gap none of them cover: &lt;strong&gt;a full-stack communication protocol that works over any transport, routes around damage, and can't be turned off.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What GhostWire Actually Is
&lt;/h2&gt;

&lt;p&gt;GhostWire is a protocol, not an app. Think of it as the TCP/IP of mesh communication — a stack that other tools build on top of.&lt;/p&gt;

&lt;p&gt;The stack has five layers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────┐
│         Application Layer           │
│    (apps built on GhostWire)        │
├─────────────────────────────────────┤
│         Crypto Layer                │
│  XChaCha20-Poly1305 + ML-KEM-768   │
├─────────────────────────────────────┤
│         Routing Layer               │
│  Sphinx onion routing + AI routing  │
├─────────────────────────────────────┤
│         Transport Layer             │
│  TCP, WebRTC, BLE, LoRa, obfs4     │
├─────────────────────────────────────┤
│         Network Layer               │
│  Delay-tolerant epidemic routing    │
└─────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each layer is independent. You can swap transports without touching the crypto. You can change routing algorithms without rearchitecting the application layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Design Principles
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. No servers. Ever.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every node is equal. There's no master, no coordinator, no bootstrap server that can be seized. Discovery happens through mDNS on local networks and through relay nodes on the internet — but relay nodes are stateless and can't censor content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Work with what you have.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GhostWire doesn't assume you have a fast, stable internet connection. It works over Bluetooth when you're in the same room. It works over LoRa when you're miles apart. It works over Tor when you need anonymity. It works over the internet when it's available.&lt;/p&gt;

&lt;p&gt;If one transport fails, it automatically falls back to another. If all transports fail, it stores messages and delivers them when connectivity returns (delay-tolerant networking).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cryptography is not optional.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every message is encrypted. Every key exchange is forward-secret. Post-quantum key exchange is built in, not bolted on. There's no "send unencrypted" option because there shouldn't be one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Coercion resistance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A duress PIN wipes the device. A panic mode destroys all keys. A dead man's switch can automatically delete data if you don't check in. These aren't edge cases — they're core features for people who actually need them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Rust
&lt;/h2&gt;

&lt;p&gt;We evaluated Go, Zig, and C++ before choosing Rust.&lt;/p&gt;

&lt;p&gt;The decision came down to three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Memory safety without garbage collection.&lt;/strong&gt; Mesh networking means running on constrained devices (ESP32, Raspberry Pi). GC pauses cause dropped packets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The type system catches entire classes of bugs at compile time.&lt;/strong&gt; When your routing layer handles onion-encrypted packets across unreliable transports, you want the compiler catching null pointers and data races.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The ecosystem.&lt;/strong&gt; &lt;code&gt;tokio&lt;/code&gt; for async networking, &lt;code&gt;x25519-dalek&lt;/code&gt; for key exchange, &lt;code&gt;aes-gcm&lt;/code&gt; for authenticated encryption, &lt;code&gt;sphinx-packet&lt;/code&gt; for onion routing. The crates exist and they're audited.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;GhostWire is at v0.2.0. The core protocol is functional. The cryptographic stack is implemented. The transport layer handles TCP, WebRTC, BLE, LoRa, and obfs4.&lt;/p&gt;

&lt;p&gt;What we're building next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phase 2&lt;/strong&gt;: Mesh topology optimization — gossipsub-based peer discovery, adaptive routing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 3&lt;/strong&gt;: Application protocols — messaging, file transfer, voice&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 4&lt;/strong&gt;: Hardware integration — ESP32 firmware for dedicated mesh nodes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The code is open source under AGPL-3.0. If this kind of infrastructure matters to you, we'd love your help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication" rel="noopener noreferrer"&gt;github.com/Phantomojo/GhostWire-secure-mesh-communication&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.ghostwire.cc" rel="noopener noreferrer"&gt;ghostwire.cc&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built from Nairobi, under RVC.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>p2p</category>
      <category>opensource</category>
      <category>privacy</category>
    </item>
  </channel>
</rss>
