Skip to content

Commit 195d9eb

Browse files
authored
feat: logo cloud (#351)
1 parent 3660f2e commit 195d9eb

File tree

20 files changed

+229
-217
lines changed

20 files changed

+229
-217
lines changed
4.37 KB
Loading

public/img/user-logos/nous.png

5.57 KB
Loading

public/img/user-logos/rave.png

2.19 KB
Loading

public/img/user-logos/recall.png

1.9 KB
Loading

public/img/user-logos/shaga.png

1.02 KB
Loading
9.38 KB
Loading

src/app/blog/a-new-direction-for-iroh/page.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { BlogPostLayout } from '@/components/BlogPostLayout'
2-
import Image from 'next/image'
32

43
export const post = {
54
draft: false,
@@ -52,4 +51,4 @@ The world needs IPFS. The only way to get there is to learn & grow. If you’ve
5251

5352
<aside>
5453
<b>Update (2022-02-23):</b> This post originally read that we were "breaking from the IPFS spec", which isn't accurate. IPFS is a bunch of specs, and we're not breaking from all of them. Iroh is still an IPFS implementation: it continues to use CIDs. We've updated this post to reflect the change. Original text of this article can be found <a href="https://github.com/n0-computer/n0.computer/blob/cfbc5d2debc08baa70b639946a9523cdb3910fa4/content/blog/a_new_direction_for_iroh.md">here</a>.
55-
</aside>
54+
</aside>

src/app/page.jsx

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
import Image from 'next/image'
2+
import Link from 'next/link'
3+
import clsx from 'clsx'
4+
import { BookOpenIcon, ArrowRightIcon } from '@heroicons/react/24/outline'
5+
6+
import {FooterMarketing} from '@/components/FooterMarketing';
7+
import {HeaderSparse} from '@/components/HeaderSparse';
8+
import {HomeHero} from '@/components/HomeHero';
9+
import {UsersShowcase} from '@/components/UsersShowcase';
10+
import {FromTheBlog} from '@/components/FromTheBlog';
11+
import {WrenchCodeIcon} from '@/components/icons/WrenchCodeIcon';
12+
import {PerfChartIllustration} from '@/components/PerfChartIllustration';
13+
import {ConnectDevicesIllustration} from '@/components/ConnectDevicesIllustration';
14+
import {ProtocolHeroList} from '@/components/ProtocolHeroList';
15+
import {LogoCloud} from '@/components/LogoCloud';
16+
17+
import logoRust from '@/images/language-logos/rust.svg';
18+
import { Code, CodeGroup } from '@/components/Code';
19+
20+
export const metadata = {
21+
title: 'Iroh',
22+
description:
23+
'less net work for networks',
24+
};
25+
26+
export default function Page() {
27+
return (
28+
<div>
29+
<HeaderSparse />
30+
31+
<div className="bg-irohGray-50 dark:bg-irohGray-900 text-irohGray-700 dark:text-irohGray-100 h-92 justify-between font-space">
32+
<main className="mb-auto flex flex-col min-h-92">
33+
{/* hero */}
34+
<section className="min-h-92 pt-20 bg-cover" style={{ height: 600 }}>
35+
<div className='relative h-10 max-w-6xl mx-auto'>
36+
<div className='absolute h-full top-0 left-0 bg-gradient-to-t from-irohGray-300 dark:from-zinc-800 to-transparent' style={{ width: 1 }} />
37+
<div className='absolute h-full top-0 right-0 bg-gradient-to-t from-irohGray-300 dark:from-zinc-800 to-transparent' style={{ width: 1 }} />
38+
</div>
39+
<div className='relative max-w-6xl mx-auto'>
40+
<div className='absolute z-10 overflow-hidden w-full'>
41+
<HomeHero className='' />
42+
</div>
43+
<div className="absolute z-40 max-w-6xl mx-auto md:grid md:grid-cols-4 md:gap-4">
44+
<div className="col-span-2 pl-8" style={{ paddingTop: 100 }}>
45+
<h1 className="z-50 text-5xl font-bold font-space-mono leading-tight">
46+
p2p that just works
47+
</h1>
48+
<h3 className="text-lg font-space-mono mt-3 leading-normal">Iroh is a library for building on direct connections between devices, putting more control in the hands of your users.</h3>
49+
<div className='flex mt-3'>
50+
<a href="/docs/quickstart" className="my-4 p-3 px-4 transition bg-irohGray-800 text-irohPurple-500 uppercase hover:bg-irohGray-700 hover:text-gray-200 plausible-event-name=Home+Hero+Start+Project+Click">Start Now</a>
51+
<a href="/docs" className="flex ml-5 my-4 p-3 px-4 bg-gray-300 text-gray-500 transition hover:bg-gray-400 hover:text-gray-200 uppercase plausible-event-name=Home+Hero+Documentation+Click">
52+
<BookOpenIcon className="h-5 w-5 mt-0.5 mr-2" />
53+
Documentation
54+
</a>
55+
</div>
56+
</div>
57+
</div>
58+
</div>
59+
</section>
60+
61+
<section className='max-w-6xl mx-auto md:grid md:grid-cols-4 md:gap-4 border-l border-r border-irohGray-300 dark:border-irohGray-800'>
62+
<div className='md:col-span-3 px-5 py-20 border-r border-irohGray-300 dark:border-irohGray-800'>
63+
<ConnectDevicesIllustration className='mb-12 max-w-xl' />
64+
<h3 className='text-4xl font-bold mb-4'>Connect any two devices on the planet</h3>
65+
<p className='text-irohGray-600 dark:text-irohGray-200 max-w-2xl'>Iroh gives you an API for dialing by public key. You say “connect to that phone”, iroh will find &amp; maintain the fastest connection for you, regardless of where it is.</p>
66+
</div>
67+
<div className="text-right mlw-xl px-5 py-20 md:col-span-1">
68+
<p className='italic text-xl text-irohGray-600 dark:text-irohGray-400 mb-5'>&ldquo;In stark contrast to other p2p &amp; dweb technologies we&apos;ve played with - which are exciting due to their implications for the future - <span className='font-bold'>Iroh brought instant gains in our present.&quot;</span></p>
69+
<p className=''>- <a className='text-irohPurple-500' href="https://a.weird.one/">weird.one</a></p>
70+
</div>
71+
</section>
72+
73+
<LogoCloud />
74+
75+
{/* iroh protocols */}
76+
<section className='pt-10 pb-16 border border-irohGray-300 dark:border-irohGray-800'>
77+
<div className='max-w-6xl mx-auto px-4'>
78+
<div className='pb-10'>
79+
<h3 className='text-3xl font-bold mb-2'>Compose your own tailor-made protocol stack</h3>
80+
<p className='text-irohGray-600 dark:text-irohGray-400 text-lg'>An ecosystem of ready-made, composable protocols are built on top of iroh. <br />Mix & match to get the feature set you need.</p>
81+
</div>
82+
<ProtocolHeroList />
83+
</div>
84+
</section>
85+
86+
<section className='max-w-6xl mx-auto border-l border-r border-irohGray-300 dark:border-irohGray-800 md:grid md:grid-cols-4'>
87+
<div className='md:col-span-2 px-10 py-20 md:border-r border-irohGray-300 dark:border-irohGray-800'>
88+
<WrenchCodeIcon className='w-16 h-16 mb-8' />
89+
<h3 className='text-3xl font-bold mb-4'>Build your own protocol</h3>
90+
<p className='mb-10 text-irohGray-600 dark:text-irohGray-400'>Don&apos;t see a protocol you need? Build your own! Iroh gives you a reliable foundation for building distributed systems that reach the edge. The rest is up to you.</p>
91+
<Link href="/docs/quickstart" className={clsx(
92+
"my-4 p-3 transition bg-irohGray-800 shadow-sm text-irohPurple-500 hover:bg-irohGray-700 hover:text-gray-200 text-lg")}>
93+
<span>Protocol Docs</span>
94+
</Link>
95+
</div>
96+
<div className='md:col-span-2 px-10 py-10 md:py-20 border-t md:border-none border-irohGray-300 dark:border-irohGray-800'>
97+
<PerfChartIllustration />
98+
<h3 className='text-3xl font-bold mb-4'>Continuously Measured</h3>
99+
<p className='mb-10 text-irohGray-600 dark:text-irohGray-400'>All commits to iroh&apos;s main branch run through a growing set of simulations &amp; tests</p>
100+
<Link href="https://perf.iroh.computer" className={clsx(
101+
"my-4 p-3 transition bg-irohGray-800 text-irohPurple-500 hover:bg-irohGray-700 hover:text-gray-200 text-lg")}>
102+
<span>Iroh Perf Site</span>
103+
</Link>
104+
</div>
105+
</section>
106+
107+
{/* use cases */}
108+
<section className='relative max-w-6xl w-full mx-auto border-l border-t border-r border-irohGray-300 dark:border-irohGray-800'>
109+
<div className='absolute w-full h-full grid grid-cols-4'>
110+
<div className='col-span-1 border-dotted border-r border-irohGray-300 dark:border-irohGray-800 h-full' />
111+
<div className='col-span-1 border-dotted border-r border-irohGray-300 dark:border-irohGray-800' />
112+
<div className='col-span-1 border-dotted border-r border-irohGray-300 dark:border-irohGray-800' />
113+
</div>
114+
<div className='mb-4 md:w-1/2 p-10'>
115+
<h3 className='text-3xl text-irohPurple-500 font-bold'>Real World Use</h3>
116+
<p>Iroh is running in production on hundreds of thousands of devices, on all major platforms.</p>
117+
</div>
118+
<div className='relative overflow-hidden' style={{ width: '100%', height: 350 }}>
119+
<UsersShowcase />
120+
</div>
121+
</section>
122+
123+
{/* build in your language */}
124+
<section>
125+
<div className='max-w-6xl mx-auto px-4 lg:flex lg:space-x-10 border-r border-l border-t border-irohGray-300 dark:border-irohGray-800 py-20'>
126+
<div className='lg:w-1/3 mb-10'>
127+
<div className='flex space-x-6 mb-6'>
128+
<div className=''>
129+
<Image
130+
src={logoRust}
131+
alt=""
132+
className="h-12 w-12"
133+
unoptimized
134+
/>
135+
</div>
136+
</div>
137+
<h1 className='text-3xl font-bold mb-2'>Build something amazing, today.</h1>
138+
<Link href='/docs/examples' className='inline-block my-4 p-3 px-4 bg-irohGray-800 text-irohPurple-500 plausible-event-name=Home+Start+Building+Click'>
139+
Start Building
140+
</Link>
141+
</div>
142+
<div className='lg:w-2/3 lg:mt-28'>
143+
<CodeGroup title="main.rs">
144+
<Code className="language-rust">{`// a program that creates two endpoints & sends a ping between them
145+
use anyhow::Result;
146+
use iroh::{Endpoint, protocol::Router};
147+
use iroh_ping::{ALPN as PingALPN, Ping};
148+
149+
#[tokio::main]
150+
async fn main() -> Result<()> {
151+
// create the receive side
152+
let recv_ep = Endpoint::builder().discovery_n0().bind().await?;
153+
let recv_router = Router::builder(recv_ep)
154+
.accept(PingALPN, Ping::new())
155+
.spawn();
156+
157+
let addr = recv_router.endpoint().node_addr().await?;
158+
159+
// create a send side & send a ping
160+
let send_ep = Endpoint::builder().discovery_n0().bind().await?;
161+
let send_pinger = Ping::new();
162+
send_pinger.ping(&send_ep, addr).await?;
163+
164+
// ok!
165+
Ok(())
166+
}`}
167+
</Code>
168+
</CodeGroup>
169+
170+
</div>
171+
</div>
172+
</section>
173+
<section className='max-w-6xl w-full mx-auto px-10 border-r border-l border-t border-irohGray-300 dark:border-irohGray-800 py-20'>
174+
<div className='w-full md:px-5'>
175+
<h3 className='text-lg tracking-wider font-bold text-irohGray-600 dark:text-irohGray-400 uppercase'>From the Blog</h3>
176+
</div>
177+
<FromTheBlog />
178+
</section>
179+
</main>
180+
<FooterMarketing />
181+
</div>
182+
</div>
183+
)
184+
}

0 commit comments

Comments
 (0)