simplify portal default page
|
@ -1,49 +0,0 @@
|
|||
module.exports = {
|
||||
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
|
||||
addons: [
|
||||
"@storybook/addon-links",
|
||||
"@storybook/addon-essentials",
|
||||
{
|
||||
name: "@storybook/addon-postcss",
|
||||
options: {
|
||||
postcssLoaderOptions: {
|
||||
implementation: require("postcss"),
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
webpackFinal: async (config) => {
|
||||
// Transpile Gatsby module because Gatsby includes un-transpiled ES6 code.
|
||||
config.module.rules[0].exclude = [/node_modules\/(?!(gatsby)\/)/];
|
||||
// use installed babel-loader which is v8.0-beta (which is meant to work with @babel/core@7)
|
||||
config.module.rules[0].use[0].loader = require.resolve("babel-loader");
|
||||
// use @babel/preset-react for JSX and env (instead of staged presets)
|
||||
config.module.rules[0].use[0].options.presets = [
|
||||
require.resolve("@babel/preset-react"),
|
||||
require.resolve("@babel/preset-env"),
|
||||
];
|
||||
config.module.rules[0].use[0].options.plugins = [
|
||||
// use @babel/plugin-proposal-class-properties for class arrow functions
|
||||
require.resolve("@babel/plugin-proposal-class-properties"),
|
||||
// use babel-plugin-remove-graphql-queries to remove static queries from components when rendering in storybook
|
||||
require.resolve("babel-plugin-remove-graphql-queries"),
|
||||
];
|
||||
|
||||
// implement svg import support
|
||||
config.module.rules.find((rule) => rule.test && rule.test.test(".svg")).exclude = /\.svg$/;
|
||||
config.module.rules.push({
|
||||
test: /\.svg$/,
|
||||
enforce: "pre",
|
||||
use: [
|
||||
{
|
||||
loader: require.resolve("react-svg-loader"),
|
||||
options: { svgo: { plugins: [{ removeViewBox: false }] } },
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
// Prefer Gatsby ES6 entrypoint (module) over commonjs (main) entrypoint
|
||||
config.resolve.mainFields = ["browser", "module", "main"];
|
||||
return config;
|
||||
},
|
||||
};
|
|
@ -1,55 +0,0 @@
|
|||
import { action } from "@storybook/addon-actions";
|
||||
import "normalize.css";
|
||||
import "@fontsource/sora";
|
||||
import "@fontsource/source-sans-pro";
|
||||
import "./tailwind.css";
|
||||
|
||||
// Gatsby's Link overrides:
|
||||
// Gatsby Link calls the `enqueue` & `hovering` methods on the global variable ___loader.
|
||||
// This global object isn't set in storybook context, requiring you to override it to empty functions (no-op),
|
||||
// so Gatsby Link doesn't throw any errors.
|
||||
global.___loader = {
|
||||
enqueue: () => {},
|
||||
hovering: () => {},
|
||||
};
|
||||
// This global variable is prevents the "__BASE_PATH__ is not defined" error inside Storybook.
|
||||
global.__BASE_PATH__ = "/";
|
||||
|
||||
// Navigating through a gatsby app using gatsby-link or any other gatsby component will use the `___navigate` method.
|
||||
// In Storybook it makes more sense to log an action than doing an actual navigate. Checkout the actions addon docs for more info: https://github.com/storybookjs/storybook/tree/master/addons/actions.
|
||||
|
||||
window.___navigate = (pathname) => {
|
||||
action("NavigateTo:")(pathname);
|
||||
};
|
||||
|
||||
export const parameters = {
|
||||
actions: { argTypesRegex: "^on[A-Z].*" },
|
||||
layout: "fullscreen",
|
||||
viewport: {
|
||||
viewports: {
|
||||
mobile: {
|
||||
name: "Mobile",
|
||||
styles: {
|
||||
height: "667px",
|
||||
width: "375px",
|
||||
},
|
||||
type: "mobile",
|
||||
},
|
||||
tablet: {
|
||||
name: "Tablet",
|
||||
styles: {
|
||||
height: "1366px",
|
||||
width: "1024px",
|
||||
},
|
||||
type: "tablet",
|
||||
},
|
||||
},
|
||||
},
|
||||
backgrounds: {
|
||||
default: "light",
|
||||
values: [
|
||||
{ name: "dark", value: "#0d0d0d" },
|
||||
{ name: "light", value: "#ffffff" },
|
||||
],
|
||||
},
|
||||
};
|
|
@ -1,3 +0,0 @@
|
|||
@import "tailwindcss/base";
|
||||
@import "tailwindcss/components";
|
||||
@import "tailwindcss/utilities";
|
|
@ -1,6 +1,10 @@
|
|||
/// <reference types="cypress" />
|
||||
|
||||
context("Skynet website", () => {
|
||||
Cypress.on("uncaught:exception", (err, runnable) => {
|
||||
return false; // returning false here prevents Cypress from failing the test
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit("");
|
||||
});
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
- title: About us
|
||||
to: /about
|
||||
- title: Brand Guidelines
|
||||
href: https://support.siasky.net/key-concepts/skynet-brand-guidelines
|
||||
href: https://support.skynetlabs.com/key-concepts/skynet-brand-guidelines
|
||||
- title: Careers
|
||||
href: https://jobs.lever.co/SkynetLabs
|
||||
- title: Terms of Use
|
||||
|
@ -13,11 +13,11 @@
|
|||
- header: Developers
|
||||
links:
|
||||
- title: Developer Guide
|
||||
href: https://docs.siasky.net
|
||||
href: https://docs.skynetlabs.com
|
||||
- title: API & SDK Documentation
|
||||
href: https://siasky.net/docs/
|
||||
- title: Portal Setup
|
||||
href: https://support.siasky.net/the-technology/running-a-web-portal
|
||||
href: https://support.skynetlabs.com/the-technology/running-a-web-portal
|
||||
- title: Github
|
||||
href: https://github.com/SkynetLabs
|
||||
- title: Gitlab
|
||||
|
@ -25,13 +25,13 @@
|
|||
- header: Technology
|
||||
links:
|
||||
- title: What is Skynet?
|
||||
href: https://support.siasky.net
|
||||
href: https://support.skynetlabs.com
|
||||
- title: Frequent Questions
|
||||
href: https://support.siasky.net/key-concepts/faqs
|
||||
href: https://support.skynetlabs.com/key-concepts/faqs
|
||||
- title: Skynet Wiki
|
||||
href: https://skynet.guide/
|
||||
- title: Support
|
||||
href: https://support.siasky.net
|
||||
href: https://support.skynetlabs.com
|
||||
- header: Ecosystem
|
||||
links:
|
||||
- title: Sia Foundation
|
||||
|
@ -46,6 +46,8 @@
|
|||
links:
|
||||
- title: Siasky.net
|
||||
href: https://siasky.net
|
||||
- title: SkynetPro.net
|
||||
href: https://skynetpro.net
|
||||
- title: SkyPortal.xyz
|
||||
href: https://skyportal.xyz
|
||||
- title: Skydrain.net
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
- name: A.Capital Ventures
|
||||
image: ./investors/investors-logo-1.png
|
||||
- name: Bain Capital
|
||||
image: ./investors/investors-logo-2.png
|
||||
- name: Bessemer Venture Partners
|
||||
image: ./investors/investors-logo-3.png
|
||||
- name: Collab
|
||||
image: ./investors/investors-logo-4.png
|
||||
- name: Dragonfly Capital
|
||||
image: ./investors/investors-logo-5.png
|
||||
- name: Fenbushi Capital
|
||||
image: ./investors/investors-logo-6.png
|
||||
- name: First Star Ventures
|
||||
image: ./investors/investors-logo-7.png
|
||||
- name: Hack VC
|
||||
image: ./investors/investors-logo-8.png
|
||||
- name: INBlockchain
|
||||
image: ./investors/investors-logo-9.png
|
||||
- name: Paradigm
|
||||
image: ./investors/investors-logo-10.png
|
||||
- name: SV Angel
|
||||
image: ./investors/investors-logo-11.png
|
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 3.9 KiB |
|
@ -1,22 +0,0 @@
|
|||
navigation:
|
||||
- title: Home
|
||||
to: /
|
||||
- title: About
|
||||
to: /about
|
||||
- title: Developers
|
||||
to: /developers
|
||||
- title: News
|
||||
to: /news
|
||||
team:
|
||||
- name: "Chris Schinnerl"
|
||||
position: "VP of Technology"
|
||||
image: images/team/chris-schinnerl.png
|
||||
social:
|
||||
- github: https://github.com/ChrisSchinnerl
|
||||
- gitlab: https://gitlab.com/ChrisSchinnerl
|
||||
- twitter: https://twitter.com/ChrisSchinnerl
|
||||
- name: Steve Funk
|
||||
position: Head of Support
|
||||
image: images/team/steve-funk.png
|
||||
social:
|
||||
- linkedin: https://www.linkedin.com/in/stevengfunk
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "1inch Integrates with Skynet's Homescreen"
|
||||
date: "2021-12-14"
|
||||
description: 1inch leads DeFi industry's efforts in decentralizing front-ends
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: Daniel Helm
|
||||
avatar: ../../team/daniel-helm.png
|
||||
external: https://blog.sia.tech/1inch-integrates-with-homescreen-8146f7971aad
|
||||
---
|
Before Width: | Height: | Size: 242 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "A Deep Dive into Skynet"
|
||||
date: "2021-02-09"
|
||||
description: An introduction and a point of reference on all things Skynet. Intended for all audiences & each section has been written to be…
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/a-deep-dive-into-skynet-a0fa037feea
|
||||
---
|
Before Width: | Height: | Size: 525 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "A Technical Breakdown of MySky Seeds"
|
||||
date: "2021-05-18"
|
||||
description: MySky uses seeds to authenticate users instead of a username and password construction.
|
||||
thumbnail: ./thumbnail.jpeg
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/a-technical-breakdown-of-mysky-seeds-ba9964505978
|
||||
---
|
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 1.7 MiB |
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
title: "Akash Network and Skynet Labs Integrate"
|
||||
date: "2021-06-28"
|
||||
description: "Providing the First Full-Stack Decentralized Web (dWeb) Solution to Handle Backup, Restore, and Migration"
|
||||
author: "Skynet Labs"
|
||||
categories: ["press release"]
|
||||
avatar: "../images/skynet-avatar.png"
|
||||
thumbnail: "../images/press-release.png"
|
||||
---
|
||||
|
||||
**SAN FRANCISCO, California, June 28, 2021** — Akash Network, the open-source and decentralized cloud (DeCloud) also known as Airbnb for cloud computing, today announced a key integration with Skynet Labs, the team behind Sia, a decentralized storage network. By bringing together compute and storage layers, Akash Network and Skynet are now enabling developers to host their applications on a fully decentralized cloud.
|
||||
|
||||
![Akash Network + Skynet Labs](./akashnetwork-plus-skynetlabs.png)
|
||||
|
||||
Akash Network’s DeCloud is differentiated by its speed of deployment, flexibility, lower cost, and permissionless access. Now with Skynet as a key technology partner, Akash’s solution can integrate storage and compute resources. Akash will be able to leverage Skynet’s decentralized storage to backup and restore server instances, host larger volumes of data, and distribute files across multiple points of presence, ultimately improving the user experience. With this integration, Akash Network and Skynet can provide a full-stack solution that will handle backup, restore, and migration for databases running on the DeCloud.
|
||||
|
||||
“The full-stack solution for the decentralized web is now a reality, with Skynet as the front-end with storage, and Akash as the back-end API and database host,” said Greg Osuri, CEO of Akash Network. “Each step of this partnership has been supported and developed by the community, and began with a challenge on Twitter to combine Akash, Skynet, and Handshake into a single open-source package. We plan to support these efforts long-term through community-targeted funding.” The materialization of dWeb is a major shift away from computing resources being owned and operated by the three large centralized cloud software giants. Technology is now poised to shift away from Amazon Web Services (AWS), Google Cloud, and Microsoft Azure, to a decentralized network of cloud providers operating open-source software platforms and creating healthy market competition in an open marketplace with more providers and lower costs.
|
||||
|
||||
“The world of decentralized computing has seen major advancements in the past 10 years. The things we are able to accomplish today put decentralized infrastructure ahead of traditional architectures by achieving similar performance at lower cost and higher reliability,” said David Vorick, CEO of Skynet. “The real advantage, however, is the political stability - the terms of service and available APIs of centralized services change every day, but decentralization comes with guarantees. The entrepreneurs of tomorrow will build on decentralized tech, because it gives them so much more control over the future of their business.”
|
||||
|
||||
## About Akash Network
|
||||
|
||||
Akash Network, the world’s first decentralized and open-source cloud, accelerates deployment, scale, efficiency and price performance for high-growth industries like blockchain and machine learning/AI. Known as the "Airbnb for Cloud Compute”, Akash Network provides a fast, efficient and low-cost application deployment solution. Developers leveraging Akash Network can access cloud computing at up to three times less than the cost of centralized cloud providers like Amazon Web Services, Google Cloud and Microsoft Azure. Utilizing containerization and open-source technology, Akash Network leverages 85% of underutilized cloud capacity in 8.4 million global data centers, enabling anyone to buy and sell cloud computing. For more information visit: [https://akash.network/](https://akash.network/).
|
||||
|
||||
## About Skynet Labs
|
||||
|
||||
Skynet Labs builds uncompromising software infrastructure for the decentralized internet. This includes Sia, the leading decentralized cloud storage platform and Skynet, a content hosting and application development platform. Skynet Labs defines uncompromising infrastructure as scalable, trustless, secure, and most importantly, fully decentralized. Skynet Labs stands out as one of the few deeply technical teams that consistently deliver real products with significant potential. Learn more at [siasky.net](https://siasky.net/), join us on [Discord](https://discord.gg/skynetlabs), and email us at hello@sia.tech.
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Announcing Homescreen: Decentralized Frontends for Web3"
|
||||
date: "2021-09-17"
|
||||
description: DeFi needs decentralized front-ends. Homescreen is the first and only dashboard for users to access all their DeFi apps in one place.
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/announcing-homescreen-decentralized-frontends-for-web3-113a3564530d
|
||||
---
|
Before Width: | Height: | Size: 172 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Announcing Skynet Premium Plans: Faster Speeds and Longer Pinning"
|
||||
date: "2021-03-24"
|
||||
description: Skynet Labs announces accounts with faster speeds and greater amounts of stored data, laying the foundation for future content…
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/announcing-skynet-premium-plans-faster-speeds-and-longer-pinning-b5469814d2c3
|
||||
---
|
Before Width: | Height: | Size: 397 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "ArGoApp and Skynet Labs: Making Decentralized Web App Deployment Easier than Ever"
|
||||
date: "2021-08-25"
|
||||
description: ArGoApp and Skynet are making web app hosting and deployment easier and better than on the centralized web
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: Nicole Tay
|
||||
avatar: ../../team/nicole-tay.png
|
||||
external: https://blog.sia.tech/argoapp-and-skynet-labs-making-decentralized-web-app-deployment-easier-than-ever-e577d411dea
|
||||
---
|
Before Width: | Height: | Size: 681 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Built to Explore: The Skynet Spring 2021 Hackathon!"
|
||||
date: "2021-04-01"
|
||||
description: Put your DApp to the test with real end-users in this exciting 3 phase hackathon. $25,000+ in prizes and open to devs and nondevs alike!
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/built-to-explore-the-skynet-spring-2021-hackathon-a0cff382bb0c
|
||||
---
|
Before Width: | Height: | Size: 2.3 MiB |
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
title: "Decentralizing Websites with ENS and Skynet"
|
||||
date: "2021-09-01"
|
||||
description: "Decentralized web hosting on Skynet via .eth domains, including support from MetaMask and Cloudflare"
|
||||
author: "Skynet Labs"
|
||||
categories: ["press release"]
|
||||
avatar: "../images/skynet-avatar.png"
|
||||
thumbnail: "../images/press-release.png"
|
||||
---
|
||||
|
||||
**BOSTON, Massachusetts, September 1, 2021** — Today, Ethereum Name Service (ENS) and Skynet Labs announce a partnership to advance Web3 via decentralized domain naming and decentralized web hosting, respectively. Built on Ethereum, ENS is a decentralized naming protocol and the most widely integrated blockchain naming service. Skynet Labs is the team behind the Sia blockchain network and is a leading decentralized data storage provider.
|
||||
|
||||
Skynet Labs now joins IPFS and Swarm in powering decentralized, censorship-resistant website hosting using an ENS name. “Happy we got Skynet integration done!” Brantly Millegan, Director of Operations at ENS, explained. “Decentralized websites are a key part of the emerging Web3 ecosystem, e.g. so that dapps can have decentralized front-ends.”
|
||||
|
||||
Owners of an ENS name can now use their .eth domain to point to web apps deployed to Skynet’s decentralized storage. This would not be possible without key support from MetaMask and Cloudflare, which resolve ENS names to data on Skynet.
|
||||
|
||||
Unlike traditional domain names, not all browsers can access ENS names. However, any user with the MetaMask extension installed on their browser is able to access the ENS domain and associated web app on Skynet.
|
||||
|
||||
Similarly, users on any browser or device can also access web apps stored on Skynet through Cloudflare’s eth.link service. Cloudflare accomplishes this by resolving .eth.link’s to their corresponding .eth address. MetaMask and Cloudflare provide key redundancy and censorship-resistance for decentralized websites, thus democratizing access to information in a free and open web.
|
||||
|
||||
David Vorick, Skynet Labs Founder and CEO shares his excitement for Skynet’s support of the Ethereum ecosystem: “We see the Web3 ecosystem as the new frontier for the Internet, and we are eager to push forward a world where people can control their own online experience.”
|
||||
|
||||
As leaders in the decentralized internet movement, ENS and Skynet Labs are proud to set the standard for more cross-chain integrations. The two teams showcase the importance of these collaborations in creating a better decentralized future around data ownership and self-determination.
|
||||
|
||||
## About ENS
|
||||
|
||||
The Ethereum Name Service (ENS) is the leading blockchain-based naming protocol, with +100k users and +260 services where you can use your ENS name. In addition to pointing at a decentralized website, you can also use your ENS name as your portable web3 username and to simplify cryptocurrency payments. Learn more at [ens.domains](https://ens.domains/).
|
||||
|
||||
## About Skynet Labs
|
||||
|
||||
Skynet Labs builds resilient software infrastructure for the decentralized internet. This includes Sia, the leading decentralized cloud storage platform and Skynet, a content hosting and application development platform. Skynet Labs defines uncompromising infrastructure as scalable, trustless, secure, and most importantly, fully decentralized. Skynet Labs stands out as one of the few deeply technical teams that consistently deliver real products with significant potential. Learn more at [siasky.net](https://siasky.net/), join us on [Discord](https://discord.gg/skynetlabs), and email us at hello@sia.tech.
|
|
@ -1,41 +0,0 @@
|
|||
---
|
||||
title: "Sia Announces $3M Seed Round to Accelerate Development and Adoption of the Web3 platform Skynet"
|
||||
date: "2020-09-22"
|
||||
description: "Paradigm leads the round of financing; Nebulous to solely focus on Skynet"
|
||||
author: "Skynet Labs"
|
||||
categories: ["press release"]
|
||||
avatar: "../images/skynet-avatar.png"
|
||||
thumbnail: "../images/press-release.png"
|
||||
---
|
||||
|
||||
**Boston, MA – September 22nd, 2020** — Nebulous, the company building the Sia decentralized cloud storage platform and the Skynet application hosting platform, today announced it has closed a \$3M funding round led by Paradigm with participation from Bain Capital Ventures, Bessemer Venture Partners, A.Capital, Collaborative Fund, Dragonfly Capital Partners, Hack VC, INBlockchain, First Star Ventures, and other notable investors. The round will help the company scale and accelerate the development and adoption of Skynet.
|
||||
|
||||
Today’s internet monopolized by tech giants struggles with fundamental challenges in privacy, reliability, and has excessive control over our data and the way we interact with the world. Skynet enables high speed, low cost, and superior infrastructure to serve as the storage foundation for a free Internet. Where data is globally accessible, user-controlled, censorship-resistant, and not fragmented in walled gardens.
|
||||
|
||||
Skynet empowers developers to deploy applications to a decentralized network in just minutes and be immediately available to everyone across the world. Importantly, end-users can directly access content on Skynet without needing to run full nodes or deal with cryptocurrencies. It paves the path for more powerful applications, more dynamic user experiences, and disintermediates the web to ensure that publishers and creators are paid the full amount that they deserve. Skynet enables the decentralized web ecosystem to realize the full potential of a free internet.
|
||||
|
||||
“The possibilities created by Skynet blow our minds. The project has enabled a growing ecosystem of builders to quickly prototype censorship-resistant applications and interactive websites including interfaces to Ethereum smart contracts like Uniswap,” said Dan Robinson, Research Partner at Paradigm. “We’re investing in the Skynet team because we believe they have the right combination of talent, experience, and community to shepherd us into the era of the Decentralized Web.”
|
||||
|
||||
Nebulous launched the Skynet platform back in February 2020 and since then has seen accelerated growth in developer interest and usage. More than 1.6 million files have been uploaded and shared amounting to 10+ TB of data using Skynet. A thriving community of developers has built over 100 applications in the span of a few months including a Video Streaming app SkyLive, Blogging apps like Wakio and Skyblog Builder, Video & Image gallery app SkyGallery, and a Decentralized AppStore Skydroid. The full list of Skynet Apps can be explored at the Skynet AppStore. We believe the next generation of Twitter, Medium, TikTok will be built on Skynet.
|
||||
|
||||
By building on the Sia network, Skynet delivers a 10x reduction in storage costs and a 100x reduction in bandwidth costs when compared to centralized providers, without sacrificing performance or reliability. Skynet achieves 1 gigabit per second in download and uploads speeds, with more improvements coming in future releases.
|
||||
|
||||
“For the first time, the decentralized web feels within reach. We’re not talking about a web that is technically feasible yet crippled compared to the centralized alternatives, we are talking about a decentralized web that will become an unstoppable force” said David Vorick, Nebulous CEO and Skynet Lead Developer. “Ten years from now, using centralized applications instead of decentralized applications will feel like using a fax machine instead of email.”
|
||||
|
||||
In addition to the funding news, Nebulous is announcing its rebranding to Skynet to solely focused on developing and growing the Skynet ecosystem. Next-generation applications are already being built on Skynet with more developers joining the community every day. Skynet is different from any platform or technology than has ever been built before. Because of that, we are thrilled to be doubling down on what we know will become the future of the Internet.
|
||||
|
||||
Interested in Skynet? Learn more at siasky.net, join us on Discord, or email us at hello@sia.tech.
|
||||
|
||||
Want to help us re-decentralize the Internet? Nebulous is hiring for positions in marketing and developer evangelism. Learn more about our projects and apply today!
|
||||
|
||||
## About Nebulous
|
||||
|
||||
Nebulous builds uncompromising software infrastructure for the decentralized internet. This includes Sia, the leading decentralized cloud storage platform, and Skynet, a content and application hosting platform.
|
||||
|
||||
Nebulous defines uncompromising infrastructure as scalable, trustless, secure, and – most important – fully decentralized. In a blockchain industry filled with hype but lacking substance, Nebulous stands out as one of the few deeply technical teams that consistently deliver real products with significant potential.
|
||||
|
||||
Nebulous, Inc. was founded in 2014 and is headquartered in Boston. Before the round led by Paradigm, Nebulous was funded by Bain Capital Ventures, A.Capital, Bessemer Venture Partners, Dragonfly Capital Partners, First Star Ventures, and other notable investors.
|
||||
|
||||
## About Paradigm
|
||||
|
||||
Paradigm is a crypto-focused investment firm based in San Francisco founded by Fred Ehrsam and Matt Huang. The firm makes investments focusing on crypto and blockchain technologies from the earliest stages of ideation through maturity. Prior to founding Paradigm, Fred co-founded Coinbase, the largest cryptocurrency company in the US, and Matt was a partner at Sequoia Capital focusing on early-stage venture investments including leading the firm’s cryptocurrency efforts.
|
|
@ -1,234 +0,0 @@
|
|||
---
|
||||
title: Hello World
|
||||
date: "2015-05-01T22:12:03.284Z"
|
||||
description: "Hello World"
|
||||
author: Nicole Tay
|
||||
avatar: ../../team/nicole-tay.png
|
||||
hidden: true
|
||||
---
|
||||
|
||||
This is my first post on my new fake blog! How exciting!
|
||||
|
||||
I'm sure I'll write a lot more interesting things in the future.
|
||||
|
||||
Oh, and here's a great quote from this Wikipedia on
|
||||
[salted duck eggs](https://en.wikipedia.org/wiki/Salted_duck_egg).
|
||||
|
||||
> A salted duck egg is a Chinese preserved food product made by soaking duck
|
||||
> eggs in brine, or packing each egg in damp, salted charcoal. In Asian
|
||||
> supermarkets, these eggs are sometimes sold covered in a thick layer of salted
|
||||
> charcoal paste. The eggs may also be sold with the salted paste removed,
|
||||
> wrapped in plastic, and vacuum packed. From the salt curing process, the
|
||||
> salted duck eggs have a briny aroma, a gelatin-like egg white and a
|
||||
> firm-textured, round yolk that is bright orange-red in color.
|
||||
|
||||
![Chinese Salty Egg](./salty_egg.jpg)
|
||||
|
||||
You can also write code blocks here!
|
||||
|
||||
```js
|
||||
const saltyDuckEgg = "chinese preserved food product";
|
||||
```
|
||||
|
||||
| Number | Title | Year |
|
||||
| :----- | :--------------------------------------- | ---: |
|
||||
| 1 | Harry Potter and the Philosopher’s Stone | 2001 |
|
||||
| 2 | Harry Potter and the Chamber of Secrets | 2002 |
|
||||
| 3 | Harry Potter and the Prisoner of Azkaban | 2004 |
|
||||
|
||||
[View raw (TEST.md)](https://raw.github.com/adamschwartz/github-markdown-kitchen-sink/master/README.md)
|
||||
|
||||
This is a paragraph.
|
||||
|
||||
This is a paragraph.
|
||||
|
||||
# Header 1
|
||||
|
||||
## Header 2
|
||||
|
||||
Header 1
|
||||
========
|
||||
|
||||
Header 2
|
||||
--------
|
||||
|
||||
# Header 1
|
||||
|
||||
## Header 2
|
||||
|
||||
### Header 3
|
||||
|
||||
#### Header 4
|
||||
|
||||
##### Header 5
|
||||
|
||||
###### Header 6
|
||||
|
||||
# Header 1
|
||||
## Header 2
|
||||
### Header 3
|
||||
#### Header 4
|
||||
##### Header 5
|
||||
###### Header 6
|
||||
|
||||
# Header 1
|
||||
|
||||
## Header 2
|
||||
|
||||
### Header 3
|
||||
|
||||
#### Header 4
|
||||
|
||||
##### Header 5
|
||||
|
||||
###### Header 6
|
||||
|
||||
# Header 1 #
|
||||
## Header 2 ##
|
||||
### Header 3 ###
|
||||
#### Header 4 ####
|
||||
##### Header 5 #####
|
||||
###### Header 6 ######
|
||||
|
||||
> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
|
||||
|
||||
> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
|
||||
|
||||
> ## This is a header.
|
||||
>
|
||||
> 1. This is the first list item.
|
||||
> 2. This is the second list item.
|
||||
>
|
||||
> Here's some example code:
|
||||
>
|
||||
> Markdown.generate();
|
||||
|
||||
> ## This is a header.
|
||||
> 1. This is the first list item.
|
||||
> 2. This is the second list item.
|
||||
>
|
||||
> Here's some example code:
|
||||
>
|
||||
> Markdown.generate();
|
||||
|
||||
- Red
|
||||
- Green
|
||||
- Blue
|
||||
|
||||
* Red
|
||||
* Green
|
||||
* Blue
|
||||
|
||||
- Red
|
||||
- Green
|
||||
- Blue
|
||||
|
||||
```markdown
|
||||
- Red
|
||||
- Green
|
||||
- Blue
|
||||
|
||||
* Red
|
||||
* Green
|
||||
* Blue
|
||||
|
||||
- Red
|
||||
- Green
|
||||
- Blue
|
||||
```
|
||||
|
||||
- `code goes` here in this line
|
||||
- **bold** goes here
|
||||
|
||||
```markdown
|
||||
- `code goes` here in this line
|
||||
- **bold** goes here
|
||||
```
|
||||
|
||||
1. Buy flour and salt
|
||||
1. Mix together with water
|
||||
1. Bake
|
||||
|
||||
```markdown
|
||||
1. Buy flour and salt
|
||||
1. Mix together with water
|
||||
1. Bake
|
||||
```
|
||||
|
||||
1. `code goes` here in this line
|
||||
1. **bold** goes here
|
||||
|
||||
```markdown
|
||||
1. `code goes` here in this line
|
||||
1. **bold** goes here
|
||||
```
|
||||
|
||||
Paragraph:
|
||||
|
||||
Code
|
||||
|
||||
<!-- -->
|
||||
|
||||
Paragraph:
|
||||
|
||||
Code
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
* * *
|
||||
|
||||
***
|
||||
|
||||
*****
|
||||
|
||||
- - -
|
||||
|
||||
---------------------------------------
|
||||
|
||||
This is [an example](http://example.com "Example") link.
|
||||
|
||||
[This link](http://example.com) has no title attr.
|
||||
|
||||
This is [an example][id] reference-style link.
|
||||
|
||||
[id]: http://example.com "Optional Title"
|
||||
|
||||
This is [an example](http://example.com "Example") link.
|
||||
|
||||
[This link](http://example.com) has no title attr.
|
||||
|
||||
This is [an example] [id] reference-style link.
|
||||
|
||||
[id]: http://example.com "Optional Title"
|
||||
|
||||
_single asterisks_
|
||||
|
||||
_single underscores_
|
||||
|
||||
**double asterisks**
|
||||
|
||||
**double underscores**
|
||||
|
||||
*single asterisks*
|
||||
|
||||
_single underscores_
|
||||
|
||||
**double asterisks**
|
||||
|
||||
__double underscores__
|
||||
|
||||
This paragraph has some `code` in it.
|
||||
|
||||
This paragraph has some `code` in it.
|
||||
|
||||
![Alt Text](https://placehold.it/200x50 "Image Title")
|
||||
|
||||
![Alt Text](https://placehold.it/200x50 "Image Title")
|
Before Width: | Height: | Size: 668 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 37 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: Introducing Skynet Labs
|
||||
date: "2021-04-02"
|
||||
description: Nebulous rebrands to Skynet Labs with decentralized internet as the cornerstone of our mission.
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: Manasi Vora
|
||||
avatar: ../../team/manasi-vora.png
|
||||
external: https://blog.sia.tech/introducing-skynet-labs-434c852cce07
|
||||
---
|
Before Width: | Height: | Size: 103 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Launching the Sia Foundation"
|
||||
date: "2021-01-13"
|
||||
description: Sia v1.5.4 release incorporates the Foundation Hardfork scheduled to activate around midnight, February 3rd, at block height 298,000
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: Luke Champine
|
||||
avatar: ../../team/luke-champine.png
|
||||
external: https://blog.sia.tech/launching-the-sia-foundation-ee47dfab4d2c
|
||||
---
|
Before Width: | Height: | Size: 20 KiB |
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
title: My Second Post!
|
||||
date: "2015-05-06T23:46:37.121Z"
|
||||
description: Wow! I love blogging so much already.
|
||||
author: Daniel Helm
|
||||
avatar: ../../team/daniel-helm.png
|
||||
hidden: true
|
||||
---
|
||||
|
||||
Wow! I love blogging so much already.
|
||||
|
||||
Did you know that "despite its name, salted duck eggs can also be made from
|
||||
chicken eggs, though the taste and texture will be somewhat different, and the
|
||||
egg yolk will be less rich."?
|
||||
([Wikipedia Link](https://en.wikipedia.org/wiki/Salted_duck_egg))
|
||||
|
||||
Yeah, I didn't either.
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "MySky: Your Home on the Global Operating System of the Future"
|
||||
date: "2021-04-09"
|
||||
description: MySky is a new decentralized identity protocol from Skynet.
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/mysky-your-home-on-the-global-operating-system-of-the-future-5a288f89825c
|
||||
---
|
Before Width: | Height: | Size: 1.1 MiB |
|
@ -1,111 +0,0 @@
|
|||
---
|
||||
title: New Beginnings
|
||||
date: "2015-05-28T22:40:32.169Z"
|
||||
description: This is a custom description for SEO and Open Graph purposes, rather than the default generated excerpt. Simply add a description field to the frontmatter.
|
||||
author: Karol Wypchlo
|
||||
avatar: ../../team/karol-wypchlo.png
|
||||
hidden: true
|
||||
---
|
||||
|
||||
Far far away, behind the word mountains, far from the countries Vokalia and
|
||||
Consonantia, there live the blind texts. Separated they live in Bookmarksgrove
|
||||
right at the coast of the Semantics, a large language ocean. A small river named
|
||||
Duden flows by their place and supplies it with the necessary regelialia.
|
||||
|
||||
## On deer horse aboard tritely yikes and much
|
||||
|
||||
The Big Oxmox advised her not to do so, because there were thousands of bad
|
||||
Commas, wild Question Marks and devious Semikoli, but the Little Blind Text
|
||||
didn’t listen. She packed her seven versalia, put her initial into the belt and
|
||||
made herself on the way.
|
||||
|
||||
- This however showed weasel
|
||||
- Well uncritical so misled
|
||||
- this is very interesting
|
||||
- Goodness much until that fluid owl
|
||||
|
||||
When she reached the first hills of the **Italic Mountains**, she had a last
|
||||
view back on the skyline of her hometown _Bookmarksgrove_, the headline of
|
||||
[Alphabet Village](http://google.com) and the subline of her own road, the Line
|
||||
Lane. Pityful a rhetoric question ran over her cheek, then she continued her
|
||||
way. On her way she met a copy.
|
||||
|
||||
### Overlaid the jeepers uselessly much excluding
|
||||
|
||||
But nothing the copy said could convince her and so it didn’t take long until a
|
||||
few insidious Copy Writers ambushed her, made her drunk with
|
||||
[Longe and Parole](http://google.com) and dragged her into their agency, where
|
||||
they abused her for their projects again and again. And if she hasn’t been
|
||||
rewritten, then they are still using her.
|
||||
|
||||
> Far far away, behind the word mountains, far from the countries Vokalia and
|
||||
> Consonantia, there live the blind texts. Separated they live in Bookmarksgrove
|
||||
> right at the coast of the Semantics, a large language ocean.
|
||||
|
||||
It is a paradisematic country, in which roasted parts of sentences fly into your
|
||||
mouth. Even the all-powerful Pointing has no control about the blind texts it is
|
||||
an almost unorthographic life One day however a small line of blind text by the
|
||||
name of Lorem Ipsum decided to leave for the far World of Grammar.
|
||||
|
||||
### According a funnily until pre-set or arrogant well cheerful
|
||||
|
||||
The Big Oxmox advised her not to do so, because there were thousands of bad
|
||||
Commas, wild Question Marks and devious Semikoli, but the Little Blind Text
|
||||
didn’t listen. She packed her seven versalia, put her initial into the belt and
|
||||
made herself on the way.
|
||||
|
||||
1. So baboon this
|
||||
2. Mounted militant weasel gregariously admonishingly straightly hey
|
||||
3. Dear foresaw hungry and much some overhung
|
||||
4. Rash opossum less because less some amid besides yikes jeepers frenetic
|
||||
impassive fruitlessly shut
|
||||
|
||||
When she reached the first hills of the Italic Mountains, she had a last view
|
||||
back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet
|
||||
Village and the subline of her own road, the Line Lane. Pityful a rhetoric
|
||||
question ran over her cheek, then she continued her way. On her way she met a
|
||||
copy.
|
||||
|
||||
> The copy warned the Little Blind Text, that where it came from it would have
|
||||
> been rewritten a thousand times and everything that was left from its origin
|
||||
> would be the word "and" and the Little Blind Text should turn around and
|
||||
> return to its own, safe country.
|
||||
|
||||
But nothing the copy said could convince her and so it didn’t take long until a
|
||||
few insidious Copy Writers ambushed her, made her drunk with Longe and Parole
|
||||
and dragged her into their agency, where they abused her for their projects
|
||||
again and again. And if she hasn’t been rewritten, then they are still using
|
||||
her. Far far away, behind the word mountains, far from the countries Vokalia and
|
||||
Consonantia, there live the blind texts.
|
||||
|
||||
#### Silent delightfully including because before one up barring chameleon
|
||||
|
||||
Separated they live in Bookmarksgrove right at the coast of the Semantics, a
|
||||
large language ocean. A small river named Duden flows by their place and
|
||||
supplies it with the necessary regelialia. It is a paradisematic country, in
|
||||
which roasted parts of sentences fly into your mouth.
|
||||
|
||||
Even the all-powerful Pointing has no control about the blind texts it is an
|
||||
almost unorthographic life One day however a small line of blind text by the
|
||||
name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox
|
||||
advised her not to do so, because there were thousands of bad Commas, wild
|
||||
Question Marks and devious Semikoli, but the Little Blind Text didn’t listen.
|
||||
|
||||
##### Wherever far wow thus a squirrel raccoon jeez jaguar this from along
|
||||
|
||||
She packed her seven versalia, put her initial into the belt and made herself on
|
||||
the way. When she reached the first hills of the Italic Mountains, she had a
|
||||
last view back on the skyline of her hometown Bookmarksgrove, the headline of
|
||||
Alphabet Village and the subline of her own road, the Line Lane. Pityful a
|
||||
rhetoric question ran over her cheek, then she continued her way. On her way she
|
||||
met a copy.
|
||||
|
||||
###### Slapped cozy a that lightheartedly and far
|
||||
|
||||
The copy warned the Little Blind Text, that where it came from it would have
|
||||
been rewritten a thousand times and everything that was left from its origin
|
||||
would be the word "and" and the Little Blind Text should turn around and return
|
||||
to its own, safe country. But nothing the copy said could convince her and so it
|
||||
didn’t take long until a few insidious Copy Writers ambushed her, made her drunk
|
||||
with Longe and Parole and dragged her into their agency, where they abused her
|
||||
for their projects again and again.
|
|
@ -1,28 +0,0 @@
|
|||
---
|
||||
title: "Skynet Introduces Premium Accounts, Sets the Foundation for New Creator Economies"
|
||||
date: "2021-03-22"
|
||||
description: "Premium accounts support creators while giving users up to 20 TB of data storage per month and other perks."
|
||||
author: "Skynet Labs"
|
||||
categories: ["press release"]
|
||||
avatar: "../images/skynet-avatar.png"
|
||||
thumbnail: "../images/press-release.png"
|
||||
---
|
||||
|
||||
**BOSTON, Massachusetts, March 22, 2021** — Skynet Labs introduces new paid accounts and sets the stage for recursive content monetization. To celebrate, Skynet is giving out premium accounts to the first 100 users who sign up at siasky.net. The giveaway includes 1 TB of storage and 3 months of censorship-resistant file pinning. Skynet is a decentralized CDN and foundation for a new, decentralized internet. It is an open protocol for building decentralized applications, and is built on top of Sia, a decentralized storage network.
|
||||
|
||||
Soon, creators will be able to set the price per view or download of their work and earn directly from their blogs, photos, and videos in real time. In this way, recursive content monetization reduces artists’ dependency on traditional advertising to make ends meet. When users pay for premium accounts in fiat, they provide a steady revenue stream from which to pay out content creators.
|
||||
|
||||
Application developers will also benefit from content monetization. Like content creators, developers can attach price tags to their applications. Per David Vorick, Skynet Labs CEO and Lead Developer, “We believe that developers and content creators alike should be able to earn income off of their hard work so long as they have users that appreciate what they do.”
|
||||
|
||||
Skynet Labs has always been committed to the freedom of expression, information, and importantly, access. Therefore, Skynet’s Free account tier supporting up to 100 GB of data, seeks to ensure that financial barriers never prohibit users and developers from participating in the Skynet ecosystem. Once a user meets their data cap, service on Skynet will continue but at reduced speeds, in a way similar to data plans for smartphones.
|
||||
|
||||
Overall, users can opt for one of three paid tiers: $5/month with 1 TB, $20/month with 4 TB, or \$80/month with 20 TB of data. Skynet Premium also comes with significant performance boosts: users will be able to pin content and browse Skynet faster, in particular any pages with monetized content. The benefits of a premium account are not purely in performance—these users are actively fueling a new creator economy, and a revolution that gives creators everywhere the power they deserve.
|
||||
|
||||
## About Skynet Labs
|
||||
|
||||
Skynet Labs, formerly known as Nebulous, builds uncompromising software infrastructure for the decentralized internet. This includes Sia, the leading decentralized cloud storage platform, and Skynet, a content hosting and application development platform.
|
||||
|
||||
Skynet Labs defines uncompromising infrastructure as scalable, trustless, secure, and – most importantly – fully decentralized. In a blockchain industry filled with hype but lacking substance, Skynet Labs stands out as one of the few deeply technical teams that consistently delivers real products with significant potential.
|
||||
|
||||
Nebulous, Inc. was founded in 2014 and is backed by Paradigm, Bain Capital Ventures, A.Capital, Bessemer Venture Partners, Dragonfly Capital Partners, First Star Ventures, and other notable investors.
|
||||
Learn more at siasky.net, join us on Discord, and email us at hello@sia.tech.
|
|
@ -1,35 +0,0 @@
|
|||
---
|
||||
title: "Skynet Announces SkyDB, Unlocking a Fully Decentralized Internet"
|
||||
date: "2020-10-15"
|
||||
description: "SkyDB enables decentralized social media to take on `The Social Dilemma`"
|
||||
author: "Skynet Labs"
|
||||
categories: ["press release"]
|
||||
avatar: "../images/skynet-avatar.png"
|
||||
thumbnail: "../images/press-release.png"
|
||||
---
|
||||
|
||||
**Boston, MA – October 15th, 2020** — Skynet Labs, the company building the Sia decentralized cloud storage platform and the Skynet application hosting platform, today announced the launch of SkyDB, a framework that allows developers to build feature-complete applications that compete with the likes of Youtube, Twitter, Instagram, and Tiktok.
|
||||
|
||||
The fabric of our society and the way we interact with each other has been heavily influenced and altered by the rise of social media platforms. Biased algorithms amplify stereotypes, constant streams of content compete for our attention, and manipulated narratives wedge digital divides across political ideologies and cultural identities. As pertinently pointed out by the popular Social Dilemma documentary, “We have moved from a tools-based technology environment to an addiction and manipulation based technology environment"
|
||||
|
||||
SkyDB enables developers to realize the full potential of a Free Internet. Building these Web3 applications not only has benefits of privacy and control over one’s data but it ushers innovation currently impossible in the siloed centralized web of today. SkyDB is a framework that allows users to create decentralized accounts and store mutable data in those accounts which can be accessed globally from any device. The user does not need to sync any blockchains or run any special software — a normal web browser is sufficient. For more details on the inner workings of SkyDB and the potential it unlocks, check out our latest blog post.
|
||||
|
||||
“Today is a turning point in history where the decentralized web starts to eat the centralized web,” said David Vorick, Skynet Labs CEO and lead developer. “Skynet gives developers more tools to create better experiences for users. Skynet in many senses is the first true cloud, where all data is available everywhere, regardless of the original application.”
|
||||
|
||||
Skynet was launched back in February 2020 and since then has seen accelerated growth in developer interest and usage. Users around the world have uploaded more than 2.5 million files amounting to 15+ TeraBytes of data using Skynet. In October, Skynet crossed a record-high of 150,000 downloads in a single day.
|
||||
|
||||
A thriving community of developers has built over 150 applications in the span of a few months including a Video Streaming app SkyLive, Blogging apps like Wakio and Skyblog Builder, Video & Image gallery app SkyGallery, a Decentralized AppStore Skydroid. The full list of Skynet Apps can be explored at the Skynet AppStore, and an English language Wikipedia clone.
|
||||
|
||||
“Next-generation applications are already being built on Skynet with more developers joining the community every day,” said Manasi Vora, Skynet Labs’ VP Strategy & Operations. “Skynet shines in how its easy to use not just for developers but also for the end-users, a rarity in the blockchain space.”
|
||||
|
||||
By building on the Sia network, Skynet delivers a 10x reduction in storage costs and a 100x reduction in bandwidth costs when compared to centralized providers, without sacrificing performance or reliability. Skynet achieves 1 gigabit per second in download and uploads speeds, with more improvements coming in future releases.
|
||||
|
||||
Interested in Skynet? Learn more at Siasky.net join us on Discord, and email us at hello@sia.tech.
|
||||
|
||||
## About Skynet Labs
|
||||
|
||||
Skynet Labs, previously known as Nebulous, builds uncompromising software infrastructure for the decentralized internet. This includes Sia, the leading decentralized cloud storage platform, and Skynet, a content and application hosting platform.
|
||||
|
||||
Skynet Labs defines uncompromising infrastructure as scalable, trustless, secure, and – most important – fully decentralized. In a blockchain industry filled with hype but lacking substance, Skynet Labs stands out as one of the few deeply technical teams that consistently deliver real products with significant potential.
|
||||
|
||||
Nebulous, Inc. was founded in 2014 and is headquartered in Boston. It is funded by Paradigm, Bain Capital Ventures, A.Capital, Bessemer Venture Partners, Dragonfly Capital Partners, First Star Ventures, and other notable investors.
|
|
@ -1,37 +0,0 @@
|
|||
---
|
||||
title: "Sia Announces Skynet, the Storage Foundation for a Free Internet"
|
||||
description: "Skynet is available with Sia version 1.4.3 and ready to use today!"
|
||||
date: "2020-02-18"
|
||||
author: "Skynet Labs"
|
||||
categories: ["press release"]
|
||||
avatar: "../images/skynet-avatar.png"
|
||||
thumbnail: "../images/press-release.png"
|
||||
---
|
||||
|
||||
**Boston, MA – February 18, 2020** — Nebulous, the company building the Sia decentralized cloud storage network, today announced the launch of Skynet, a decentralized CDN and file sharing platform for application developers. Skynet enables high speed, low cost, and superior infrastructure to serve as the storage foundation for a free Internet.
|
||||
|
||||
Today’s decentralized applications (dapps) largely rely on centralized data storage providers like Amazon, due to the lack of reliable, fast, and production-ready decentralized alternatives. This makes it difficult for developers to build truly decentralized applications and prevents the dapp ecosystem from realizing the real potential of a Free Internet.
|
||||
|
||||
Skynet provides an easy-to-use data storage and publishing mechanism on which developers can build decentralized applications. With a simple API and SDKs for popular programming languages, Skynet empowers developers to easily integrate decentralized storage into their applications. Importantly, end-users can directly access files on Skynet without needing to run full nodes or deal with cryptocurrencies.
|
||||
|
||||
By building on the Sia Network, Skynet delivers a 10x reduction in storage costs and a 100x reduction in bandwidth costs when compared to centralized providers, without sacrificing performance or reliability. Amazingly, Skynet achieves 1 gigabit per second in download and uploads speeds, with more improvements coming in future releases.
|
||||
|
||||
“After seven years of nonstop work, applications built on decentralized storage are finally viable. I can say without a doubt that Skynet is the most powerful tech we've ever built” said David Vorick, Nebulous CEO and Sia Lead Developer. “Skynet makes it possible for content and applications to be deployed to a decentralized network just in seconds and be immediately available to everyone across the world.”
|
||||
|
||||
Our vision for Skynet involves supporting decentralized content publishing. Whether through news articles, blog posts, music, or video, Nebulous envisions Skynet as a decentralized and censorship-resistant foundation for content creators to deliver media their audience cares about. No more de-platforming, no more exploitation.
|
||||
|
||||
“One place where Skynet shines is speed. Page loading is almost instant. Deployment to Skynet is also almost instant. We’ve demonstrated that decentralized storage can be as fast as its centralized competitors” said Manasi Vora, Nebulous’ Head of Product Strategy. “With storage and bandwidth prices so low, we expect Skynet to enable previously unimaginable applications and spark a renaissance in media-heavy applications.”
|
||||
|
||||
Since Sia’s launch in 2015, users have stored over 4 PB of data across over 1 million storage smart contracts. Currently, the Sia network has 2.2 PB of available storage capacity and Sia software has been downloaded over 1 million times. Sia has a thriving community of third-party developers who have launched file sharing websites like PixelDrain and Storewise, cloud offerings like Filebase and Arzen,and companion apps like Decentralizer and SiaCentral.
|
||||
|
||||
Interested in Skynet? Learn more at Siasky.net join us on Discord, and email us at hello@sia.tech.
|
||||
|
||||
Want to help us re-decentralize the Internet? Nebulous is hiring for positions in engineering and operations. Learn more about our projects and apply today!
|
||||
|
||||
## About Skynet Labs
|
||||
|
||||
Nebulous builds uncompromising blockchain hardware and software infrastructure for the decentralized internet. This includes Sia, the leading decentralized cloud storage platform, and Obelisk, a producer of blockchain-related hardware.
|
||||
|
||||
Nebulous defines uncompromising infrastructure as scalable, trustless, secure, and – most important – fully decentralized. In a blockchain industry filled with hype but lacking substance, Nebulous stands out as one of the few deeply technical teams that consistently delivers real products with significant potential.
|
||||
|
||||
Nebulous, Inc. was founded in 2014 and is headquartered in Boston. Nebulous is funded by Bain Capital Ventures, A.Capital, Raptor Group, First Star Ventures, and other notable investors.
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Skynet Community Update — March 2021"
|
||||
date: "2021-03-10"
|
||||
description: Get updated on the Skynet and Sia ecosystem for the past few months.
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: Steve Funk
|
||||
avatar: ../../team/steve-funk.png
|
||||
external: https://blog.sia.tech/skynet-community-update-march-2021-960426c9abce
|
||||
---
|
Before Width: | Height: | Size: 75 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Skynet Content Leaderboard"
|
||||
date: "2021-05-13"
|
||||
description: We are excited today to be rolling out the content leaderboard for Skynet and MySky applications!
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/skynet-content-leaderboard-6f378e751dc9
|
||||
---
|
Before Width: | Height: | Size: 153 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Skynet Summer 2021 Update"
|
||||
date: "2021-07-12"
|
||||
description: Check out what changes to Skynet are coming immediately, near-term, and on the horizon.
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/skynet-summer-2021-update-86ed8db21eae
|
||||
---
|
Before Width: | Height: | Size: 407 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "Skynet’s Approach to Building a Better Web3"
|
||||
date: "2022-01-11"
|
||||
description: An open response to the well-worded, thorough, and unexpectedly polite blog post by Moxie Marlinspike…
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/skynets-approach-to-building-a-better-web3-c2b10623d6dd
|
||||
---
|
Before Width: | Height: | Size: 333 KiB |
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "The Skynet License"
|
||||
date: "2021-03-18"
|
||||
description: New source code license by Skynet Labs that enables a sustainable business model while empowering freedom
|
||||
thumbnail: ./thumbnail.png
|
||||
categories: ["blog"]
|
||||
author: David Vorick
|
||||
avatar: ../../team/david-vorick.png
|
||||
external: https://blog.sia.tech/the-skynet-license-cf62d5c358c5
|
||||
---
|
Before Width: | Height: | Size: 3.2 MiB |
|
@ -1,19 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<filter id="1-a">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path fill="#00C65E" d="M29.031876,20.9098666 L28.9376,20.9996 L26.0006,32.418457 L26.0002217,47.4850772 C15.5253909,39.5307935 9.94339742,30.0594707 13.1535,24.4995 C15.3983377,20.6113901 21.4491262,19.4904168 29.031876,20.9098666 Z"/>
|
||||
<g filter="url(#1-a)">
|
||||
<g transform="translate(10 9)">
|
||||
<path stroke="#222829" stroke-width="2" d="M25.1486,1.9116 C26.6606,0.6766 28.2946,-0.0004 30.0006,-0.0004 C37.7326,-0.0004 44.0006,13.8786 44.0006,30.9996 C44.0006,48.1206 37.7326,61.9996 30.0006,61.9996 C22.2676,61.9996 16.0006,48.1206 16.0006,30.9996 C16.0006,23.8406 17.0956,17.2476 18.9376,11.9996"/>
|
||||
<path stroke="#222829" stroke-width="2" d="M57.6955,41.9185 C57.8795,43.6185 57.6145,45.1705 56.8465,46.4995 C52.9805,53.1955 37.8275,51.6855 23.0005,43.1245 C8.1735,34.5645 -0.7125,22.1955 3.1535,15.4995 C7.0195,8.8035 22.1735,10.3145 37.0005,18.8745 C43.2405,22.4785 48.4285,26.7565 52.0565,31.0025"/>
|
||||
<path stroke="#222829" stroke-width="2" d="M2.3049,41.9155 C2.1199,43.6165 2.3859,45.1695 3.1539,46.4995 C7.0199,53.1955 22.1729,51.6855 36.9999,43.1245 C51.8269,34.5645 60.7129,22.1955 56.8469,15.4995 C52.9809,8.8035 37.8269,10.3145 22.9999,18.8745 C16.7599,22.4785 11.5729,26.7545 7.9459,30.9995"/>
|
||||
<path stroke="#222829" stroke-width="2" d="M6.0002 38.9995C6.0002 40.6565 4.6562 41.9995 3.0002 41.9995 1.3442 41.9995.0002 40.6565.0002 38.9995.0002 37.3435 1.3442 35.9995 3.0002 35.9995 4.6562 35.9995 6.0002 37.3435 6.0002 38.9995zM60.0002 38.9995C60.0002 40.6565 58.6562 41.9995 57.0002 41.9995 55.3442 41.9995 54.0002 40.6565 54.0002 38.9995 54.0002 37.3435 55.3442 35.9995 57.0002 35.9995 58.6562 35.9995 60.0002 37.3435 60.0002 38.9995zM26.0002 3.9995C26.0002 5.6565 24.6562 6.9995 23.0002 6.9995 21.3442 6.9995 20.0002 5.6565 20.0002 3.9995 20.0002 2.3435 21.3442.9995 23.0002.9995 24.6562.9995 26.0002 2.3435 26.0002 3.9995zM21.0002 38.9995C21.0002 32.9995 27.0002 31.9995 27.0002 31.9995M39.0002 38.9995C39.0002 32.9995 33.0002 31.9995 33.0002 31.9995"/>
|
||||
<path stroke="#222829" stroke-width="2" d="M35.0002,26.4995 C35.0002,29.9995 33.0372,32.9995 30.0002,32.9995 C26.9632,32.9995 25.0002,29.9995 25.0002,26.4995 C25.0002,22.9995 26.0002,20.9995 30.0002,20.9995 C34.0002,20.9995 35.0002,22.9995 35.0002,26.4995 Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.6 KiB |
|
@ -1,6 +0,0 @@
|
|||
- cards:
|
||||
- title: Own your data
|
||||
description: No one owns or controls your account data except for you. Ownership extends to original blogs, music, and videos too. This is all possible through decentralized apps built on decentralized storage.
|
||||
image: ./assets/own-your-data.svg
|
||||
- title: Censorship-resistant content
|
||||
description: Today, censorship can come arbitrarily, top-down, and as a tool to silence expression. Post and share content on Skynet, or use Skynet as a fail-over for your website if a service provider goes down.
|
|
@ -1,31 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="320" height="131" viewBox="0 0 320 131">
|
||||
<defs>
|
||||
<filter id="tz44a43s9a">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M112 49.889L112 80.111 142 99 172 80.111 172 49.889 142.938 31z" transform="translate(-448 -1089) translate(448 949) translate(0 140) translate(66)"/>
|
||||
<path stroke="#0D0D0D" stroke-width="2" d="M125.612 88.681L142 99 172 80.111 172 49.889 158.725 41.261" transform="translate(-448 -1089) translate(448 949) translate(0 140) translate(66)"/>
|
||||
<g filter="url(#tz44a43s9a)" transform="translate(-448 -1089) translate(448 949) translate(0 140) translate(66)">
|
||||
<g stroke="#222829" stroke-width="2">
|
||||
<path d="M32 14L48 4 64 14 64 30 48 40 32 30z" transform="translate(46 5)"/>
|
||||
<path d="M64 14L48 24 32 14M48.5 24L48.5 40M68.5 82L68.5 126M46 64.5L50 64.5M38 64.5L42 64.5M54 64.5L58 64.5" transform="translate(46 5)"/>
|
||||
<g>
|
||||
<path d="M52 126v-24c0-2.207-1.791-4-4-4s-4 1.793-4 4v24M25 0h-5C6.762 8.547 0 21.074 0 38c0 19.43 11.396 36.449 28 44v44" transform="translate(46 5)"/>
|
||||
<path d="M48 86c26.51 0 48-21.488 48-48 0-16.93-6.758-29.453-20-38h-4v36L48 52 24 36V0" transform="translate(46 5)"/>
|
||||
<path d="M72.004 6C81.719 13.299 88 24.916 88 38c0 22.094-17.908 40-40 40S8 60.094 8 38" transform="translate(46 5)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path stroke="#0D0D0D" stroke-width="2" d="M29 11.5H0m34 9H15m29-20H25" transform="translate(-448 -1089) translate(448 949) translate(0 140) translate(66)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.2 KiB |
|
@ -1,26 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<filter id="nw0z1sy8ta">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M31 10L8 19v21c0 18 23 30 23 30V10z" transform="translate(-1144 -1966) translate(0 1544) translate(1144 422)"/>
|
||||
<g filter="url(#nw0z1sy8ta)" transform="translate(-1144 -1966) translate(0 1544) translate(1144 422)">
|
||||
<g>
|
||||
<path stroke="#222829" stroke-linejoin="round" stroke-width="2" d="M10.224 40L16.22 40 24.218 26 32.214 38 40.214 26 48.215 38 56.214 24 62.224 24" transform="translate(8 10)"/>
|
||||
<path fill="#1C1C1C" d="M6 39H8V41H6zM64 23H66V25H64z" transform="translate(8 10)"/>
|
||||
<g stroke="#000" stroke-linejoin="round" stroke-width="2">
|
||||
<path d="M48 21.3V9L24 0 0 9v21c0 18 24 30 24 30s12.902-6.451 19.786-16.988" transform="translate(8 10)"/>
|
||||
</g>
|
||||
<path fill="#D8D8D8" d="M22 1H24V17H22z" transform="translate(8 10)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.4 KiB |
|
@ -1,30 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<filter id="p9eklku59a">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M39 11c1.105 0 2 .895 2 2v11l-3.12.5-3.417 2.3L33 31l1.898 4.871 2.102.804V50h-.328l-2.209-4L31 43l-1.467.5-.925 1 .392 2 1.458 3.5H13c-1.105 0-2-.895-2-2V13c0-1.105.895-2 2-2h26z" transform="translate(-792 -1661) translate(0 1544) translate(792 117)"/>
|
||||
<g filter="url(#p9eklku59a)" transform="translate(-792 -1661) translate(0 1544) translate(792 117)">
|
||||
<g stroke="#222829" stroke-width="2">
|
||||
<path d="M42 34L42 37M37 33L37 36M32 31L32 35" transform="translate(11 12)"/>
|
||||
<g>
|
||||
<path d="M26 63v-4c0-.553.447-1 1-1h19c.553 0 1 .447 1 1v4" transform="translate(11 12)"/>
|
||||
<path stroke-linejoin="round" d="M44 32c1.656 0 3 1.344 3 3v7c0 7-2 11-2 13v3M39 30c1.656 0 3 1.344 3 3v2M34 28c1.656 0 3 1.344 3 3v2" transform="translate(11 12)"/>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M26 40V19c0-1.656 1.344-3 3-3s3 1.344 3 3v12" transform="translate(11 12)"/>
|
||||
<path stroke-linejoin="round" d="M28 58v-3l-6-8s-3.293-12.293-4-13c-1-1 0-3 2-3s3 3 3 3l3 6M26.004 25.328C23.637 24.205 22 21.794 22 19c0-3.866 3.134-7 7-7s7 3.134 7 7c0 2.793-1.635 5.203-4 6.326" transform="translate(11 12)"/>
|
||||
<path stroke-linejoin="round" d="M19.778 25C18.653 23.273 18 21.213 18 19c0-6.075 4.925-11 11-11s11 4.925 11 11c0 2.214-.654 4.274-1.78 6" transform="translate(11 12)"/>
|
||||
<path stroke-linejoin="round" d="M14 19c0-8.284 6.716-15 15-15 8.284 0 15 6.716 15 15" transform="translate(11 12)"/>
|
||||
<path stroke-linejoin="round" d="M14 38H1c-.552 0-1-.447-1-1V1c0-.553.448-1 1-1h56c.552 0 1 .447 1 1v36c0 .553-.448 1-1 1h-7M4 38L4 3M54 35L54 0" transform="translate(11 12)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.4 KiB |
|
@ -1,35 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="320" height="142" viewBox="0 0 320 142">
|
||||
<defs>
|
||||
<filter id="ggm010n4ja">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
<filter id="5cxph9rhkb">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g transform="translate(-1152 -1078) translate(448 949) translate(704 129) translate(75)">
|
||||
<circle cx="38" cy="75" r="30" fill="#00C65E"/>
|
||||
<path stroke="#0D0D0D" stroke-width="2" d="M18.658 51.258c-5.026 3.877-8.866 9.373-10.636 15.977-4.288 16.004 5.21 32.455 21.213 36.743 5.008 1.342 10.06 1.334 14.768.2"/>
|
||||
<g filter="url(#ggm010n4ja)">
|
||||
<g stroke="#222829" stroke-width="2">
|
||||
<path d="M82 20L82 56.068 80 60.075 80 104M46 6c0-3.313 2.688-6 6-6 3.313 0 6 2.687 6 6M46 14V6c0-3.314-2.688-6-6-6-3.313 0-6 2.686-6 6v8M58 20c0 3.313-2.691 6-6.007 6-2.082 0-3.913-1.056-4.993-2.66M70 20c0 3.313-2.688 6-6 6-3.313 0-6-2.687-6-6V6c0-3.313 2.687-6 6-6 3.312 0 6 2.687 6 6" transform="translate(25 21)"/>
|
||||
<path d="M82 6c0-3.313-2.688-6-6-6-3.313 0-6 2.687-6 6v14c0 3.313 2.687 6 6 6 3.312 0 6-2.687 6-6V6zM80 59.5L72 59.5M42 59.5L50 59.5M46 34c8.836 0 16 7.163 16 16M80 67.5L68 67.5" transform="translate(25 21)"/>
|
||||
<path d="M40 36v-9.999S50 24 50 18c0-2.209-1.791-4-4-4H34c-4.419 0-8 3.583-8 8.001v22l16 16V90M40 25.5L34 25.5M89.5 74L89.5 78M89.5 82L89.5 86M89.5 90L89.5 94M33.5 62L33.5 66M33.5 70L33.5 74M33.5 78L33.5 82M17 89.5L62 89.5M0 103.5L120 103.5M36 117.5L92 117.5" transform="translate(25 21)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g stroke-linecap="round" stroke-linejoin="round" filter="url(#5cxph9rhkb)">
|
||||
<g stroke="#000" stroke-width="2" transform="translate(122)">
|
||||
<circle cx="19.5" cy="19.5" r="19.5"/>
|
||||
<path d="M0 19.5L39 19.5M19.5 0c4.877 5.34 7.65 12.27 7.8 19.5-.15 7.23-2.923 14.16-7.8 19.5-4.877-5.34-7.65-12.27-7.8-19.5.15-7.23 2.923-14.16 7.8-19.5h0z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.6 KiB |
|
@ -1,37 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="320" height="131" viewBox="0 0 320 131">
|
||||
<defs>
|
||||
<filter id="d51k6oi84a">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M99.41 100C114.094 100 126 88.136 126 73.5S114.095 47 99.41 47C89.618 47 58.481 55.833 6 73.5 58.482 91.167 89.619 100 99.41 100z" transform="translate(-800 -1089) translate(448 949) translate(352 140) translate(64) rotate(30 66 73.5)"/>
|
||||
<g filter="url(#d51k6oi84a)" transform="translate(-800 -1089) translate(448 949) translate(352 140) translate(64)">
|
||||
<g stroke-width="2">
|
||||
<path stroke="#222829" d="M62.5 51L62.5 55M55 48.5L66 48.5M53 44.5L71 44.5" transform="translate(34 32)"/>
|
||||
<g stroke="#222829">
|
||||
<path d="M58 7v8l-8 13h-9c-1.656 0-3 1.344-3 3v17h-2v7" transform="translate(34 32) translate(33)"/>
|
||||
<path d="M37 22L46 22 52 13M6 13L12 22 21 22" transform="translate(34 32) translate(33)"/>
|
||||
<path d="M0 7v8l8 13h9c1.656 0 3 1.344 3 3v17h2v7" transform="translate(34 32) translate(33)"/>
|
||||
<path d="M6 7c0 1.657-1.344 3-3 3S0 8.657 0 7s1.344-3 3-3 3 1.343 3 3zM58 7c0 1.657-1.344 3-3 3s-3-1.343-3-3 1.344-3 3-3 3 1.343 3 3zM42.5 35L42.5 37M42.5 39L42.5 41M42.5 43L42.5 45M16.5 35L16.5 37M16.5 39L16.5 41M16.5 43L16.5 45M38 9c0 4.971-4.029 9-9 9s-9-4.029-9-9 4.029-9 9-9 9 4.029 9 9z" transform="translate(34 32) translate(33)"/>
|
||||
</g>
|
||||
<g stroke="#222829" stroke-linejoin="round">
|
||||
<path d="M20 0H6C2.688 0 0 2.686 0 6v60M108 66V6c0-3.314-2.688-6-6-6H88M44 60.5L48 60.5M36 60.5L40 60.5M52 60.5L56 60.5M60 60.5L64 60.5M68 60.5L72 60.5" transform="translate(34 32) translate(8 14)"/>
|
||||
<path d="M88 8L100 8 100 60 76 60M32 60L8 60 8 8 20 8" transform="translate(34 32) translate(8 14)"/>
|
||||
</g>
|
||||
<path stroke="#00C65E" stroke-linejoin="round" d="M116 98L8 98 0 90 0 86 48 86 52 90 72 90 76 86 124 86 124 90z" transform="translate(34 32)"/>
|
||||
</g>
|
||||
</g>
|
||||
<path stroke="#0D0D0D" stroke-linejoin="round" stroke-width="2" d="M177.6 54.514L186.88 58 179.92 44.054 195 38.243 179.92 33.595 188.04 20.811 171.8 26.622 166 15 160.2 26.622 143.96 20.811 152.08 34.757 137 38.243 152.08 44.054" transform="translate(-800 -1089) translate(448 949) translate(352 140) translate(64) rotate(45 166 36.5)"/>
|
||||
<path stroke="#0D0D0D" stroke-linejoin="round" stroke-width="2" d="M168 41c0 3.314-2.687 6-6 6-3.312 0-6-2.686-6-6 0-3.313 2.688-6 6-6 3.313 0 6 2.687 6 6z" transform="translate(-800 -1089) translate(448 949) translate(352 140) translate(64)"/>
|
||||
<path stroke="#0D0D0D" stroke-width="2" d="M27.662 58.841L14.038 43.5 31.449 47" transform="translate(-800 -1089) translate(448 949) translate(352 140) translate(64)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.4 KiB |
|
@ -1,34 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<filter id="q2pg3gceya">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.109804 0 0 0 0 0.109804 0 0 0 0 0.109804 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
<filter id="x4s64m2qwb">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.000000 0 0 0 0 0.776471 0 0 0 0 0.368627 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M57.5 37c0 9.389-7.611 17-17 17s-17-7.611-17-17 7.611-17 17-17 17 7.611 17 17z" transform="translate(-792 -1966) translate(0 1544) translate(792 422)"/>
|
||||
<g filter="url(#q2pg3gceya)" transform="translate(-792 -1966) translate(0 1544) translate(792 422)">
|
||||
<g>
|
||||
<g filter="url(#x4s64m2qwb)" transform="translate(8 6)">
|
||||
<g stroke="#222829" stroke-width="2">
|
||||
<path stroke-linejoin="round" d="M47 58L63 58" transform="translate(.5)"/>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M59 62L63 58 59 54M36 8L32 4 36 0" transform="translate(.5)"/>
|
||||
<path d="M32 4c14.912 0 27 12.088 27 27S46.912 58 32 58H0" transform="translate(.5)"/>
|
||||
<path stroke-linejoin="round" d="M18.004 54.096C10.208 49.36 5 40.786 5 31 5 17.772 14.514 6.764 27.074 4.45" transform="translate(.5)"/>
|
||||
<path d="M49 31c0 9.389-7.611 17-17 17s-17-7.611-17-17 7.611-17 17-17 17 7.611 17 17zM32 39L32 42M32 20L32 23" transform="translate(.5)"/>
|
||||
<path d="M28 35c0 2.209 1.791 4 4 4s4-1.791 4-4-4-4-4-4-4-1.791-4-4 1.791-4 4-4 4 1.791 4 4M23 31L21 31M43 31L41 31" transform="translate(.5)"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#D8D8D8" d="M12 65H54V67H12z" transform="translate(8 6)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.2 KiB |
|
@ -1,27 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<filter id="589p9xvkwa">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
<filter id="y85n5y5inb">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.000000 0 0 0 0 0.776471 0 0 0 0 0.368627 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M40 11c17.121 0 31 13.879 31 31 0 8.52-3.438 16.396-9 22H18c-5.564-5.604-9-13.479-9-22 0-17.121 13.879-31 31-31zm0 5c-13.807 0-25 11.26-25 25.15 0 6.914 2.771 13.303 7.258 17.85h35.484C62.227 54.453 65 48.063 65 41.15 65 27.26 53.807 16 40 16z" transform="translate(-1144 -1661) translate(0 1544) translate(1144 117)"/>
|
||||
<g filter="url(#589p9xvkwa)" transform="translate(-1144 -1661) translate(0 1544) translate(1144 117)">
|
||||
<g stroke="#222829" stroke-width="2" filter="url(#y85n5y5inb)" transform="translate(9 11)">
|
||||
<path d="M34 31c0 1.656-1.344 3-3 3s-3-1.344-3-3 1.344-3 3-3 3 1.344 3 3z"/>
|
||||
<path d="M11 46.003C7.86 41.823 6 36.629 6 31 6 17.193 17.193 6 31 6s25 11.193 25 25c0 5.628-1.859 10.82-4.998 15"/>
|
||||
<path d="M53 53H9c-5.564-5.604-9-13.479-9-22C0 13.879 13.879 0 31 0c17.121 0 31 13.879 31 31 0 8.52-3.438 16.396-9 22zM31 46L31 48M27 46L27 48M35 46L35 48M39 46L39 48M23 46L23 48M6 31L9 31M31 6L31 9M56 31L53 31M13 13L16 16M46 16L49 13M33 29L43 19"/>
|
||||
<path d="M23 37.002c-1.256-1.672-2-3.75-2-6.002 0-5.522 4.477-10 10-10s10 4.478 10 10c0 2.25-.744 4.328-1.999 6M11 60.5L51 60.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.9 KiB |
|
@ -1,25 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<filter id="otngco3gva">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 0 0.050980 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
<filter id="lj4budqwmb">
|
||||
<feColorMatrix in="SourceGraphic" values="0 0 0 0 0.000000 0 0 0 0 0.776471 0 0 0 0 0.368627 0 0 0 1.000000 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#00C65E" d="M69 60L54 72 39 60 39 30 47 33 50 30 58 30 61 33 69 30z" transform="translate(-440 -1965) translate(0 1544) translate(440 421)"/>
|
||||
<g stroke-linejoin="round" filter="url(#otngco3gva)" transform="translate(-440 -1965) translate(0 1544) translate(440 421)">
|
||||
<g stroke="#222829" stroke-width="2" filter="url(#lj4budqwmb)" transform="translate(11 9)">
|
||||
<path d="M46 7c0 3.866-10.297 7-23 7S0 10.866 0 7s10.297-7 23-7 23 3.134 23 7z"/>
|
||||
<path d="M23 26c-12.703 0-23-3.134-23-7V7M46 7L46 17M23 38c-12.703 0-23-3.134-23-7v-7M23 50c-12.703 0-23-3.134-23-7v-7M35 60.973C31.507 61.625 27.397 62 23 62c-12.703 0-23-3.134-23-7v-7M23 26L25 26M23 38L25 38M23 50L25 50M58 50L43 62 28 50 28 20 36 23 39 20 47 20 50 23 58 20zM50 31L50 33M50 43L50 45M46 31L46 33M46 35L46 37M46 43L46 45M46 47L46 49M50 35L50 37M36 31L36 33M36 43L36 45M40 31L40 33M40 35L40 37M40 43L40 45M40 47L40 49M36 35L36 37M46 39L46 41M50 39L50 41M40 39L40 41M36 39L36 41M36 23L36 27M50 23L50 27M24 20L22 20M24 32L22 32M24 44L22 44M24 56L22 56"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.8 KiB |
|
@ -1,31 +0,0 @@
|
|||
- etosCards:
|
||||
- title: Build a better web
|
||||
src: ./assets/decentralized-internet-skynet.svg
|
||||
alt: The top of a wrench and a cube representing a new kind of Internet
|
||||
- title: Fight corporate control<br />of user data
|
||||
src: ./assets/fight-corporate-control-skynet.svg
|
||||
alt: Symbol of a strong person stretching arms out of screen
|
||||
- title: Empower global citizens
|
||||
src: ./assets/empower-global-citizens-skynet.svg
|
||||
alt: Symbol of a fist in the air
|
||||
- ecosystemCards:
|
||||
- title: Easy to use
|
||||
src: ./assets/decentralized-storage-without-wallet.svg
|
||||
alt: Image of a finger pushing a button
|
||||
text: Decentralized storage without needing to run a node or wallet. Skynet also includes SDKs for popular programming languages and APIs that integrate seamlessly with your existing apps.
|
||||
- title: Fast
|
||||
src: ./assets/skynet-decentralized-storage-speed.svg
|
||||
alt: Image of a speedometer
|
||||
text: Skynet's speeds rival centralized providers and surpass all decentralized offerings. A typical Skynet download starts in under 500 ms and can stream at rates as high as 1 Gbps!
|
||||
- title: Free to use
|
||||
src: ./assets/skynet-storage-free-use.svg
|
||||
alt: Image of a server database and a shield
|
||||
text: Focus on building, not overhead server costs. When users own their data, developers aren't asked to pay for it.
|
||||
- title: Monetization
|
||||
src: ./assets/monetization-skynet.svg
|
||||
alt: Image of a coin symbol
|
||||
text: Profit directly from the success of your skapp. Now you can truly prioritize your users, instead of advertisers.
|
||||
- title: Persistence
|
||||
src: ./assets/decentralized-storage-benefits.svg
|
||||
alt: Abstract image of a shield and a graph line
|
||||
text: Your skapp and data stay live, even if corporations pull your access to their resources. You can also use Skynet as a failover site for when centralized providers go down.
|
|
@ -1,113 +0,0 @@
|
|||
- name: David Vorick
|
||||
position: CEO and Lead Developer
|
||||
image: ./team/david-vorick.png
|
||||
social:
|
||||
github: https://github.com/DavidVorick
|
||||
gitlab: https://gitlab.com/DavidVorick
|
||||
twitter: https://twitter.com/davidvorick
|
||||
|
||||
- name: Chris Schinnerl
|
||||
position: VP of Technology
|
||||
image: ./team/chris-schinnerl.png
|
||||
social:
|
||||
github: https://github.com/ChrisSchinnerl
|
||||
gitlab: https://gitlab.com/ChrisSchinnerl
|
||||
twitter: https://twitter.com/ChrisSchinnerl
|
||||
|
||||
- name: Steve Funk
|
||||
position: Head of Support
|
||||
image: ./team/steve-funk.png
|
||||
social:
|
||||
linkedin: https://www.linkedin.com/in/stevengfunk
|
||||
|
||||
- name: Matt Sevey
|
||||
position: Engineering Manager
|
||||
image: ./team/matt-sevey.png
|
||||
social:
|
||||
github: https://github.com/MSevey
|
||||
gitlab: https://gitlab.com/MSevey
|
||||
linkedin: https://www.linkedin.com/in/sevey
|
||||
twitter: https://twitter.com/MJSevey
|
||||
|
||||
- name: Manasi Vora
|
||||
position: VP of Strategy and Ops
|
||||
image: ./team/manasi-vora.png
|
||||
social:
|
||||
linkedin: https://linkedin.com/in/manasi-vora-cfa-bb9a1715
|
||||
twitter: https://twitter.com/manasilvora
|
||||
|
||||
- name: PJ Brone
|
||||
position: Core Developer
|
||||
image: ./team/pj-brone.png
|
||||
social:
|
||||
github: https://github.com/peterjan
|
||||
gitlab: https://gitlab.com/pjbrone
|
||||
linkedin: https://www.linkedin.com/in/peterjanbrone
|
||||
twitter: https://twitter.com/peterjanbrone
|
||||
|
||||
- name: Marcin Swieczkowski
|
||||
position: Core Developer
|
||||
image: ./team/marcin-swieczkowski.png
|
||||
social:
|
||||
github: https://github.com/m-cat
|
||||
gitlab: https://gitlab.com/m-cat
|
||||
|
||||
- name: Karol Wypchlo
|
||||
position: Full Stack Developer
|
||||
image: ./team/karol-wypchlo.png
|
||||
social:
|
||||
github: https://github.com/kwypchlo
|
||||
gitlab: https://gitlab.com/kwypchlo
|
||||
linkedin: https://www.linkedin.com/in/karolwypchlo/
|
||||
twitter: https://twitter.com/kwypchlo
|
||||
|
||||
- name: Ivaylo Novakov
|
||||
position: Core Developer
|
||||
image: ./team/ivaylo-novakov.png
|
||||
social:
|
||||
github: https://github.com/ro-tex
|
||||
gitlab: https://gitlab.com/ro-tex
|
||||
linkedin: https://www.linkedin.com/in/inovakov/
|
||||
twitter: https://twitter.com/inovakov
|
||||
|
||||
- name: Filip Rysavy
|
||||
position: Testing Developer
|
||||
image: ./team/filip-rysavy.png
|
||||
social:
|
||||
linkedin: https://www.linkedin.com/in/filiprysavy/
|
||||
|
||||
- name: Daniel Helm
|
||||
position: Developer Evangelist
|
||||
image: ./team/daniel-helm.png
|
||||
social:
|
||||
github: https://github.com/dghelm
|
||||
linkedin: https://www.linkedin.com/in/dghelm/
|
||||
twitter: https://twitter.com/danielgileshelm
|
||||
|
||||
- name: Marissa Hudson
|
||||
position: Engineering Intern
|
||||
image: ./team/marissa-hudson.jpeg
|
||||
social:
|
||||
github: https://github.com/fluffy9
|
||||
|
||||
- name: Alice Hlidkova
|
||||
position: Executive Assistant
|
||||
image: ./team/alice-hlidkova.jpeg
|
||||
social:
|
||||
linkedin: https://www.linkedin.com/in/alice-hlidkova/
|
||||
|
||||
- name: Ayoung Jeon
|
||||
position: Developer Advocate
|
||||
image: ./team/ayoung-jeon.jpeg
|
||||
social:
|
||||
github: https://github.com/ayoungjeon
|
||||
gitlab: https://gitlab.com/ayoung_j
|
||||
linkedin: https://www.linkedin.com/in/ajeon/
|
||||
twitter: https://twitter.com/ayoung_jeon
|
||||
|
||||
- name: Michał Leszczyk
|
||||
position: Full Stack Developer
|
||||
image: ./team/michal-leszczyk.jpg
|
||||
social:
|
||||
github: https://github.com/meeh0w
|
||||
linkedin: https://www.linkedin.com/in/micha%C5%82-leszczyk/
|
Before Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 788 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 705 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB |
|
@ -30,13 +30,6 @@ module.exports = {
|
|||
path: `${__dirname}/data/`,
|
||||
},
|
||||
},
|
||||
{
|
||||
resolve: `gatsby-source-filesystem`,
|
||||
options: {
|
||||
path: `${__dirname}/data/news`,
|
||||
name: `news`,
|
||||
},
|
||||
},
|
||||
`gatsby-plugin-postcss`,
|
||||
`gatsby-plugin-react-helmet`,
|
||||
`gatsby-plugin-image`,
|
||||
|
@ -45,44 +38,6 @@ module.exports = {
|
|||
`gatsby-plugin-robots-txt`,
|
||||
`gatsby-transformer-sharp`,
|
||||
`gatsby-transformer-yaml`,
|
||||
{
|
||||
resolve: `gatsby-transformer-remark`,
|
||||
options: {
|
||||
plugins: [
|
||||
{
|
||||
resolve: `gatsby-remark-classes`,
|
||||
options: {
|
||||
classMap: {
|
||||
heading: "font-semibold text-palette-600",
|
||||
paragraph: "font-content text-base text-palette-400",
|
||||
strong: "font-semibold",
|
||||
link: "text-primary hover:underline transition-colors duration-200",
|
||||
"heading[depth=1]": "text-4xl",
|
||||
"heading[depth=2]": "text-3xl",
|
||||
"paragraph + paragraph": "mt-8",
|
||||
"paragraph + heading": "mt-20",
|
||||
"heading + paragraph": "mt-12",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
resolve: `gatsby-remark-images`,
|
||||
options: {
|
||||
maxWidth: 630,
|
||||
},
|
||||
},
|
||||
{
|
||||
resolve: `gatsby-remark-responsive-iframe`,
|
||||
options: {
|
||||
wrapperStyle: `margin-bottom: 1.0725rem`,
|
||||
},
|
||||
},
|
||||
`gatsby-remark-prismjs`,
|
||||
`gatsby-remark-copy-linked-files`,
|
||||
`gatsby-remark-smartypants`,
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
resolve: `gatsby-plugin-manifest`,
|
||||
options: {
|
||||
|
@ -135,26 +90,11 @@ module.exports = {
|
|||
path
|
||||
}
|
||||
}
|
||||
allMarkdownRemark {
|
||||
nodes {
|
||||
frontmatter {
|
||||
date,
|
||||
hidden
|
||||
},
|
||||
fields {
|
||||
slug
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
resolvePages: ({ allSitePage: { nodes: allPages }, allMarkdownRemark: { nodes: allNews } }) => {
|
||||
resolvePages: ({ allSitePage: { nodes: allPages } }) => {
|
||||
const pathToDateMap = {};
|
||||
|
||||
allNews.map((post) => {
|
||||
pathToDateMap[post.fields.slug] = { date: post.frontmatter.date, hidden: post.frontmatter.hidden };
|
||||
});
|
||||
|
||||
// modify pages to filter out hidden news items and add date
|
||||
const pages = allPages
|
||||
.filter((page) => {
|
||||
|
@ -187,7 +127,4 @@ module.exports = {
|
|||
},
|
||||
},
|
||||
],
|
||||
// mapping: {
|
||||
// "MarkdownRemark.frontmatter.author": `teamYaml`,
|
||||
// },
|
||||
};
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
const path = require(`path`);
|
||||
const { createFilePath } = require(`gatsby-source-filesystem`);
|
||||
|
||||
exports.onCreateWebpackConfig = ({ actions }) => {
|
||||
actions.setWebpackConfig({
|
||||
|
@ -11,113 +10,3 @@ exports.onCreateWebpackConfig = ({ actions }) => {
|
|||
},
|
||||
});
|
||||
};
|
||||
|
||||
exports.createPages = async ({ graphql, actions, reporter }) => {
|
||||
const { createPage } = actions;
|
||||
|
||||
// Define a template for news post
|
||||
const PostTemplate = path.resolve(`./src/templates/news-post.js`);
|
||||
|
||||
// Get all markdown news posts sorted by date and all possible authors
|
||||
const result = await graphql(
|
||||
`
|
||||
{
|
||||
allMarkdownRemark(
|
||||
sort: { fields: [frontmatter___date], order: ASC }
|
||||
filter: { frontmatter: { external: { eq: null } } }
|
||||
) {
|
||||
nodes {
|
||||
id
|
||||
fields {
|
||||
slug
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
);
|
||||
|
||||
if (result.errors) {
|
||||
reporter.panicOnBuild(`There was an error loading your news posts`, result.errors);
|
||||
return;
|
||||
}
|
||||
|
||||
const posts = result.data.allMarkdownRemark.nodes;
|
||||
|
||||
// Create news posts pages
|
||||
// But only if there's at least one markdown file found at "/data/news" (defined in gatsby-config.js)
|
||||
// `context` is available in the template as a prop and as a variable in GraphQL
|
||||
|
||||
if (posts.length > 0) {
|
||||
posts.forEach((post, index) => {
|
||||
const previousPostId = index === 0 ? null : posts[index - 1].id;
|
||||
const nextPostId = index === posts.length - 1 ? null : posts[index + 1].id;
|
||||
|
||||
createPage({
|
||||
path: post.fields.slug,
|
||||
component: PostTemplate,
|
||||
context: {
|
||||
id: post.id,
|
||||
previousPostId,
|
||||
nextPostId,
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
exports.onCreateNode = ({ node, actions, getNode }) => {
|
||||
const { createNodeField } = actions;
|
||||
|
||||
if (node.internal.type === `MarkdownRemark`) {
|
||||
const value = createFilePath({ node, getNode });
|
||||
|
||||
createNodeField({
|
||||
name: `slug`,
|
||||
node,
|
||||
value,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
exports.createSchemaCustomization = ({ actions }) => {
|
||||
const { createTypes } = actions;
|
||||
|
||||
// Explicitly define the siteMetadata {} object
|
||||
// This way those will always be defined even if removed from gatsby-config.js
|
||||
|
||||
// Also explicitly define the Markdown frontmatter
|
||||
// This way the "MarkdownRemark" queries will return `null` even when no
|
||||
// news posts are stored inside "/data/news" instead of returning an error
|
||||
createTypes(`
|
||||
type SiteSiteMetadata {
|
||||
author: String
|
||||
siteUrl: String
|
||||
social: Social
|
||||
}
|
||||
type Author {
|
||||
name: String
|
||||
summary: String
|
||||
}
|
||||
type Social {
|
||||
twitter: String
|
||||
}
|
||||
type MarkdownRemark implements Node {
|
||||
frontmatter: Frontmatter
|
||||
fields: Fields
|
||||
}
|
||||
type Frontmatter {
|
||||
title: String
|
||||
description: String
|
||||
date: Date @dateformat
|
||||
author: String
|
||||
external: String
|
||||
hidden: Boolean
|
||||
categories: [String]
|
||||
avatar: File! @fileByRelativePath
|
||||
}
|
||||
type Fields {
|
||||
slug: String
|
||||
}
|
||||
`);
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "website",
|
||||
"private": true,
|
||||
"description": "Skynet Labs official website",
|
||||
"description": "Skynet Portal",
|
||||
"version": "0.1.0",
|
||||
"author": "Skynet Labs.",
|
||||
"dependencies": {
|
||||
|
@ -18,43 +18,28 @@
|
|||
"gatsby-plugin-image": "2.9.0",
|
||||
"gatsby-plugin-manifest": "4.9.0",
|
||||
"gatsby-plugin-matomo": "0.11.0",
|
||||
"gatsby-plugin-offline": "5.9.0",
|
||||
"gatsby-plugin-postcss": "5.9.0",
|
||||
"gatsby-plugin-purgecss": "6.1.1",
|
||||
"gatsby-plugin-react-helmet": "5.9.0",
|
||||
"gatsby-plugin-robots-txt": "1.7.0",
|
||||
"gatsby-plugin-sharp": "4.9.0",
|
||||
"gatsby-plugin-sitemap": "5.9.0",
|
||||
"gatsby-plugin-svgr": "3.0.0-beta.0",
|
||||
"gatsby-remark-classes": "1.0.2",
|
||||
"gatsby-remark-copy-linked-files": "5.9.0",
|
||||
"gatsby-remark-images": "6.9.0",
|
||||
"gatsby-remark-prismjs": "6.9.0",
|
||||
"gatsby-remark-responsive-iframe": "5.9.0",
|
||||
"gatsby-remark-smartypants": "5.9.0",
|
||||
"gatsby-source-filesystem": "4.9.0",
|
||||
"gatsby-transformer-remark": "5.9.0",
|
||||
"gatsby-transformer-sharp": "4.9.0",
|
||||
"gatsby-transformer-yaml": "4.9.0",
|
||||
"gbimage-bridge": "0.2.1",
|
||||
"http-status-codes": "2.2.0",
|
||||
"jsonp": "0.2.1",
|
||||
"ms": "2.1.3",
|
||||
"nanoid": "3.3.1",
|
||||
"normalize.css": "8.0.1",
|
||||
"path-browserify": "1.0.1",
|
||||
"polished": "4.1.4",
|
||||
"popmotion": "11.0.3",
|
||||
"postcss": "8.4.7",
|
||||
"preact-svg-loader": "0.2.1",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "17.0.2",
|
||||
"react-dom": "17.0.2",
|
||||
"react-dropzone": "12.0.4",
|
||||
"react-helmet": "6.1.0",
|
||||
"react-share": "4.4.0",
|
||||
"react-svg-loader": "3.0.3",
|
||||
"react-syntax-highlighter": "15.4.5",
|
||||
"react-use": "17.3.2",
|
||||
"skynet-js": "4.0.23-beta",
|
||||
"stream-browserify": "3.0.0",
|
||||
|
@ -81,9 +66,7 @@
|
|||
"serve": "gatsby serve",
|
||||
"clean": "gatsby clean",
|
||||
"test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1",
|
||||
"cypress": "cypress",
|
||||
"storybook": "start-storybook -p 6006",
|
||||
"build-storybook": "build-storybook"
|
||||
"cypress": "cypress"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
@ -1,112 +0,0 @@
|
|||
import * as React from "react";
|
||||
import { useState } from "react";
|
||||
import { motion, AnimatePresence } from "framer-motion";
|
||||
import { wrap } from "popmotion";
|
||||
import classnames from "classnames";
|
||||
|
||||
const variants = {
|
||||
enter: (direction) => {
|
||||
return {
|
||||
x: direction > 0 ? 1000 : -1000,
|
||||
opacity: 0,
|
||||
};
|
||||
},
|
||||
center: {
|
||||
zIndex: 1,
|
||||
x: 0,
|
||||
opacity: 1,
|
||||
},
|
||||
exit: (direction) => {
|
||||
return {
|
||||
zIndex: 0,
|
||||
x: direction < 0 ? 1000 : -1000,
|
||||
opacity: 0,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* Experimenting with distilling swipe offset and velocity into a single variable, so the
|
||||
* less distance a user has swiped, the more velocity they need to register as a swipe.
|
||||
* Should accomodate longer swipes and short flicks without having binary checks on
|
||||
* just distance thresholds and velocity > 0.
|
||||
*/
|
||||
const swipeConfidenceThreshold = 10000;
|
||||
const swipePower = (offset, velocity) => {
|
||||
return Math.abs(offset) * velocity;
|
||||
};
|
||||
|
||||
export const Carousel = ({ Component, items }) => {
|
||||
const [[page, direction], setPage] = useState([0, 0]);
|
||||
|
||||
// We only have 3 items, but we paginate them absolutely (ie 1, 2, 3, 4, 5...) and
|
||||
// then wrap that within 0-2 to find our image ID in the array below. By passing an
|
||||
// absolute page index as the `motion` component's `key` prop, `AnimatePresence` will
|
||||
// detect it as an entirely new image. So you can infinitely paginate as few as 1 item.
|
||||
const itemIndex = wrap(0, items.length, page);
|
||||
|
||||
const paginate = (newDirection) => {
|
||||
setPage([page + newDirection, newDirection]);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="relative overflow-hidden">
|
||||
<div className="opacity-0 flex flex-row">
|
||||
{items.map((item, index) => (
|
||||
<div key={index} className="flex-shrink-0 w-full">
|
||||
<Component {...item} />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
<AnimatePresence initial={false} custom={direction}>
|
||||
<motion.div
|
||||
key={page}
|
||||
custom={direction}
|
||||
variants={variants}
|
||||
initial="enter"
|
||||
animate="center"
|
||||
exit="exit"
|
||||
transition={{
|
||||
x: { type: "spring", stiffness: 300, damping: 30 },
|
||||
// opacity: { duration: 0.2 },
|
||||
}}
|
||||
drag="x"
|
||||
dragConstraints={{ left: 0, right: 0 }}
|
||||
dragElastic={1}
|
||||
onDragEnd={(e, { offset, velocity }) => {
|
||||
const swipe = swipePower(offset.x, velocity.x);
|
||||
|
||||
if (swipe < -swipeConfidenceThreshold) {
|
||||
paginate(1);
|
||||
} else if (swipe > swipeConfidenceThreshold) {
|
||||
paginate(-1);
|
||||
}
|
||||
}}
|
||||
className="absolute top-0 w-full"
|
||||
>
|
||||
<Component {...items[itemIndex]} />
|
||||
</motion.div>
|
||||
</AnimatePresence>
|
||||
</div>
|
||||
<div className="flex justify-center mt-8">
|
||||
{items.map((item, index) => (
|
||||
<button
|
||||
key={index}
|
||||
type="button"
|
||||
className="p-3 flex"
|
||||
onClick={() => setPage([index, index > itemIndex ? 1 : -1])}
|
||||
>
|
||||
<span
|
||||
className={classnames("circle transition-colors", {
|
||||
"bg-primary border-2 border-primary": itemIndex === index,
|
||||
"bg-white border-2 border-palette-600": itemIndex !== index,
|
||||
})}
|
||||
></span>
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
|
@ -1,50 +0,0 @@
|
|||
import * as React from "react";
|
||||
import { Light as SyntaxHighlighter } from "react-syntax-highlighter";
|
||||
import js from "react-syntax-highlighter/dist/esm/languages/hljs/javascript";
|
||||
import style from "react-syntax-highlighter/dist/esm/styles/hljs/atom-one-dark";
|
||||
|
||||
SyntaxHighlighter.registerLanguage("javascript", js);
|
||||
|
||||
const CodeTerminal = () => {
|
||||
const codeString = `import { SkynetClient } from "skynet-js";
|
||||
|
||||
// create a client
|
||||
const client = new SkynetClient();
|
||||
|
||||
// Assume we have a file from an input form.
|
||||
|
||||
async function example() {
|
||||
try {
|
||||
// upload
|
||||
const { skylink } = await client.uploadFile(file);
|
||||
|
||||
// download
|
||||
await client.downloadFile(skylink);
|
||||
|
||||
console.log('Download successful');
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
}`;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="bg-palette-400 rounded-t space-x-2 px-2">
|
||||
<div className="circle bg-error"></div>
|
||||
<div className="circle bg-warning"></div>
|
||||
<div className="circle bg-primary"></div>
|
||||
</div>
|
||||
<div className="p-4 bg-palette-500 text-sm" style={{ backgroundColor: "rgb(40, 44, 52)" }}>
|
||||
<SyntaxHighlighter language="javascript" showLineNumbers={true} style={style}>
|
||||
{codeString}
|
||||
</SyntaxHighlighter>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
CodeTerminal.propTypes = {};
|
||||
|
||||
CodeTerminal.defaultProps = {};
|
||||
|
||||
export default CodeTerminal;
|
|
@ -1 +0,0 @@
|
|||
export { default } from "./CodeTerminal";
|
|
@ -1,8 +1,5 @@
|
|||
import * as React from "react";
|
||||
import classnames from "classnames";
|
||||
import {
|
||||
ArrowRight,
|
||||
CheckActive,
|
||||
DiscordSmall,
|
||||
TwitterSmall,
|
||||
RedditSmall,
|
||||
|
@ -10,7 +7,6 @@ import {
|
|||
YoutubeSmall,
|
||||
TikTokSmall,
|
||||
} from "../../components/Icons";
|
||||
import useSubscribe from "./useSubscribe";
|
||||
import Link from "../Link";
|
||||
const social = [
|
||||
{ name: "Discord", Icon: DiscordSmall, href: "https://discord.gg/skynetlabs" },
|
||||
|
@ -27,76 +23,11 @@ const SectionTitle = ({ children }) => (
|
|||
);
|
||||
|
||||
const CommunitySection = () => {
|
||||
const [experienced, setExperienced] = React.useState(false);
|
||||
const [email, setEmail] = React.useState("");
|
||||
const { subscribe, complete, success, message, pending } = useSubscribe();
|
||||
|
||||
const onSubscribe = async (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
subscribe(email, experienced);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="grid gap-y-12 desktop:grid-cols-3 desktop:gap-x-8 max-w-column desktop:max-w-full">
|
||||
<div>
|
||||
<SectionHeader>Newsletter</SectionHeader>
|
||||
<SectionTitle>Stay up to date</SectionTitle>
|
||||
|
||||
<form onSubmit={onSubscribe} className="flex flex-col space-y-4">
|
||||
<div className="relative rounded-md shadow-sm">
|
||||
<label htmlFor="newsletter-email" className="sr-only">
|
||||
Email
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
name="email"
|
||||
id="newsletter-email"
|
||||
className="block w-full rounded pr-10 pl-4 py-2 bg-transparent border-2 border-palette-600 text-sm placeholder-palette-600"
|
||||
placeholder="Email address"
|
||||
value={email}
|
||||
onChange={(event) => setEmail(event.target.value)}
|
||||
/>
|
||||
<button type="submit" className="absolute inset-y-0 right-0 px-2 flex items-center" disabled={pending}>
|
||||
<ArrowRight />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center">
|
||||
<input
|
||||
type="checkbox"
|
||||
id="newsletter-experience"
|
||||
className="sr-only"
|
||||
value={experienced}
|
||||
onChange={() => setExperienced(!experienced)}
|
||||
/>
|
||||
<button type="button" onClick={() => setExperienced(!experienced)}>
|
||||
<CheckActive
|
||||
className={classnames("bg-palette-600 rounded-full h-8 w-8", { "opacity-20": !experienced })}
|
||||
/>
|
||||
</button>
|
||||
<label htmlFor="newsletter-experience" className="text-xs font-content pl-2 leading-6 cursor-pointer">
|
||||
Do you have previous experience using Skynet?
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{complete && message && (
|
||||
<div
|
||||
className={classnames(
|
||||
"newsletter-message text-left desktop:text-center py-2 px-4 rounded bg-palette-600 font-semibold font-content text-white",
|
||||
{
|
||||
"text-error": !success,
|
||||
}
|
||||
)}
|
||||
dangerouslySetInnerHTML={{ __html: message }}
|
||||
></div>
|
||||
)}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div className="desktop:col-span-2">
|
||||
<SectionHeader>Community</SectionHeader>
|
||||
<SectionTitle>Join our community</SectionTitle>
|
||||
<SectionTitle>Join Skynet community</SectionTitle>
|
||||
<div className="grid grid-cols-2 desktop:grid-cols-6 max-w-column desktop:max-w-full">
|
||||
{social.map(({ name, Icon, href }) => (
|
||||
<Link
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
import React from "react";
|
||||
import CommunitySection from "./CommunitySection";
|
||||
|
||||
export default {
|
||||
title: "Layout/CommunitySection",
|
||||
component: CommunitySection,
|
||||
};
|
||||
|
||||
const Template = (args) => <CommunitySection {...args} />;
|
||||
|
||||
export const Default = Template.bind({});
|
||||
Default.parameters = {};
|
||||
Default.args = {};
|
|
@ -1,31 +0,0 @@
|
|||
import { useState, useCallback } from "react";
|
||||
import { useAsync } from "react-use";
|
||||
import jsonp from "jsonp";
|
||||
|
||||
const mailer = "https://tech.us11.list-manage.com/subscribe/post-json?u=5df238d9e852f9801b5f2c92e&id=ab6bea4cc2";
|
||||
const initialState = { complete: false, pending: false, success: false, message: "" };
|
||||
const initialData = { email: "", experienced: false };
|
||||
|
||||
export default function useSubscribe() {
|
||||
const [{ email, experienced }, setData] = useState(initialData);
|
||||
const [state, setState] = useState(initialState);
|
||||
|
||||
useAsync(async () => {
|
||||
if (!email) return;
|
||||
|
||||
setState(initialState);
|
||||
|
||||
const url = [mailer, `EMAIL=${email}`, `USER=${experienced ? "Yes" : "No"}`].join("&");
|
||||
|
||||
jsonp(url, { param: "c" }, (error, data) => {
|
||||
const success = !error && data.result === "success";
|
||||
const message = data ? data.msg : "";
|
||||
|
||||
setState({ complete: true, pending: false, success, message });
|
||||
});
|
||||
}, [email, experienced]);
|
||||
|
||||
const subscribe = useCallback((email, experienced) => setData({ email, experienced }), [setData]);
|
||||
|
||||
return { subscribe, ...state };
|
||||
}
|