From 82c716dcf2b6f41eedceaef91e14ca6dc671ee23 Mon Sep 17 00:00:00 2001 From: Rae McKelvey <633012+okdistribute@users.noreply.github.com> Date: Sat, 11 Jul 2026 01:58:20 +0200 Subject: [PATCH 1/5] Add new customer logos and Built-in VPN use case Add Rayfish, Outl, Datum, and Fedimint to the homepage logo cloud, and a Built-in VPN use case card highlighting Rayfish and cmux. --- public/img/user-logos/datum.svg | 1 + public/img/user-logos/fedimint.png | Bin 0 -> 41311 bytes public/img/user-logos/rayfish.png | Bin 0 -> 12660 bytes src/app/page.jsx | 6 ++++++ src/components/home/LogoCloud.jsx | 19 ++++++++++++------- 5 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 public/img/user-logos/datum.svg create mode 100644 public/img/user-logos/fedimint.png create mode 100644 public/img/user-logos/rayfish.png diff --git a/public/img/user-logos/datum.svg b/public/img/user-logos/datum.svg new file mode 100644 index 00000000..e2ec5587 --- /dev/null +++ b/public/img/user-logos/datum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/user-logos/fedimint.png b/public/img/user-logos/fedimint.png new file mode 100644 index 0000000000000000000000000000000000000000..53c7c75d2e9a5ec4ee6dd25d7df8fac0f9912c7b GIT binary patch literal 41311 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 VQlE%7xB>ooV|LBb1ZC_R`(F`=o8|xj literal 0 HcmV?d00001 diff --git a/public/img/user-logos/rayfish.png b/public/img/user-logos/rayfish.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc0b02e40ee2c8690fd8ad2c6bc071ca68f19fa GIT binary patch literal 12660 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

T*M zY2u#u(c=O0um#QBvAvrpafC;;%ZqoK0t801CV|W<3HpY<>GmmY0oSxZFHa1-gItp2 zv)=c(y{%uqG#VfU5}6-81!Y--b`P(8ga=a1)PnS3H&??|=sBY#xD@iJZk;757#TseTv0hQ4c9?L3$~ypitjEvEuy6D{7j=F19EhX~ zSQD38R?_t+Sa>w(1)mDpI5w)ek&)aZxx;H$OXFzXi}7O%wqS3>)>)IPDf zor?yt>8-PvFx&``7p4n!M}1D>G){1WNg_(nn}kF{1mTWhVXyU_07KbYn2ISdC7OL+0Qs@{7)SG)>f<= zj`d5=f7v}@iBvt+O+tZsTm;#;_!y`VR*W|ep(D4F?#cxZdJELR1q#_OL<$w_S%n47 zNFyu1y{&wC<9j(M1hKJwzSF2aB=YXuoZ#xG@`{{I9@n)Z-#tbNuD|2~oshSYa*(IQ z=Fr25$!q#-G5kxSY^^L;67ge>$xsNeuNO_p+RXMDde0 z%VhtR!B5Fsys?wt`;JZ;LF#e+-RL4!3OF;h@#)XB`|_4u&Wv4kw~I>ckpfRDaDxPD zKei_FrndF9cAVD(W4h;9jTNsgQq1 zjkv>pKaRaA@Wu2xOF3mI2mZ}l%TJ<1zm7>3@w@6=6l@4^{Y?n@3^4?ni21CwtTIBJ z5TiBMqN0D&ml^w3+diOP8}Z2}?IqJtoRiYm8TLB)GXqhDzV`%50%J;N%|HJ4zh`<7 z{n51L(5;fpDm3ZHD@EyGxgWVNsBct2=ywA#?z~TxJBK|R)&{Q>65HQCzvs0JDdFab zShY~t4K;d8Y@3Ua967D)J+dz+VTUc)AkI~BFEgtSe1X#`?qKIATuc9(_9S&HX78C(F&T9h)HNQ(!* znMFjxyeaQEOB7O}ZcJkmVt7wsr|^WGF9ZP>4<0%ks}Wli1)sFEFsMoW@G%b^$SBDq z=x9FqGQv+@i9s#%_nF5%FbXP-4bUetCJ{{EWdf;u%P1#L8PczcodKt^al==jz)%0%uN?Vs(L=BEdDTU5xio z(GeswTy0!6G|Z$LJ*pSH@Z8>=`7=1Y2@F&hpTtl`yWhqW|!0|}m?gPM54PXpx+MI2^6$WLOVtWyx@#r5FH zNrwRE2(EBR)nejy_jh?(HPU4YMCUlHQP`N(3*&}e6r?fmhR+^zqtT}w1rzN@Czw{; nB`y%rsJc4_Q4lVY+9!e#&WS?~iMmhz_s0WD&rG*g8y)+9nv#76 literal 0 HcmV?d00001 diff --git a/src/app/page.jsx b/src/app/page.jsx index 25128721..27aa3f93 100644 --- a/src/app/page.jsx +++ b/src/app/page.jsx @@ -213,6 +213,12 @@ export default function Page() {

Move files and large blobs directly between devices with content-addressed, resumable transfers that verify every byte.

+ +
+

Built-in VPN

+

Reach your devices directly, with no VPN to configure and no ports to open. Rayfish and cmux use iroh to connect phones and machines peer-to-peer, wherever they are.

+
+ diff --git a/src/components/home/LogoCloud.jsx b/src/components/home/LogoCloud.jsx index 2236b78d..f96c53e4 100644 --- a/src/components/home/LogoCloud.jsx +++ b/src/components/home/LogoCloud.jsx @@ -13,6 +13,10 @@ const companies = [ { name: "rave", ext: "png", href: "https://rave.io" }, { name: "delta_chat", ext: "png", href: "https://delta.chat" }, { name: "ottomatic", ext: "png", label: "Ottomatic", href: "https://ottomatic.io" }, + { name: "rayfish", ext: "png", label: "Rayfish", imgClassName: "max-h-8", href: "https://rayfish.xyz" }, + { name: "outl", label: "Outl", href: "https://outl.app" }, + { name: "datum", ext: "svg", href: "https://www.datum.net" }, + { name: "fedimint", ext: "png", href: "https://fedimint.org" }, ]; // interface LogoCloudProps { @@ -75,21 +79,22 @@ export function LogoCloud({ speed = 0.85, height = 100 }) { href={href} target="_blank" rel="noopener noreferrer" - style={{ height, width: height * (label ? 2 : 1.4) }} - className="flex items-center justify-center gap-2.5 px-4 transition-opacity hover:opacity-70" + style={{ height, width: height * (label && ext ? 2 : label ? 2 : 1.4) }} + className={`flex items-center justify-center ${label && ext ? 'gap-1' : 'gap-2.5'} px-4 transition-opacity hover:opacity-70`} > - {label ? ( - {label} - ) : ( + {ext && ( )} + {label && ( + {label} + )} ))} From 3cbe1c4888642f7d2fa81f5e3fcf311671c8ce6c Mon Sep 17 00:00:00 2001 From: Rae McKelvey <633012+okdistribute@users.noreply.github.com> Date: Sat, 11 Jul 2026 02:04:39 +0200 Subject: [PATCH 2/5] Shrink oversized icon logos in logo cloud Strada, Ottomatic, and Rayfish icons rendered larger than their neighbors at the default max-h-12; cap them at max-h-6 to match. --- src/components/home/LogoCloud.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/home/LogoCloud.jsx b/src/components/home/LogoCloud.jsx index f96c53e4..802e7e5b 100644 --- a/src/components/home/LogoCloud.jsx +++ b/src/components/home/LogoCloud.jsx @@ -8,12 +8,12 @@ const companies = [ { name: "spacedrive", ext: "png", href: "https://www.spacedrive.com" }, { name: "nous", ext: "png", href: "https://nousresearch.com" }, { name: "meshllm", ext: "svg", imgClassName: "max-h-12 grayscale", href: "https://meshllm.cloud" }, - { name: "strada", ext: "png", label: "Strada", href: "https://strada.tech" }, + { name: "strada", ext: "png", label: "Strada", imgClassName: "max-h-6", href: "https://strada.tech" }, { name: "paycode", ext: "svg", href: "https://www.paycode.com.mx" }, { name: "rave", ext: "png", href: "https://rave.io" }, { name: "delta_chat", ext: "png", href: "https://delta.chat" }, - { name: "ottomatic", ext: "png", label: "Ottomatic", href: "https://ottomatic.io" }, - { name: "rayfish", ext: "png", label: "Rayfish", imgClassName: "max-h-8", href: "https://rayfish.xyz" }, + { name: "ottomatic", ext: "png", label: "Ottomatic", imgClassName: "max-h-6", href: "https://ottomatic.io" }, + { name: "rayfish", ext: "png", label: "Rayfish", imgClassName: "max-h-6", href: "https://rayfish.xyz" }, { name: "outl", label: "Outl", href: "https://outl.app" }, { name: "datum", ext: "svg", href: "https://www.datum.net" }, { name: "fedimint", ext: "png", href: "https://fedimint.org" }, From fb6fb12c077698528d1bff4975d7c0c84b9ccf9e Mon Sep 17 00:00:00 2001 From: Rae McKelvey <633012+okdistribute@users.noreply.github.com> Date: Sat, 11 Jul 2026 02:11:34 +0200 Subject: [PATCH 3/5] Size text-label logo entries to their content Fixed-width slots left large dead space around variable-length labels (Strada, Ottomatic, Rayfish); size to content instead. --- src/components/home/LogoCloud.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/home/LogoCloud.jsx b/src/components/home/LogoCloud.jsx index 802e7e5b..fb8546c7 100644 --- a/src/components/home/LogoCloud.jsx +++ b/src/components/home/LogoCloud.jsx @@ -79,7 +79,7 @@ export function LogoCloud({ speed = 0.85, height = 100 }) { href={href} target="_blank" rel="noopener noreferrer" - style={{ height, width: height * (label && ext ? 2 : label ? 2 : 1.4) }} + style={{ height, width: label ? undefined : height * 1.4 }} className={`flex items-center justify-center ${label && ext ? 'gap-1' : 'gap-2.5'} px-4 transition-opacity hover:opacity-70`} > {ext && ( From 7aade36f33b0b52e9ce6cb3b50c05057bd19207e Mon Sep 17 00:00:00 2001 From: Rae McKelvey <633012+okdistribute@users.noreply.github.com> Date: Sat, 11 Jul 2026 02:28:31 +0200 Subject: [PATCH 4/5] Add dedicated Built-in VPN use case page, add Go language, lowercase strada - Add /solutions/vpn, a full use-case page (mirroring the Distributed AI Training page) on using iroh in place of Tailscale, WireGuard, and reverse SSH tunnels; wire it into the homepage card, nav dropdown, and /solutions listing - Add Go to the supported-languages rows (docs page + logo already existed, just wasn't listed) - Lowercase the strada label and bump its weight to better match their brand style --- src/app/page.jsx | 7 +- src/app/solutions/page.jsx | 7 + src/app/solutions/vpn/page.jsx | 285 ++++++++++++++++++++++++++++++ src/components/Header.jsx | 1 + src/components/home/LogoCloud.jsx | 6 +- 5 files changed, 301 insertions(+), 5 deletions(-) create mode 100644 src/app/solutions/vpn/page.jsx diff --git a/src/app/page.jsx b/src/app/page.jsx index 27aa3f93..770d5f96 100644 --- a/src/app/page.jsx +++ b/src/app/page.jsx @@ -20,6 +20,7 @@ import logoSwift from '@/images/language-logos/swift.svg'; import logoJavascript from '@/images/language-logos/node.svg'; import logoKotlin from '@/images/language-logos/kotlin.svg'; import logoPython from '@/images/language-logos/python.svg'; +import logoGo from '@/images/language-logos/go.svg'; import { CodeBlockTabs } from '@/components/CodeBlockTabs'; export const metadata = { @@ -34,6 +35,7 @@ const languages = [ { name: 'JavaScript', logo: logoJavascript, href: 'https://docs.iroh.computer/languages/javascript' }, { name: 'Kotlin', logo: logoKotlin, href: 'https://docs.iroh.computer/languages/kotlin' }, { name: 'Python', logo: logoPython, href: 'https://docs.iroh.computer/languages/python' }, + { name: 'Go', logo: logoGo, href: 'https://docs.iroh.computer/languages/go' }, ]; const platforms = [ @@ -213,10 +215,10 @@ export default function Page() {

Move files and large blobs directly between devices with content-addressed, resumable transfers that verify every byte.

- +

Built-in VPN

-

Reach your devices directly, with no VPN to configure and no ports to open. Rayfish and cmux use iroh to connect phones and machines peer-to-peer, wherever they are.

+

Reach your devices directly, with no VPN to configure and no ports to open.

@@ -281,6 +283,7 @@ export default function Page() { { logo: logoJavascript, name: 'JavaScript' }, { logo: logoKotlin, name: 'Kotlin' }, { logo: logoPython, name: 'Python' }, + { logo: logoGo, name: 'Go' }, ].map(({ logo, name }) => ( + + + ) + } + return ( + + + + ) +} + +export default function VPNUseCasePage() { + return ( +
+ + +
+ {/* Hero Section */} +
+
+
+
+

Use Case: Networking

+

+ Reach Any Device, No VPN Required +

+

+ Teams are replacing Tailscale, WireGuard, and reverse SSH tunnels with iroh—dial + a device's public key and get a direct, encrypted connection. No coordination + server to run, no ports to open. +

+
+ + + + + Talk to Us + +
+
+
+ +
+
+
+
+ + {/* Highlights */} +
+
+
+
+

Direct

+

Peer-to-peer connections, no relay in the hot path

+
+
+

Encrypted

+

Every connection encrypted end-to-end by default

+
+
+

Embedded

+

A library in your app, not a client to install

+
+
+

Anywhere

+

Automatic NAT & firewall traversal, with relay fallback

+
+
+
+
+ + {/* The Problem */} +
+
+

The Problem: VPNs Are Infrastructure You Didn't Want to Own

+

+ Reaching a device that isn't sitting on the public internet usually means standing up + a VPN: a coordination server to run and secure, client software to distribute, and firewall + rules to get right. Or it means reverse SSH tunnels and all the operational shenanigans + that come with them. +

+
+

+ “Thinking about implementing a SOCKS proxy on top of iroh to get into my self-hosted + service at home without WireGuard infra and all the related network shenanigans.” +

+
+

+ But what if your app could just dial the other device directly—no separate network + to join, no client to install, no infrastructure to babysit? +

+
+
+ + {/* The Solution */} +
+
+
+
+

The Solution: Dial Keys, Not IPs

+

+ Every iroh node has a public key as its address. To reach a device, you dial that key + directly from inside your own application—there's no separate VPN client for + your users to install, and no central network your traffic has to join. +

+

+ One developer building an agentic coding app described swapping out planned reverse SSH + tunnel infrastructure for iroh in about a day: +

+
+
+
+ +
+

Dial Keys, Not IPs

+

+ Every node has a cryptographic identity. Connect to a device by its public key, wherever it is. +

+
+
+
+ +
+

Direct Connections

+

+ Iroh punches through NATs and firewalls automatically to connect devices directly. +

+
+
+
+ +
+

Encrypted by Default

+

+ Every connection is end-to-end encrypted, so your platform can't see or modify traffic between devices. +

+
+
+
+ +
+

A Library, Not a Client

+

+ Iroh ships inside your app, so the connection is just part of your product—not a separate piece of software your users manage. +

+
+
+
+
+
+

+ “I read iroh's headline ‘dial keys, not IPs’…I think that was + last Tuesday. By Wednesday it was in our app as one of the most load-bearing pieces.” +

+
+
+
+ + {/* Why Relays Matter */} +
+
+

Why Relays Matter

+

+ Iroh automatically establishes direct connections when possible, for the lowest latency + and highest throughput. When a direct connection isn't possible—due to symmetric + NATs, restrictive firewalls, or carrier-grade NAT—traffic falls back to an encrypted + relay, so the connection stays up either way. +

+

+ Use n0's hosted relays, + or run your own for full control over that part of the stack. +

+
+
+ + {/* Comparison */} +
+
+
+

Why iroh

+

iroh vs. Tailscale & WireGuard

+
+
+ + + + + + + + + + {comparison.map((row) => ( + + + + + + ))} + +
irohTailscale / WireGuard
{row.feature}
+
+

+ Iroh connects your app's own devices directly—it's not a general-purpose + replacement for joining a whole network of unrelated machines. +

+
+
+ + {/* CTA */} +
+
+

+ Ready to Skip the VPN Infrastructure? +

+

+ Get started with iroh in minutes. No complex configuration required. +

+
+ + + + + + +
+
+
+ + +
+
+ ) +} diff --git a/src/components/Header.jsx b/src/components/Header.jsx index 05a77fc9..f7aa54e3 100644 --- a/src/components/Header.jsx +++ b/src/components/Header.jsx @@ -27,6 +27,7 @@ export const navItems = [ {label: 'Real-time Sync', href: '/solutions/delta-chat'}, {label: 'Payments & POS', href: '/solutions/pos'}, {label: 'IoT & Embedded', href: '/solutions/iot'}, + {label: 'Built-in VPN', href: '/solutions/vpn'}, ]}, {content: 'Docs', href: 'https://docs.iroh.computer/'}, {content: 'Blog', href: '/blog'}, diff --git a/src/components/home/LogoCloud.jsx b/src/components/home/LogoCloud.jsx index fb8546c7..936f4e45 100644 --- a/src/components/home/LogoCloud.jsx +++ b/src/components/home/LogoCloud.jsx @@ -8,7 +8,7 @@ const companies = [ { name: "spacedrive", ext: "png", href: "https://www.spacedrive.com" }, { name: "nous", ext: "png", href: "https://nousresearch.com" }, { name: "meshllm", ext: "svg", imgClassName: "max-h-12 grayscale", href: "https://meshllm.cloud" }, - { name: "strada", ext: "png", label: "Strada", imgClassName: "max-h-6", href: "https://strada.tech" }, + { name: "strada", ext: "png", label: "strada", labelClassName: "font-black", imgClassName: "max-h-6", href: "https://strada.tech" }, { name: "paycode", ext: "svg", href: "https://www.paycode.com.mx" }, { name: "rave", ext: "png", href: "https://rave.io" }, { name: "delta_chat", ext: "png", href: "https://delta.chat" }, @@ -73,7 +73,7 @@ export function LogoCloud({ speed = 0.85, height = 100 }) { {/* Scroller container */}
- {companies.map(({ name, ext, imgClassName, label, href }, index) => ( + {companies.map(({ name, ext, imgClassName, label, labelClassName, href }, index) => ( )} {label && ( - {label} + {label} )} ))} From a243c2fd335a464b0bf9f59655d1ac7c5eb7621b Mon Sep 17 00:00:00 2001 From: Rae McKelvey <633012+okdistribute@users.noreply.github.com> Date: Sat, 11 Jul 2026 02:31:00 +0200 Subject: [PATCH 5/5] Add C to supported languages docs.iroh.computer/languages/c isn't live yet, so this is kept on its own branch, decoupled from add-new-customers. --- src/app/page.jsx | 3 +++ src/images/language-logos/c.svg | 1 + 2 files changed, 4 insertions(+) create mode 100644 src/images/language-logos/c.svg diff --git a/src/app/page.jsx b/src/app/page.jsx index 770d5f96..bfaf3907 100644 --- a/src/app/page.jsx +++ b/src/app/page.jsx @@ -21,6 +21,7 @@ import logoJavascript from '@/images/language-logos/node.svg'; import logoKotlin from '@/images/language-logos/kotlin.svg'; import logoPython from '@/images/language-logos/python.svg'; import logoGo from '@/images/language-logos/go.svg'; +import logoC from '@/images/language-logos/c.svg'; import { CodeBlockTabs } from '@/components/CodeBlockTabs'; export const metadata = { @@ -36,6 +37,7 @@ const languages = [ { name: 'Kotlin', logo: logoKotlin, href: 'https://docs.iroh.computer/languages/kotlin' }, { name: 'Python', logo: logoPython, href: 'https://docs.iroh.computer/languages/python' }, { name: 'Go', logo: logoGo, href: 'https://docs.iroh.computer/languages/go' }, + { name: 'C', logo: logoC, href: 'https://docs.iroh.computer/languages/c' }, ]; const platforms = [ @@ -284,6 +286,7 @@ export default function Page() { { logo: logoKotlin, name: 'Kotlin' }, { logo: logoPython, name: 'Python' }, { logo: logoGo, name: 'Go' }, + { logo: logoC, name: 'C' }, ].map(({ logo, name }) => ( C \ No newline at end of file