This repository has been archived on 2022-10-07. You can view files and clone it, but cannot push or open issues or pull requests.
skynet-webportal/packages/website/src/pages/developers.js

179 lines
6.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import * as React from "react";
import { Section, SectionTitle, CardWithDescription } from "../components/Layout";
import { Carousel } from "../components/Carousel/Carousel";
import { ExternalLink, DataSwap, Encryption, Layers, Mesh, Toolkit, DevBig } from "../components/Icons";
import CodeTerminal from "../components/CodeTerminal";
import Seo from "../components/seo";
import Link from "../components/Link";
const LearnMoreButton = () => (
<Link
href="https://support.siasky.net/the-technology/developing-on-skynet"
className="button-secondary-dark inline-block px-10 mt-7"
>
Learn more
</Link>
);
const reasonCards = [
{
Icon: DataSwap,
title: "Immutable Data, Globally Available & Trustless",
text: "Our immutable data layer means files are instantly accessible on any device, by any portal and are fully verifiable, by leveraging trustless, decentralized storage on the Sia blockchain.",
},
{
Icon: Encryption,
title: "Dynamic Content with a User-Focus",
text: "SkyDB enables complex apps by providing a key-value store for mutable data secured by the private key of the user.",
},
{
Icon: Layers,
title: "BYO Frontend Library",
text: "Our SDKs are built with web2 developers in mind. Client-side web apps and static generators are perfect for using Skynet to deploy with.",
},
{
Icon: Mesh,
title: "Decentralized Stack-Friendly",
text: "With integrations with HNS & ENS, along with easy-access for off-chain storage, Skynet is positioned to connect with the DWeb and web3 technologies you need.",
},
{
Icon: Toolkit,
title: "Hack Today & Activate an Existing User Base",
text: "Start building without worrying about server overhead costs or where users will come from. Bootstrap the user experience with interoperable storage and user-identity right out of the box.",
},
];
const resources = [
{
title: "Skynet Developer Guide",
description: "Developer portal for resources and guides.",
href: "https://support.siasky.net/the-technology/developing-on-skynet",
},
{
title: "Skynet SDK Docs",
description: "SDKs in Javascript, Go, Python and more.",
href: "https://siasky.net/docs/",
},
{
title: "Skynet AppStore",
description: "Explore webs apps in the ecosystem, many open source.",
href: "https://skapp.hns.siasky.net",
},
{
title: "Skynet Core Repo",
description: "The code base that makes the rest tick.",
href: "https://gitlab.com/SkynetLabs/skyd",
},
{
title: "Skynet on Github",
description: "Includes SDKs, resources, and web portal. PRs always welcome.",
href: "https://github.com/SkynetLabs",
},
{
title: "Join us on Discord",
description: "A generous developer community, ready to solve hard problems.",
href: "https://discord.gg/skynetlabs",
},
];
const docs = [
{ name: "Developer Guide", href: "https://support.siasky.net/the-technology/developing-on-skynet" },
{ name: "Skynet SDK Docs", href: "https://siasky.net/docs/" },
];
const DevelopersPage = () => (
<>
<Seo title="Developers" />
<Section first={true} width="layout">
<div className="flex flex-col desktop:flex-row desktop:space-y-0 space-y-12 desktop:space-x-12">
<div className="space-y-12 desktop:w-1/2 desktop:text-right">
<h1 className="text-white">
Decentralized Apps with speed, confidence, and{" "}
<span className="text-primary underline-white">usability</span>
</h1>
<ul className="space-y-2">
{docs.map(({ name, href }, index) => (
<li key={index}>
<Link
href={href}
className="text-primary font-light text-lg inline-flex hover:text-primary-light transition-colors duration-200"
>
{name} <ExternalLink className="fill-current inline-block ml-2" height={28} />
</Link>
</li>
))}
</ul>
</div>
<div className="desktop:w-1/2">
<CodeTerminal />
</div>
</div>
</Section>
<Section className="bg-palette-100">
<SectionTitle className="mb-7 desktop:hidden">Plenty of reasons to use Skynet</SectionTitle>
<div className="hidden desktop:grid gap-x-8 gap-y-16 grid-cols-3">
<div className="hidden desktop:inline-block">
<SectionTitle>Plenty of reasons to use Skynet</SectionTitle>
<LearnMoreButton />
</div>
{reasonCards.map((card, index) => (
<CardWithDescription key={index} {...card} />
))}
</div>
<div className="desktop:hidden">
<Carousel Component={CardWithDescription} items={reasonCards} />
</div>
<div className="desktop:hidden mt-12 text-center">
<LearnMoreButton />
</div>
</Section>
{/* <Section className="bg-palette-100">
<SectionTitle className="text-center mb-20">Join a community of builders already using Skynet</SectionTitle>
<p className="text-center">cards</p>
</Section> */}
<Section className="bg-white">
<SectionTitle className="text-center mb-20">Join a community of builders already using Skynet</SectionTitle>
<div className="grid grid-cols-1 desktop:gap-x-8 gap-y-10 desktop:grid-cols-3">
<div className="space-y-8">
<DevBig width="170" viewBox="90 0 170 142" />
<SectionTitle>Start building with Skynet</SectionTitle>
<p className="font-light text-lg">
Whether hosting your front-end or building a full-scale web app, start here.
</p>
</div>
<ul className="col-span-2 space-y-1">
{resources.map(({ href, title, description }, index) => (
<li key={index}>
<Link
href={href}
className="block bg-palette-100 px-8 py-5 rounded border-2 border-transparent hover:border-palette-600 transition-colors duration-200"
>
<div className="font-semibold text-lg">{title}</div>
<div className="font-content text-palette-400">{description}</div>
</Link>
</li>
))}
</ul>
</div>
</Section>
</>
);
export default DevelopersPage;