diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000..33a6399
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,18 @@
+{
+ "presets": [
+ "@babel/env"
+ ],
+ "plugins": [
+ "@babel/proposal-class-properties",
+ "@babel/proposal-export-namespace-from",
+ "@babel/proposal-function-sent",
+ "@babel/proposal-json-strings",
+ "@babel/proposal-numeric-separator",
+ "@babel/proposal-throw-expressions",
+ "@babel/syntax-dynamic-import",
+ "@babel/syntax-import-meta"
+ ],
+ "ignore": [
+ "app/dist/*.js"
+ ]
+}
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..43c97e7
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+package-lock=false
diff --git a/app/client.js b/app/client.js
new file mode 100755
index 0000000..bffc1fc
--- /dev/null
+++ b/app/client.js
@@ -0,0 +1,73 @@
+"use strict";
+
+
+
+// P A C K A G E S
+
+import choo from "choo";
+import html from "choo/html";
+import devtools from "choo-devtools";
+import ssr from "choo-ssr";
+
+// V A R I A B L E S
+
+import head from "./components/head";
+import wrapper from "./components/wrapper";
+
+
+
+// P R O G R A M
+
+function main() {
+ const app = choo();
+ if (process.env.NODE_ENV !== "production") app.use(devtools());
+
+ const page = view => (
+ shell(
+ ssr.head(
+ head,
+ ssr.state()
+ ),
+ ssr.body(wrapper(view))
+ )
+ );
+
+ app.use(ssr());
+
+ app.route("/", page(require("./views/home")));
+ app.route("/api", page(require("./views/api")));
+ app.route("/api/*", page(require("./views/api")));
+ app.route("/*", page(require("./views/redirect")));
+
+ return app;
+}
+
+if (typeof window !== "undefined") {
+ const app = main();
+ app.mount("html");
+}
+
+
+
+// E X P O R T
+
+module.exports = exports = main;
+
+
+
+// H E L P E R
+
+function shell (head, body) {
+ return (state, emit) => {
+ const bodyRender = body(state, emit);
+ const headRender = head(state, emit);
+
+ return html`
+
+
+ ${headRender}
+ ${bodyRender}
+
+ `;
+ };
+}
diff --git a/views/partials/edit-link.js b/app/components/edit-link.js
similarity index 68%
rename from views/partials/edit-link.js
rename to app/components/edit-link.js
index d2755db..dab8e1f 100644
--- a/views/partials/edit-link.js
+++ b/app/components/edit-link.js
@@ -4,8 +4,8 @@
// P A C K A G E S
-const html = require("choo-async/html");
-const local = require("app-root-path").require;
+import html from "choo/html";
+import { require as local } from "app-root-path";
// V A R I A B L E
@@ -15,7 +15,7 @@ const config = local("/config");
// E X P O R T
-module.exports = exports = pagePath => {
+export default function (pagePath) {
let githubUrl = `https://github.com/${config.github.repo}/edit/${config.github.branch}`;
switch(pagePath) {
@@ -37,6 +37,11 @@ module.exports = exports = pagePath => {
}
return html`
- ${config.github.linkText}
+ ${config.github.linkText}
`;
-};
+}
diff --git a/app/components/email-subscribe.js b/app/components/email-subscribe.js
new file mode 100644
index 0000000..8ea1d22
--- /dev/null
+++ b/app/components/email-subscribe.js
@@ -0,0 +1,26 @@
+"use strict";
+
+
+
+// P A C K A G E
+
+import html from "choo/html";
+
+
+
+// E X P O R T
+
+export default function () {
+ return html`
+
+
Don't miss a bit - Subscribe for LBRY technical updates
+
+
+
+
+
+
+
+ `;
+}
diff --git a/app/components/footer.js b/app/components/footer.js
new file mode 100644
index 0000000..a608dd9
--- /dev/null
+++ b/app/components/footer.js
@@ -0,0 +1,68 @@
+"use strict";
+
+
+
+// P A C K A G E S
+
+import html from "choo/html";
+import { require as local } from "app-root-path";
+
+// V A R I A B L E S
+
+import editLink from "./edit-link";
+import emailSubscribe from "./email-subscribe";
+
+const config = local("/config");
+
+
+
+// E X P O R T
+
+export default function (state) {
+ return html`
+
+ ${emailSubscribe()}
+
+
+
+
+
This website is in beta and under heavy development. All information should be considered incomplete and possibly incorrect and things may not work as expected.
+
+
+
+
Please do not share or link this site publicly while this message is here. This website is open source and you can contribute to it on Github.
+
+
+
+
+
+
+
+
+
+
+ `;
+}
diff --git a/app/components/head.js b/app/components/head.js
new file mode 100644
index 0000000..8d0801b
--- /dev/null
+++ b/app/components/head.js
@@ -0,0 +1,90 @@
+"use strict";
+
+
+
+// P A C K A G E
+
+import html from "choo/html";
+import { require as local } from "app-root-path";
+
+// V A R I A B L E S
+
+const config = local("/config");
+let title = "";
+
+
+
+// E X P O R T
+
+module.exports = exports = (state, emit) => {
+ /*
+ let pageTitle = "";
+
+ if (state.route && state.route !== "/" && state.route !== "*") pageTitle = state.route.charAt(0).toUpperCase() + state.route.slice(1);
+ if (state.params.wildcard) pageTitle = state.params.wildcard.charAt(0).toUpperCase() + state.params.wildcard.slice(1);
+
+ if (pageTitle === "Api") pageTitle = "API";
+
+ ${pageTitle.length ? pageTitle + " | " : ""}${config.meta.title} · ${config.meta.tagline}
+ */
+
+ if (state.route !== "/" && state.params.wildcard) title = `${state.params.wildcard.capitalize()} ∙ LBRY ∙ ${config.meta.tagline}`;
+ else title = `LBRY ∙ ${config.meta.tagline}`;
+
+ if (state.title !== title) emit(state.events.DOMTITLECHANGE, title);
+ state.page = state.page || { };
+
+ // TODO:
+ // - Support custom metadata (descriptions and whatnot)
+ // - Update og:url with current URL
+
+ return html`
+
+ ${title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+
+ // state.route === "api" || state.route === "api/*" ? : ""
+};
+
+
+
+// H E L P E R
+
+String.prototype.capitalize = function () {
+ return this.charAt(0).toUpperCase() + this.slice(1);
+};
diff --git a/app/components/navigation.js b/app/components/navigation.js
new file mode 100644
index 0000000..91ee8f3
--- /dev/null
+++ b/app/components/navigation.js
@@ -0,0 +1,88 @@
+"use strict";
+
+
+
+// P A C K A G E S
+
+import html from "choo/html";
+import Nanocomponent from "nanocomponent";
+import xtend from "xtend";
+
+
+
+// E X P O R T
+
+export default class Navigation extends Nanocomponent {
+ constructor() {
+ super();
+
+ this.state = {
+ active: true,
+ links: [
+ {
+ name: "LBRY.io",
+ title: "Escape the techno scene",
+ url: "https://lbry.io"
+ },
+ {
+ name: "Overview",
+ title: "LBRY overview",
+ url: "/overview"
+ },
+ {
+ name: "Resources",
+ title: "View LBRY resources",
+ url: "/resources"
+ },
+ {
+ name: "Contribute",
+ title: "Contribute to LBRY",
+ url: "/contribute"
+ },
+ {
+ name: "Build",
+ title: "View LBRY resources",
+ url: "/build"
+ },
+ {
+ name: "Community",
+ title: "Interact with LBRY",
+ url: "/community"
+ }
+ ]
+ };
+
+ this.renderLink = this.renderLink.bind(this);
+ }
+
+ createElement(props) {
+ this.state = xtend(this.state, props);
+
+ return html`
+
+ `;
+ }
+
+ renderLink(props, i, arr) { // eslint-disable-line
+ let activeClass;
+
+ if (this.state.href === "/" && props.url === "/") {
+ activeClass = true;
+ } else if (props.url !== "/" && this.state.href.indexOf(props.url) >= 0) {
+ activeClass = true;
+ }
+
+ return html`
+ ${props.name}
+ `;
+ }
+}
diff --git a/app/components/wrapper.js b/app/components/wrapper.js
new file mode 100644
index 0000000..e03917f
--- /dev/null
+++ b/app/components/wrapper.js
@@ -0,0 +1,34 @@
+"use strict";
+
+
+
+// P A C K A G E
+
+import html from "choo/html";
+
+// V A R I A B L E S
+
+import footer from "./footer";
+import Navigation from "./navigation";
+
+const navigation = new Navigation();
+
+
+
+// E X P O R T
+
+module.exports = exports = children => (state, emit) => {
+ return html`
+
+
+
+ ${navigation.render({ href: state.href || "/" })}
+
+ ${children(state, emit)}
+ ${footer(state, emit)}
+
+ `;
+};
diff --git a/public/apple-touch-icon.png b/app/dist/apple-touch-icon.png
similarity index 100%
rename from public/apple-touch-icon.png
rename to app/dist/apple-touch-icon.png
diff --git a/app/dist/bundle.css b/app/dist/bundle.css
new file mode 100644
index 0000000..59c93b7
--- /dev/null
+++ b/app/dist/bundle.css
@@ -0,0 +1 @@
+html{box-sizing:border-box;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}*,*::before,*::after{margin:0;padding:0;box-sizing:inherit;outline:0 !important}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:currentColor;text-decoration:none}*[readonly]{cursor:not-allowed}textarea[disabled]{resize:none}textarea:not[disabled]{resize:vertical}button:not(:disabled){cursor:pointer}button,input,select,textarea{border:none;border-radius:0;font-family:inherit;font-size:inherit;-moz-appearance:none;-webkit-appearance:none}button:focus,input:focus,select:focus,textarea:focus{outline:none}input,select,textarea{background-color:transparent}[type=button],[type=submit]{cursor:pointer}.left{float:left}.right{float:right}iframe{border:0}img{font-size:0;max-width:100%}img::after{width:100%;height:100%;top:-100%;left:0;background-color:#fcfcfc;background-image:url("/assets/media/images/missing.png");background-size:cover;box-shadow:0 0 1px 0 rgba(34,34,34,.3);content:"";display:block;position:relative}@media print{pre,blockquote{border:1px solid #999 !important;page-break-inside:avoid !important}tr,img{page-break-inside:avoid !important}img{max-width:100% !important}@page{margin:.5cm !important}p,h2,h3{orphans:3 !important;widows:3 !important}h2,h3{page-break-after:avoid !important}thead{display:table-header-group !important}*{background:transparent !important;color:#000 !important;text-shadow:none !important;filter:none !important}p a[href]::after{content:" (" attr(href) ")" !important}p abbr[title]::after{content:" (" attr(title) ")" !important}p a[href^="javascript:"]::after,p a[href^="#"]::after{content:"" !important}p a,p abbr{word-wrap:break-word !important;text-decoration:underline !important}}input::-moz-focus-inner,button::-moz-focus-inner{display:none}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fcfcfc inset !important}input:-webkit-autofill:focus{outline:none}.clear{clear:both;content:"";display:block}.hide-text{border:0;color:transparent;font:0/0 a;text-shadow:none}.__button-base,.__button-gray,.__button-white,.__button-black,.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta,.home .features .home__feature__cta,.__button-plain,.__button-basic,.newsletter-cta__submit{border:1px solid;font-size:1rem;letter-spacing:.025rem;position:relative;transition:all .2s}.__button-plain{background-color:transparent;border-color:transparent}.__button-plain::after{width:100%;height:2px;bottom:2px;left:0;content:"";display:block;transition:background-color .2s}.__button-plain:not(:hover)::after{background-color:transparent}.__button-plain:hover::after{background-color:#222}.__button-black:not(:hover),.home .intro .cta:not(:hover),.home .docs .cta:not(:hover),.home .contribute .cta:not(:hover),.home .develop .cta:not(:hover),.home .community .cta:not(:hover),.home .features .home__feature__cta:not(:hover){background-color:#222;border-color:#fcfcfc;box-shadow:2px 2px 0 #fcfcfc;color:#fcfcfc}.__button-black:hover,.home .intro .cta:hover,.home .docs .cta:hover,.home .contribute .cta:hover,.home .develop .cta:hover,.home .community .cta:hover,.home .features .home__feature__cta:hover{background-color:#fcfcfc;border-color:#222;box-shadow:2px 2px 0 #222;color:inherit}.__button-white:not(:hover){background-color:#fcfcfc;border-color:transparent;box-shadow:2px 2px 0 #222;color:inherit}.__button-white:hover{background-color:#222;border-color:#fcfcfc;box-shadow:2px 2px 0 #fcfcfc;color:#fcfcfc}.__button-gray{background-color:#fcfcfc}.__button-gray:not(:hover){border-color:transparent;box-shadow:2px 2px 0 #222}.__button-gray:hover{border-color:#3abf7d;box-shadow:2px 2px 0 #3abf7d;color:#3abf7d}.__button-padding-horizontal,.newsletter-cta__input,.newsletter-cta__submit,.__button-black,.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta,.home .features .home__feature__cta,.__button-white,.__button-gray{padding-right:1rem;padding-left:1rem}.__button-padding-vertical,.newsletter-cta__submit,.__button-black,.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta,.home .features .home__feature__cta,.__button-white,.__button-gray{padding-top:.5rem;padding-bottom:.5rem}.__loading,.tour__content__trends:empty,.tour__content .loader{width:100%;height:10rem;position:relative}.__loading::before,.tour__content__trends:empty::before,.tour__content .loader::before{width:4rem;height:4rem;top:2rem;left:calc(50% - 2rem);animation:spin 2s linear infinite;border-radius:50%;border-style:solid;border-top-color:#3abf7d;border-width:6px;content:"";position:absolute}.__loading::after,.tour__content__trends:empty::after,.tour__content .loader::after{top:7rem;left:0;font-size:1rem;position:absolute;text-align:center;width:100%}@font-face{font-family:"Karla";font-style:normal;font-weight:400;src:local("Karla Regular"),url(https://brick.freetls.fastly.net/fonts/karla/400.woff) format("woff")}@font-face{font-family:"Karla";font-style:italic;font-weight:400;src:local("Karla Italic"),url(https://brick.freetls.fastly.net/fonts/karla/400i.woff) format("woff")}@font-face{font-family:"Karla";font-style:normal;font-weight:700;src:local("Karla Bold"),url(https://brick.freetls.fastly.net/fonts/karla/700.woff) format("woff")}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slide-down{0%{transform:translateY(-4rem)}10%{transform:translateY(2rem)}90%{transform:translateY(2rem)}100%{transform:translateY(-4rem)}}.ecosystem{margin-bottom:2rem;padding-top:1rem;display:grid;font-size:1rem;grid-gap:1rem}.ecosystem:not(.expand-left):not(.expand-right){grid-template-columns:144px auto 144px}.ecosystem:not(.expand-left):not(.expand-right) .ecosystem__submodules{padding-top:2.5rem}.ecosystem.expand-left{grid-template-columns:50% auto}.ecosystem.expand-left .ecosystem__submodules:last-of-type,.ecosystem.expand-left .ecosystem__submodule:not(.active){display:none}@media(min-resolution: 96dpi){.ecosystem.expand-left .ecosystem__submodules:first-of-type{height:383px}}@media(min-resolution: 192dpi){.ecosystem.expand-left .ecosystem__submodules:first-of-type{height:378px}}.ecosystem.expand-right{grid-template-columns:auto 50%}.ecosystem.expand-right .ecosystem__submodules:first-of-type,.ecosystem.expand-right .ecosystem__submodule:not(.active){display:none}@media(min-resolution: 96dpi){.ecosystem.expand-right .ecosystem__submodules:last-of-type{height:383px}}@media(min-resolution: 192dpi){.ecosystem.expand-right .ecosystem__submodules:last-of-type{height:378px}}.ecosystem__module{position:relative;width:100%}.ecosystem__module > *{z-index:1}.ecosystem__module h2{position:relative;width:100%}.ecosystem__module h2 > div{float:right;font-size:1rem;padding-top:1.95rem;padding-right:3rem;position:relative;text-align:right}.ecosystem__module h2 > div::before{font-family:Georgia,serif;top:.9rem;right:3rem;content:"explore";font-size:80%;font-style:italic;opacity:.3;position:absolute;text-align:right;width:100%}.ecosystem__module h2 > div span{cursor:pointer;display:inline-block;position:relative}.ecosystem__module h2 > div span:not(:last-of-type){margin-right:1rem}.ecosystem__module h2 > div span:not(:last-of-type)::after{top:0;right:-0.7rem;color:rgba(163,183,173,.3);content:"/";font-style:italic;position:absolute}.ecosystem__module h3{position:relative}.ecosystem__module::before{width:100%;height:100%;top:0;left:0;content:"";position:absolute;z-index:0}.ecosystem__module:not(.active){align-items:center;display:inline-flex;justify-content:center}.ecosystem__module:not(.active) h2{font-size:1.5rem;text-align:center}.ecosystem__module:not(.active) h2 > span{cursor:pointer;display:block;padding:1.9rem 2rem}.ecosystem__module:not(.active) h2 > span em{display:block;font-size:70%;font-weight:normal}.ecosystem__module:not(.active) h2 > div{display:none}.ecosystem__module:not(.active) .ecosystem__module__details{display:none}.ecosystem__module:not(.active) .__close{top:2rem;transform:rotate(45deg);z-index:0}.ecosystem__module.active{padding:1.9rem 2rem}.ecosystem__module.active h2{font-size:3rem;margin-bottom:1rem}.ecosystem__module.active h2 > span{cursor:default}.ecosystem__module.active h2 > span em{display:none}.ecosystem__module.active::before{background-color:#fcfcfc}.ecosystem__module.active .__close{top:2.35rem;z-index:3}.ecosystem__module.lbrycrd,.ecosystem__module.lbry{margin-bottom:1rem}.ecosystem__module.lbry:not(.active) h2,.ecosystem__module.applications:not(.active) h2{margin-bottom:.5rem}.ecosystem__module.lbry:not(.active) h2::after,.ecosystem__module.applications:not(.active) h2::after{bottom:1rem;left:0;font-size:.5rem;letter-spacing:.1rem;position:absolute;width:100%;z-index:-1}.ecosystem__module.lbrycrd:not(.active)::before{background-color:#db3e3e}.ecosystem__module.lbrycrd.active::before{border:2px solid #db3e3e}.ecosystem__module.lbry:not(.active)::before{background-color:#3e8cdb}.ecosystem__module.lbry:not(.active) h2::after{content:"◼︎◼︎"}.ecosystem__module.lbry.active::before{border:2px solid #3e8cdb}.ecosystem__module.applications:not(.active)::before{background-color:#3edb3e}.ecosystem__module.applications:not(.active) h2::after{content:"◼︎◼︎◼︎◼︎◼︎"}.ecosystem__module.applications.active::before{border:2px solid #3edb3e}.ecosystem__module__piece{background-color:#fcfcfc;left:10%;line-height:2;position:relative;width:80%}.ecosystem__module__piece:not(:last-of-type){margin-bottom:.5rem}.ecosystem__submodule{border-width:2px;cursor:default;position:relative;transition:border-color .2s;z-index:2}.ecosystem__submodule:not(:last-of-type){margin-bottom:1rem}.ecosystem__submodule:not(.on):not(.active){color:rgba(34,34,34,.3)}.ecosystem__submodule:not(.active){align-items:center;display:inline-flex;justify-content:center;width:144px;height:144px;border-radius:50%;border-style:dashed}.ecosystem__submodule:not(.active) .ecosystem__submodule__title{width:100%;height:100%;line-height:140px;text-align:center}.ecosystem__submodule:not(.active) .ecosystem__submodule__description{display:none}.ecosystem__submodule.active{width:100%;height:100%;border-style:solid;overflow-y:auto;padding:2rem}.ecosystem__submodule.active .ecosystem__submodule__title{line-height:1.33;margin-bottom:1rem}.ecosystem__submodule:not(.blue):not(.green):not(.red){border-color:rgba(163,183,173,.3)}.ecosystem__submodule.blue:not(.active),.ecosystem__submodule.green:not(.active),.ecosystem__submodule.red:not(.active){cursor:pointer}.ecosystem__submodule.blue{background-color:rgba(62,140,219,.025);border-color:#3e8cdb}.ecosystem__submodule.green{background-color:rgba(62,219,62,.025);border-color:#3edb3e}.ecosystem__submodule.red{background-color:rgba(219,62,62,.025);border-color:#db3e3e}.ecosystem__submodule__title{font-size:1.15rem}.ecosystem__submodule__description{margin-bottom:2rem}.ecosystem__submodule__description .__close{top:-0.7rem;right:-2rem}.ecosystem__submodule__description__title{color:rgba(34,34,34,.3);letter-spacing:.1rem;text-transform:uppercase}.__parents{top:2rem;right:4rem;font-size:1.15rem;line-height:1.33;list-style-type:none;padding-right:1rem;position:absolute;z-index:1}.__parents::before,.__parents::after{position:absolute}.__parents::before{font-family:Georgia,serif;top:.3rem;left:-3.4rem;color:rgba(34,34,34,.3);content:"back to";font-size:.8rem;font-style:italic;font-weight:700}.__parents::after{width:2px;height:100%;top:0;right:0;background-color:rgba(34,34,34,.3);content:""}.__parent{font-weight:700}.__parent:not(.active){display:none}.__parent.active{cursor:pointer}.__close{cursor:pointer;font-size:2rem;position:absolute;right:2rem;transition:all .2s}.newsletter-cta{background-color:rgba(34,34,34,.2);padding-top:1rem;padding-bottom:1rem;text-align:center}.newsletter-cta > div:first-of-type{margin-right:auto;margin-left:auto}@media(min-width: 551px){.newsletter-cta > div:first-of-type{width:500px}}@media(max-width: 550px){.newsletter-cta > div:first-of-type{width:90%}}.newsletter-cta::after{clear:both;content:"";display:block}.newsletter-cta__title{font-size:.8rem;letter-spacing:.05rem;margin-bottom:.75rem;text-transform:uppercase}.newsletter-cta__input,.newsletter-cta__submit{border-style:solid;border-width:1px}@media(max-width: 550px){.newsletter-cta__input,.newsletter-cta__submit{width:100%}}.newsletter-cta__input{background-color:#fcfcfc;font-size:1rem;height:38px;transition:border .2s}@media(min-width: 551px){.newsletter-cta__input{float:left;width:calc(100% - 112px)}}@media(max-width: 550px){.newsletter-cta__input{text-align:center}}.newsletter-cta__input:not(:focus){border-top-color:#222;border-left-color:#222}@media(min-width: 551px){.newsletter-cta__input:not(:focus){border-bottom-color:#222;border-right-color:transparent}}@media(max-width: 550px){.newsletter-cta__input:not(:focus){border-bottom-color:transparent;border-right-color:#222}}.newsletter-cta__input:focus{border-top-color:#35a06b;border-left-color:#35a06b}@media(min-width: 551px){.newsletter-cta__input:focus{border-bottom-color:#35a06b;border-right-color:transparent}}@media(max-width: 550px){.newsletter-cta__input:focus{border-bottom-color:transparent;border-right-color:#35a06b}}.newsletter-cta__submit{color:#fcfcfc}@media(min-width: 551px){.newsletter-cta__submit{width:112px;height:38px;float:right;left:-1px}}@media(max-width: 550px){.newsletter-cta__submit{display:block;top:-1px}}.newsletter-cta__submit:not(:hover){background-color:#222;border-color:#222}.newsletter-cta__submit:hover{background-color:#3abf7d;border-color:#35a06b}.newsletter-cta__message{clear:both;content:"";display:block;background-color:#3abf7d;color:#fcfcfc;font-size:1rem;text-align:center}.newsletter-cta__message:not(:empty){padding:1rem}.feature-links{display:grid;grid-gap:2rem;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));list-style-type:none;padding-top:.5rem}.feature-link{width:320px;min-height:135px;background-color:#fcfcfc;border:1px solid rgba(34,34,34,.1);border-radius:3px;cursor:pointer;display:inline-block;position:relative;transition:box-shadow .2s;vertical-align:top}.feature-link > div:first-of-type{top:85px;left:5%;position:relative;text-align:center;width:90%;z-index:1}.feature-link:not(:hover) .feature-link__background{filter:brightness(0.5)}.feature-link:hover{box-shadow:0 0 15px rgba(34,34,34,.15)}.feature-link:hover .feature-link__title{color:#3abf7d}.feature-link__title{background-color:#fcfcfc;border:1px solid rgba(128,128,128,.1);box-shadow:0 2px 5px rgba(34,34,34,.025);border-radius:3px;box-decoration-break:clone;display:inline;font-size:1rem;line-height:1.7;padding:.25rem .5rem;transition:color .2s;position:relative}.feature-link__background{width:calc(100% + 2px);height:100px;top:-1px;left:-1px;background-color:#3abf7d;border-top-right-radius:3px;border-top-left-radius:3px;transition:filter .2s;overflow:hidden;position:absolute;z-index:0}.feature-link__background img{width:100%;height:100%;object-fit:cover;object-position:center}.flashes{top:4rem;right:0;position:absolute;width:100%;z-index:9}.flash{border:2px solid;border-radius:3px;font-size:1rem;line-height:1.33;padding:.5rem 1rem;position:absolute;right:2rem}.flash:not(.error):not(.info):not(.warning){background-color:#e9f6ef;border-color:#3abf7d}.flash:not(.active){transform:translateY(-4rem)}.flash.active{animation:slide-down 2s linear;transform:translateY(-4rem)}.flash.error{background-color:#f9e9e9;border-color:#db3e3e}.flash.info{background-color:#f3f5f4;border-color:#a3b7ad}.flash.warning{background-color:#f9f9e9;border-color:#dbdb3e}.footer{background-color:#222;color:rgba(252,252,252,.15);font-size:1rem;padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);position:relative}@media(max-width: 980px){.footer::before{width:3rem;height:100%;bottom:0;right:0;background-image:linear-gradient(90deg, rgba(34, 34, 34, 0), #222 50%, #222);content:"";position:absolute;z-index:2}}@media(max-width: 980px){.footer > div:first-of-type{overflow:auto;overflow-scrolling:touch;white-space:nowrap;width:100%}}.footer ul{list-style-type:none;padding-top:2rem;padding-bottom:2rem}@media(min-width: 981px){.footer ul{align-items:stretch;display:flex;flex-flow:row wrap}}.footer ul li{padding-right:.5rem;padding-left:.5rem;vertical-align:bottom}@media(max-width: 980px){.footer ul li{display:inline-block;transform:translate3d(0, 0, 0);transition:opacity .2s .2s ease,transform .4s .2s cubic-bezier(0.215, 0.61, 0.355, 1)}.footer ul li:last-of-type{margin-right:3rem}}.footer ul li:first-of-type{flex:1}.footer a{transition:color .2s}.footer a:not(:hover){color:#fcfcfc}.footer a:hover{color:#3abf7d}.github-feed{border-bottom:1px solid rgba(34,34,34,.05);border-left:1px solid rgba(34,34,34,.05);font-size:.8rem;grid-area:github;position:relative}@media(min-width: 1301px){.github-feed{padding-top:3.7rem}}@media(min-width: 1001px)and (max-width: 1300px){.github-feed{padding-top:2.95rem}}@media(min-width: 1001px){.github-feed{padding-bottom:2rem;padding-right:10%;padding-left:2rem}}@media(max-width: 1000px){.github-feed{padding-top:2rem;padding-bottom:2rem}}@media(min-width: 901px)and (max-width: 1000px){.github-feed{padding-right:1rem;padding-left:1rem}}@media(max-width: 900px){.github-feed{padding-right:2rem;padding-left:2rem}}@media(max-width: 700px){.github-feed{overflow-x:auto;overflow-y:hidden;white-space:nowrap}}@media(min-width: 1001px){.github-feed h3,.github-feed h5{text-align:center}}.github-feed h3{letter-spacing:.1rem;line-height:1;text-transform:uppercase;width:100%}@media(min-width: 1301px){.github-feed h3{top:2.15rem;left:0;color:rgba(34,34,34,.045);font-size:4rem;position:absolute}}@media(max-width: 1300px){.github-feed h3{color:#222}}@media(min-width: 901px)and (max-width: 1300px){.github-feed h3{font-size:3rem}}@media(max-width: 900px){.github-feed h3{font-size:2rem;margin-bottom:1rem}}.github-feed h5{font-style:italic;font-weight:normal}@media(min-width: 1001px){.github-feed h5{margin-bottom:3rem}}@media(min-width: 901px)and (max-width: 1000px){.github-feed h5{margin-bottom:2rem}}@media(max-width: 900px){.github-feed h5{margin-bottom:.5rem;position:relative;top:-1rem}}.github-feed__event{line-height:1.55}@media(max-width: 700px){.github-feed__event{display:inline-block;margin-right:1.25rem;vertical-align:top;width:200px}}@media(min-width: 701px){.github-feed__event:not(:last-of-type){margin-bottom:1.25rem}}.github-feed__event > a:first-of-type{font-weight:700;margin-bottom:.5rem;width:100%}@media(max-width: 700px){.github-feed__event > p:first-of-type{box-shadow:0 2px 5px rgba(34,34,34,.025)}}.github-feed__event > p:first-of-type code{background-color:#222;border-radius:3px;color:#fcfcfc;font-size:80%;letter-spacing:.05rem;padding:.2rem .5rem;position:relative;top:-1px}.github-feed__event > p:first-of-type em:not(.github-feed__event__time){text-decoration:underline}@media(min-width: 701px){.github-feed__event > p:first-of-type{display:inline-block;margin-left:.5rem;vertical-align:top;width:calc(100% - 4.5rem)}}@media(max-width: 700px){.github-feed__event > p:first-of-type{top:-3.5rem;left:5%;background-color:#fcfcfc;border:1px solid rgba(163,183,173,.1);border-radius:3px;padding:1rem;position:relative;white-space:normal;width:90%}}.github-feed__event__avatar{border:1px solid rgba(163,183,173,.1);border-radius:3px;object-position:center;object-fit:cover}@media(min-width: 701px){.github-feed__event__avatar{width:2.5rem;height:2.5rem}}@media(max-width: 700px){.github-feed__event__avatar{width:100%;height:100%}}.github-feed__event__time{color:#a3b7ad;display:block}@media(max-width: 700px){.github-feed__event__time{padding-top:1rem}}.glossary:not(.sidebar-closed) main{margin-left:250px;width:calc(100vw - 250px)}.glossary:not(.sidebar-closed) .page__header-wrap .inner-wrap,.glossary:not(.sidebar-closed) .page__content .inner-wrap{margin-left:1rem;max-width:initial}.glossary:not(.sidebar-closed) .component--glossary-toc-toggle{left:calc(250px - 25px)}.glossary.sidebar-closed .component--glossary-toc{left:-250px}.glossary.sidebar-closed .component--glossary-toc-toggle{left:0}.component--glossary-toc{width:250px;height:calc(100vh - 4rem);top:4rem;left:0;background-color:#fcfcfc;border-right:1px solid rgba(163,183,173,.3);font-size:.8rem !important;overflow-x:hidden;overflow-y:auto;padding-top:1rem !important;position:fixed !important;z-index:1}.component--glossary-toc li:last-of-type{margin-bottom:1rem}.component--glossary-toc-toggle{width:25px;height:104px;font-size:.7rem;position:absolute;text-orientation:upright;text-transform:uppercase;top:4rem;writing-mode:vertical-rl;z-index:1}.navigation{top:0;left:0;background-color:#fcfcfc;box-shadow:0 1px 5px rgba(34,34,34,.1);padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);position:fixed;width:100%;z-index:10}.navigation > div:first-of-type{position:relative}@media(min-width: 701px){.navigation > div:first-of-type{align-items:stretch;display:flex;flex-flow:row wrap}}@media(max-width: 700px){.navigation > div:first-of-type{overflow:auto;overflow-scrolling:touch;white-space:nowrap;width:100%}.navigation > div:first-of-type::before{width:2rem;height:4rem;top:0;right:0;background-image:linear-gradient(90deg, rgba(252, 252, 252, 0), #fcfcfc 50%, #fcfcfc);content:"";position:fixed;z-index:2}}.navigation__item{overflow:hidden;position:relative}@media(max-width: 700px){.navigation__item{display:inline-block;transform:translate3d(0, 0, 0);transition:opacity .2s .2s ease,transform .4s .2s cubic-bezier(0.215, 0.61, 0.355, 1);vertical-align:top}.navigation__item:last-of-type{margin-right:3rem}}.navigation__item:first-of-type{border:0;color:transparent;font:0/0 a;text-shadow:none;width:10rem;height:3rem;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 320 250' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill='%23222' d='M296.05, 85.9l0, 14.1l-138.8, 85.3l-104.6, -51.3l0.2, -7.9l104, 51.2l132.2, -81.2l0, -5.8l-124.8, -60.2l-139.2, 86.1l0, 38.5l131.8, 65.2l137.6, -84.4l3.9, 6l-141.1, 86.4l-139.2, -68.8l0, -46.8l145.8, -90.2l132.2, 63.8Z'/%3E %3Cpath d='M294.25, 150.9l2, -12.6l-12.2, -2.1l0.8, -4.9l17.1, 2.9l-2.8, 17.5l-4.9, -0.8Z'/%3E %3C/svg%3E");background-repeat:no-repeat;background-size:contain;flex:1;top:.5rem}.navigation__item:not(:first-of-type):not([href="https://lbry.io"])::after{width:100%;height:3px;background-color:#3abf7d;content:"";left:0;position:absolute;transition:bottom .2s}.navigation__item:not(:first-of-type):not([href="https://lbry.io"]):not(:hover)::after{bottom:-3px}.navigation__item:not(:first-of-type):not([href="https://lbry.io"]):hover::after,.navigation__item:not(:first-of-type):not([href="https://lbry.io"]).active::after{bottom:0}.navigation__item:not(:first-of-type){color:inherit;font-size:1rem;line-height:4rem}.navigation__item:not([href="https://lbry.io"]){padding-right:.5rem;padding-left:.5rem}.navigation__item[href="https://lbry.io"]{color:#fcfcfc;margin-right:.5rem;padding-right:1rem;padding-left:1rem}.navigation__item[href="https://lbry.io"]:not(:hover)::after{background-color:#222}.navigation__item[href="https://lbry.io"]:hover::after{background-color:#3abf7d}.navigation__item[href="https://lbry.io"]::after{width:100%;height:2rem;top:1rem;left:0;border-radius:3px;content:"";position:absolute;transition:background-color .2s;z-index:-1}.component--mission-statement{margin-bottom:1.5rem;padding:1rem 1rem 1rem 1.25rem;background-color:rgba(58,191,125,.1);border-left:.5rem solid #3abf7d;line-height:1.55;position:relative}@media(min-width: 901px){.component--mission-statement{font-size:1.25rem}}@media(max-width: 900px){.component--mission-statement{font-size:1.05rem}}.component--mission-statement__title{color:#3abf7d;display:block;letter-spacing:.025rem;text-transform:uppercase}.modal{align-items:center;display:inline-flex;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:rgba(34,34,34,.5);position:fixed;z-index:10}@media(min-width: 901px){.modal h3{font-size:1.5rem;margin-bottom:.25rem}}@media(max-width: 900px){.modal h3{font-size:1.25rem}}.modal p{margin-bottom:1rem}@media(min-width: 901px){.modal p{font-size:1.15rem;line-height:1.33}}@media(max-width: 900px){.modal p{font-size:1.05rem;line-height:1.55}}.modal p a{color:#3abf7d}.modal-wrap{background-color:#fcfcfc;padding:2rem 1.5rem}@media(min-width: 501px){.modal-wrap{width:500px}}@media(max-width: 500px){.modal-wrap{width:100%}}html,body{width:100%;height:100%}html{background-color:#fcfcfc}body{font-family:Karla,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";color:#222;font-size:12px;min-width:320px;overflow-x:hidden;position:relative;z-index:0}body:not(.home) main > div:first-of-type{flex:1}@media(min-width: 1001px){body.home main > div:first-of-type{display:grid;grid-gap:0;grid-template-areas:"header header header" "features features features" "intro intro github" "docs docs github" "contribute contribute contribute" "develop develop develop" "community community community"}}main{display:flex;flex-direction:column;min-height:100vh;padding-top:4rem}.inner-wrap{margin-right:auto;margin-left:auto;max-width:1200px}@media(min-width: 901px){.inner-wrap{padding-right:1rem;padding-left:1rem}}@media(max-width: 900px){.inner-wrap{padding-right:2rem;padding-left:2rem}}.inner-wrap::after{clear:both;content:"";display:block}h1 .header-anchor,h2 .header-anchor,h3 .header-anchor,h4 .header-anchor,h5 .header-anchor{display:none}hr{width:100%;height:1px;background-color:rgba(163,183,173,.3);border:none;margin-bottom:1rem}.alert{bottom:0;left:0;background-color:#dbdb3e;line-height:1.33;padding-top:1rem;padding-right:env(safe-area-inset-right);padding-bottom:1rem;padding-left:env(safe-area-inset-left);position:fixed;text-align:left;width:100%;z-index:3}.alert > div:first-of-type{position:relative}@media(min-width: 901px){.alert{font-size:1rem}}@media(max-width: 900px){.alert{font-size:.8rem}}.alert p,.alert button{display:inline-block}.alert p{padding-right:1rem;width:calc(100% - 2.25rem)}.alert a{font-weight:600;text-decoration:underline}.alert button{width:1.25rem;height:1.25rem;top:0;right:0;background-color:#fcfcfc;border-radius:50%;display:block;font-size:1rem;line-height:1;margin-right:1rem;margin-left:1rem;position:absolute;text-align:center}.__slate{width:100%;height:100%;position:relative}.__slate::after{clear:both;content:"";display:block}.api__toc{width:200px;height:calc(100vh - 4rem);top:4rem;left:0;bottom:0;background-color:#fcfcfc;border-right:1px solid rgba(163,183,173,.3);float:left;overflow-x:hidden;overflow-y:auto;position:fixed;z-index:3}.api__toc__search{position:relative}.api__toc__search__field{border-bottom:1px solid rgba(163,183,173,.3);font-size:.8rem;line-height:2rem;padding:.25rem calc(2rem + 4px) .25rem .75rem;width:100%}.api__toc__search__clear{width:1.25rem;height:1.25rem;top:.6rem;right:.75rem;background-color:#222;border-radius:50%;color:#fcfcfc;cursor:pointer;font-size:1rem;line-height:1.15;position:absolute;text-align:center;transition:opacity .2s}.api__toc__search__clear:not(.active){opacity:0;visibility:hidden}.api__toc__search__clear.active{opacity:1;visibility:visible}.api__toc__items{font-size:.8rem;line-height:1.33;list-style-type:none;padding-top:.25rem;padding-bottom:.25rem}.api__toc__item:hover{background-color:rgba(163,183,173,.3)}.api__toc__item a{display:block;padding:.25rem .5rem .25rem .75rem}.api__content{display:grid;float:right;grid-template-columns:repeat(auto-fit, minmax(50%, 1fr));width:calc(100% - 200px)}.api__content h1{font-size:1.5rem;margin-bottom:.5rem}.api__content h2{font-size:1.5rem;margin-bottom:.5rem}.api__content h3{font-size:.8rem;letter-spacing:.1rem;margin-bottom:.25rem;text-transform:uppercase}.api__content p,.api__content ol,.api__content ul{font-size:1rem;line-height:1.5;margin-bottom:1rem}.api__content table{border:1px solid rgba(252,252,252,.1);border-radius:.3rem;border-spacing:0;font-size:.8rem;line-height:1.33;width:100%}.api__content thead{display:none}.api__content th,.api__content td{padding:.5rem 1rem .5rem .5rem}.api__content th{border-bottom:1px solid rgba(252,252,252,.1)}.api__content tr:nth-child(even){background-color:rgba(252,252,252,.1)}.api__content pre{margin-bottom:2rem;padding:1rem;border-radius:.3rem;font-size:.8rem;line-height:1.33;overflow-x:auto;overflow-y:hidden}.api__content__body{border-bottom:1px solid rgba(163,183,173,.3);padding:2rem}.api__content__body pre{border:1px solid rgba(163,183,173,.3)}.api__content__body__arguments{border:1px solid rgba(163,183,173,.3);border-radius:3px;list-style-type:none}.api__content__body__argument:not(:last-of-type){border-bottom:1px solid rgba(163,183,173,.3)}.api__content__body__argument:nth-child(even){background-color:rgba(163,183,173,.1)}.api__content__body__argument .left,.api__content__body__argument .right{padding:.5rem .75rem}.api__content__body__argument .left{border-right:1px solid rgba(163,183,173,.3);width:30%;word-wrap:break-word}.api__content__body__argument .left span{color:#a3b7ad;font-size:.8rem}.api__content__body__argument .left span:not(:first-of-type){margin-left:.5rem}.api__content__body__argument .right{width:70%}.api__content__body__argument::after{clear:both;content:"";display:block}.api__content__example{background-color:#2f3130;border-bottom:1px solid rgba(252,252,252,.1);color:#fcfcfc;padding:2rem}.api__content__example pre{background-color:#222}.contributing table th:first-of-type{width:30%}.contributing table th:nth-of-type(2){width:20%}.documentation ol + h1,.documentation ul + h1{padding-top:2rem}.documentation h4 + h2{padding-top:2rem}.documentation .blog-posts{list-style-type:none}.documentation .blog-post{position:relative}.documentation .blog-post::before{background-color:#222;border-radius:50%;content:"";line-height:0;position:absolute}@media(min-width: 901px){.documentation .blog-post::before{width:7px;height:7px;top:14px;left:-1.05rem}}@media(max-width: 900px){.documentation .blog-post::before{width:6px;height:6px;top:11px;left:-0.95rem}}.documentation .blog-post__title{line-height:1.33}.documentation .blog-post__title::after{content:"";display:block}.documentation .blog-post__meta{font-size:80%;line-height:1;margin-bottom:1rem}.documentation .blog-post__meta__author::before{content:"by"}@media(min-width: 901px){.documentation .blog-post__meta__author::before{left:-1.2rem}}@media(max-width: 900px){.documentation .blog-post__meta__author::before{left:-1rem}}@media(min-width: 901px){.documentation .blog-post__meta__date{margin-right:1.4rem;margin-left:3.1rem}}@media(max-width: 900px){.documentation .blog-post__meta__date{margin-right:1.2rem;margin-left:2.6rem}}.documentation .blog-post__meta__date::before{content:"posted"}@media(min-width: 901px){.documentation .blog-post__meta__date::before{left:-3.1rem}}@media(max-width: 900px){.documentation .blog-post__meta__date::before{left:-2.6rem}}.documentation .blog-post__meta__author,.documentation .blog-post__meta__date{display:inline-block;position:relative}.documentation .blog-post__meta__author::before,.documentation .blog-post__meta__date::before{color:rgba(34,34,34,.5);font-style:italic;position:absolute;vertical-align:bottom}.home{padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}.home h2{font-weight:normal;margin-bottom:4rem;text-align:center}@media(min-width: 851px){.home h2{font-size:1.75rem}}@media(max-width: 850px){.home h2{font-size:1.25rem}}.home hr{width:100%;height:1px;background-color:rgba(34,34,34,.1);border:none;margin-bottom:4rem}.home .hero{align-items:center;background-color:#222;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 800 300' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill='%23fcfcfc' d='M567.328, 43.44l72.864, 130.464l0, 82.656l46.944, 0l0, -82.656l72.576, -130.464l-50.688, 0l-44.64, 84.672l-44.64, -84.672l-52.416, 0Z'/%3E %3Cpath fill='%23fcfcfc' d='M520.672, 173.616c22.464, -10.656 34.848, -31.968 34.848, -61.056c0, -44.64 -26.496, -68.832 -81.216, -69.12l-82.368, 0l0, 213.12l46.656, 0l0, -75.168l35.136, 0l31.392, 75.168l52.416, 0l-36.864, -82.944Zm-46.656, -32.544l-35.424, 0l0, -56.448l35.712, 0c23.904, 0 31.968, 12.96 31.968, 27.936c0, 15.264 -8.352, 28.512 -32.256, 28.512Z'/%3E %3Cpath fill='%23fcfcfc' d='M328.864, 150.576c15.552, -7.2 28.512, -23.04 28.512, -48.096c0, -34.848 -25.344, -58.464 -67.104, -58.464l-43.776, 0l-46.368, 0l0, 212.544l89.568, 0c42.048, 0 70.272, -19.584 70.272, -55.872c0, -26.784 -14.976, -42.048 -31.104, -50.112Zm-43.776, -67.104c19.008, 0 25.92, 14.112 25.92, 25.344c0, 11.808 -7.2, 24.768 -25.92, 24.768l-38.592, 0l0, -50.112l38.592, 0Zm2.592, 133.632l-41.184, 0l0, -49.248l41.184, 0c15.264, 0 26.208, 10.08 26.208, 25.056c0, 14.976 -10.656, 24.192 -26.208, 24.192Z'/%3E %3Cpath fill='%23fcfcfc' d='M87.52, 214.8l0, -171.36l-47.232, 0l0, 213.12l130.752, 0l0, -41.76l-83.52, 0Z'/%3E %3C/svg%3E");background-position:center;background-repeat:no-repeat;display:flex;grid-area:header;height:calc(50vh - 4rem);min-height:300px;justify-content:center}@media(max-width: 850px){.home .hero{background-size:cover}}.home .hero h1{background-color:#fcfcfc;border:1px solid rgba(34,34,34,.1);box-decoration-break:clone;display:inline;font-weight:normal;line-height:2;padding:.4rem 1rem;-webkit-box-decoration-break:clone}@media(min-width: 851px){.home .hero h1{font-size:1.75rem}}@media(max-width: 850px){.home .hero h1{font-size:1.25rem}}.home .features{grid-area:features}.home .features .home__features{align-content:center;border-bottom:1px solid rgba(34,34,34,.05);display:flex;flex-flow:row wrap;list-style-type:none;padding-top:2rem;padding-bottom:2rem}.home .features .home__feature{position:relative;text-align:center;vertical-align:top}@media(min-width: 651px){.home .features .home__feature{width:50%}}@media(max-width: 650px){.home .features .home__feature{width:100%}.home .features .home__feature:first-of-type{padding-bottom:1rem}.home .features .home__feature:last-of-type{padding-top:1rem}}.home .features .home__feature__title{font-size:2rem;margin-bottom:.5rem}.home .features .home__feature__description{font-size:1rem;left:10%;margin-bottom:1rem;position:relative;width:80%}.home .features .home__feature__cta{display:inline-block;font-size:1rem;position:relative}.home .intro,.home .docs,.home .contribute,.home .develop,.home .community{padding-top:3rem;padding-bottom:3.5rem}.home .intro .inner-wrap,.home .docs .inner-wrap,.home .contribute .inner-wrap,.home .develop .inner-wrap,.home .community .inner-wrap{position:relative}.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{letter-spacing:.1rem;line-height:1;text-transform:uppercase}@media(min-width: 1301px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{top:-0.85rem;left:-2rem;color:rgba(34,34,34,.045);font-size:4rem;position:absolute}}@media(max-width: 1300px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{color:#222}}@media(min-width: 901px)and (max-width: 1300px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{font-size:3rem}}@media(max-width: 900px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{font-size:2rem;margin-bottom:1rem}}.home .intro p,.home .docs p,.home .contribute p,.home .develop p,.home .community p{margin-bottom:1.5rem;max-width:1000px}@media(min-width: 901px){.home .intro p,.home .docs p,.home .contribute p,.home .develop p,.home .community p{font-size:1.5rem;line-height:1.55}}@media(max-width: 900px){.home .intro p,.home .docs p,.home .contribute p,.home .develop p,.home .community p{font-size:1.25rem;line-height:1.33}}.home .intro p:first-of-type,.home .docs p:first-of-type,.home .contribute p:first-of-type,.home .develop p:first-of-type,.home .community p:first-of-type{padding-top:.5rem}.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta{top:.5rem}.home .intro,.home .docs,.home .contribute,.home .develop{border-bottom:1px solid rgba(34,34,34,.05)}@media(min-width: 1301px){.home .intro,.home .docs{padding-left:10%}}.home .intro{grid-area:intro}.home .docs{grid-area:docs}@media(min-width: 1301px){.home .community p,.home .contribute p{margin-right:auto;margin-left:auto;text-align:center}}.home .community ul,.home .contribute ul{list-style-type:none;padding-top:1rem}.home .community ul::after,.home .contribute ul::after{clear:both;content:"";display:block}@media(min-width: 901px){.home .community ul,.home .contribute ul{font-size:1.5rem}}@media(min-width: 751px)and (max-width: 900px){.home .community ul,.home .contribute ul{font-size:1.25rem}}@media(max-width: 750px){.home .community ul,.home .contribute ul{font-size:1rem}}.home .community ul li,.home .contribute ul li{float:left;position:relative;text-align:center}@media(max-width: 750px){.home .community ul li,.home .contribute ul li{margin-bottom:2rem;min-width:8rem}}.home .community ul li a,.home .contribute ul li a{display:block;position:relative;padding-top:4rem;transition:color .2s}.home .community ul li a::before,.home .contribute ul li a::before{width:100%;height:100%;background-position:center 0;background-repeat:no-repeat;content:"";left:0;position:absolute}.home .community ul li a:not(:hover),.home .contribute ul li a:not(:hover){color:inherit}.home .community ul li a:hover,.home .contribute ul li a:hover{color:#3abf7d}.home .contribute{grid-area:contribute}@media(min-width: 701px){.home .contribute ul li{width:calc(100% / 5)}}@media(max-width: 700px){.home .contribute ul li{width:50%}}@media(min-width: 901px){.home .contribute ul li a::before{background-size:4rem;top:-1rem}}@media(max-width: 900px){.home .contribute ul li a::before{background-size:3rem;top:0}}.home .contribute ul li:nth-child(1) a::before{background-image:url("/assets/media/svg/flag.svg")}.home .contribute ul li:nth-child(2) a::before{background-image:url("/assets/media/svg/keyboard.svg")}.home .contribute ul li:nth-child(3) a::before{background-image:url("/assets/media/svg/anchor.svg")}.home .contribute ul li:nth-child(4) a::before{background-image:url("/assets/media/svg/chat.svg")}.home .contribute ul li:nth-child(5) a::before{background-image:url("/assets/media/svg/monitor.svg")}.home .develop{grid-area:develop}.home .community{grid-area:community}@media(min-width: 701px){.home .community ul li{width:50%}}@media(max-width: 700px){.home .community ul li{width:50%}}@media(min-width: 901px){.home .community ul li a::before{background-size:6rem;top:-2rem}}@media(max-width: 900px){.home .community ul li a::before{background-size:4rem;top:-0.5rem}}.home .community ul li:nth-child(1) a::before{background-image:url("/assets/media/svg/discord.svg")}.home .community ul li:nth-child(2) a::before{background-image:url("/assets/media/svg/reddit.svg")}.home .community ul li:nth-child(3) a::before{background-image:url("/assets/media/svg/slack.svg")}.page{display:flex;flex:1;flex-direction:column;height:100%}.page__header-wrap{width:100%}.page__header{align-items:center;display:inline-flex;justify-content:center;background-position:center;background-repeat:no-repeat;background-size:cover;color:#fcfcfc;padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);position:relative;width:100%}.page__header__title{font-weight:300;text-shadow:1px 1px 2px rgba(34,34,34,.3)}@media(min-width: 901px){.page__header__title{font-size:3rem;line-height:6.5rem}}@media(max-width: 900px){.page__header__title{font-size:2rem;line-height:1;padding-top:1rem;padding-bottom:1rem}}.page__content{background-repeat:repeat;background-size:32px;flex:1;padding-top:2rem;padding-bottom:2rem;padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}.page__content h1{margin-bottom:.25rem}@media(min-width: 901px){.page__content h1{font-size:3rem}}@media(max-width: 900px){.page__content h1{font-size:2rem}}.page__content h1 + h2{margin-bottom:2rem}@media(min-width: 901px){.page__content h2:not(.__title){font-size:2rem}}@media(max-width: 900px){.page__content h2:not(.__title){font-size:1.5rem}}.page__content h2:not(.__title) + h3{margin-bottom:1rem;padding-top:.25rem}@media(min-width: 901px){.page__content h3:not(.ecosystem__submodule__title){font-size:1.5rem}}@media(max-width: 900px){.page__content h3:not(.ecosystem__submodule__title){font-size:1.25rem}}.page__content h3:not(.ecosystem__submodule__title) + table{top:.25rem}.page__content h4:not(.ecosystem__submodule__description__title){letter-spacing:.05rem;text-transform:uppercase}@media(min-width: 901px){.page__content h4:not(.ecosystem__submodule__description__title){font-size:1.25rem}}@media(max-width: 900px){.page__content h4:not(.ecosystem__submodule__description__title){font-size:1.15rem}}.page__content h5{font-size:1rem}.page__content sup{font-family:"Courier New",monospace}.page__content blockquote{left:2px;line-height:1.5;margin-bottom:.5rem;position:relative}@media(min-width: 601px){.page__content blockquote{margin-left:15%;padding:.5rem 0 .05rem 2rem;font-size:1.5rem;width:70%}}@media(max-width: 600px){.page__content blockquote{font-size:1.25rem;padding:.5rem 0 .05rem 0}}@media(min-width: 376px)and (max-width: 600px){.page__content blockquote{margin-left:5%;width:90%}}.page__content blockquote p{font-size:inherit;line-height:inherit}.page__content blockquote::before{font-family:Georgia,serif;width:150px;height:100px;top:3rem;left:-2rem;color:rgba(58,191,125,.2);content:"“";font-size:20rem;line-height:.5;position:absolute}.page__content p code,.page__content ol code,.page__content ul:not(.overview__ecosystem__module) code,.page__content table code{background-color:#222;border-radius:3px;color:#fcfcfc;font-size:60%;letter-spacing:.05rem;padding:.3rem .5rem;vertical-align:middle}@media(max-width: 900px){.page__content p code,.page__content ol code,.page__content ul:not(.overview__ecosystem__module) code,.page__content table code{position:relative;top:-1px}}.page__content p,.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents){margin-bottom:1rem;position:relative}@media(min-width: 901px){.page__content p,.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents){font-size:1.25rem;line-height:1.6}}@media(max-width: 900px){.page__content p,.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents){font-size:1.05rem;line-height:1.55}}.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar){padding-top:.5rem}.page__content ol li:not(:last-of-type),.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) li:not(:last-of-type){margin-bottom:.25rem}.page__content ol + h2,.page__content ol + h3,.page__content ol + h4,.page__content ol + h5,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h2,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h3,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h4,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h5{padding-top:2rem}.page__content ol{list-style-type:lower-roman;padding-left:1.6rem}.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar){padding-left:1.25rem}.page__content p img{float:right}.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain){background-image:linear-gradient(#fcfcfc, #fcfcfc),linear-gradient(#fcfcfc, #fcfcfc),linear-gradient(#3abf7d, #3abf7d);background-position:0 88%,100% 88%,0 88%;background-repeat:no-repeat,no-repeat,repeat-x;background-size:.05rem 1px,.05rem 1px,1px 1px;box-decoration-break:clone;display:inline;text-decoration:none;text-shadow:.03rem 0 #fcfcfc,-0.03rem 0 #fcfcfc,0 .03rem #fcfcfc,0 -0.03rem #fcfcfc,.06rem 0 #fcfcfc,-0.06rem 0 #fcfcfc,.09rem 0 #fcfcfc,-0.09rem 0 #fcfcfc,.12rem 0 #fcfcfc,-0.12rem 0 #fcfcfc,.15rem 0 #fcfcfc,-0.15rem 0 #fcfcfc;color:#3abf7d}.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain)::selection{background-color:#3abf7d;color:#fcfcfc;text-shadow:none}.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain)::-moz-selection{background-color:#3abf7d;color:#fcfcfc;text-shadow:none}@-moz-document url-prefix(){.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain){background-position:0 90%,100% 90%,0 90%}}.page__content pre{margin-bottom:2rem;padding:2rem;border-radius:3px;font-size:1rem;line-height:1.33;overflow-x:auto;overflow-y:hidden}.page__content pre:not([class]),.page__content pre.language-text{background-color:#27283e;color:#fcfcfc}.page__content pre.language-yaml{background-color:#27273f;color:#ffe066}.page__content pre.language-yaml .atrule{color:#f083ac}.page__content pre.language-yaml .important{color:#ffa94d}.page__content pre.language-yaml .punctuation{color:#fcfcfc}.page__content table{background-color:#fcfcfc;border:1px solid rgba(163,183,173,.3);border-spacing:0;margin-bottom:2rem;position:relative;width:100%}@media(max-width: 1030px){.page__content table{display:inline-grid}.page__content table thead{display:none}.page__content table tbody,.page__content table tr,.page__content table td{display:block}.page__content table tbody tr:last-of-type td:not(:last-of-type){border-bottom:1px solid rgba(163,183,173,.3)}}.page__content table thead{background-color:#222;color:#fcfcfc;cursor:default;position:relative}.page__content table thead tr{position:relative;z-index:1}.page__content table thead:not(*:root)::after{z-index:-1}.page__content table thead::after{width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px;background-color:#222;content:"";position:absolute;z-index:0}.page__content table tbody{line-height:1.55}.page__content table tr:nth-of-type(even){background-color:rgba(34,34,34,.025)}.page__content table th,.page__content table td{padding:.5rem 1rem}.page__content table th{font-size:.8rem;letter-spacing:.1rem;text-transform:uppercase}.page__content table tbody tr:not(:last-of-type) td{border-bottom:1px solid rgba(163,183,173,.3)}.page__content table td{font-size:1rem}.page__header{background-color:#222}.page__content{background-image:url("/assets/media/images/grid.png")}.tour{border-top:1px solid rgba(34,34,34,.05);position:relative;top:1rem}.tour.waiting::before{top:0;right:0;bottom:0;left:0;background-color:rgba(252,252,252,.7);content:"";cursor:url("/assets/media/svg/watch--green.svg"),auto;position:absolute;z-index:5}.tour::after{clear:both;content:"";display:block}.tour__sidebar{width:250px;height:100%;float:left;list-style-type:none;padding-top:1rem;padding-right:1rem;vertical-align:top}.tour__sidebar__example{cursor:pointer;position:relative}.tour__sidebar__example::before{width:1rem;height:1rem;top:.5rem;left:0;border:1px solid;border-radius:50%;content:attr(data-example);font-size:.8rem;line-height:1.1;position:absolute;text-align:center}.tour__sidebar__example:not(:last-of-type){margin-bottom:1.5rem}.tour__sidebar__example:not(.active)::before,.tour__sidebar__example:not(.active) button,.tour__sidebar__example:not(.active) span{color:rgba(34,34,34,.3)}.tour__sidebar__example.active button,.tour__sidebar__example:hover button{color:#3abf7d}.tour__sidebar__example.active::before,.tour__sidebar__example.active span,.tour__sidebar__example:hover::before,.tour__sidebar__example:hover span{color:#222}.tour__sidebar__example::before,.tour__sidebar__example button,.tour__sidebar__example span{transition:color .2s}.tour__sidebar__example button{background-color:transparent;font-size:1.25rem;font-weight:600;padding-left:1.3rem}.tour__sidebar__example span{display:block;font-size:1rem}.tour__content{width:calc(100% - 250px);height:100%;min-height:500px;border-left:1px solid rgba(34,34,34,.05);float:right;padding:1rem 0 1rem 1rem;vertical-align:top}.tour__content .loader::after{content:"Processing request"}.tour__content__meme{overflow-y:auto;position:relative}.tour__content__meme::after{clear:both;content:"";display:block}.tour__content__meme__canvas{float:left;margin-right:2%;width:48%}.tour__content__meme__canvas canvas{width:100%;height:100%;background-color:rgba(58,191,125,.3);margin-bottom:1rem}.tour__content__meme__canvas__thumbnail{width:5rem;height:5rem;border-style:solid;border-width:2px;margin-bottom:1rem;object-fit:contain;object-position:center}.tour__content__meme__canvas__thumbnail:not(:last-of-type){margin-right:1rem}.tour__content__meme__canvas__thumbnail:not(.selected){border-color:transparent}.tour__content__meme__canvas__thumbnail.selected{border-color:#222}.tour__content__meme__editor{float:right;width:48%}.tour__content__meme__editor h2.__metadata{margin-top:3rem}.tour__content__meme__editor fieldset{border:none}.tour__content__meme__editor fieldset:not(:last-of-type){margin-bottom:1rem}.tour__content__meme__editor label{color:rgba(34,34,34,.3);display:block;font-size:.8rem;font-weight:600;letter-spacing:.05rem;margin-bottom:.025rem;text-transform:uppercase;width:100%}@media(min-width: 901px){.tour__content__meme__editor input:not([type=checkbox]):not([type=submit]),.tour__content__meme__editor select,.tour__content__meme__editor textarea{font-size:1.25rem}}@media(max-width: 900px){.tour__content__meme__editor input:not([type=checkbox]):not([type=submit]),.tour__content__meme__editor select,.tour__content__meme__editor textarea{font-size:1.05rem}}.tour__content__meme__editor input:not([type=checkbox]):not([type=file]):not([type=submit]){border-bottom:2px solid;padding-bottom:.15rem;transition:all .2s;width:100%}.tour__content__meme__editor input:not([type=file]):not([type=submit]):not(:hover):not(:active){border-color:#222}.tour__content__meme__editor input:not([type=file]):not([type=submit]):hover,.tour__content__meme__editor input:not([type=file]):not([type=submit]):active{border-color:#3abf7d}.tour__content__meme__editor input[type=checkbox]{width:1.25rem;height:1.25rem;border:2px solid;margin-right:.5rem;position:relative;top:.35rem}.tour__content__meme__editor input[type=checkbox]::after{width:100%;height:100%;content:"✓";font-size:1.5rem;line-height:1rem;position:absolute}.tour__content__meme__editor input[type=checkbox]:not(:checked)::after{color:transparent}.tour__content__meme__editor input[type=checkbox]:checked::after{color:#3abf7d}.tour__content__meme__editor select,.tour__content__meme__editor textarea{border-bottom:2px solid;width:100%}.tour__content__meme__editor select:not(:hover):not(:active),.tour__content__meme__editor textarea:not(:hover):not(:active){border-color:#222}.tour__content__meme__editor select:hover,.tour__content__meme__editor select:active,.tour__content__meme__editor textarea:hover,.tour__content__meme__editor textarea:active{border-color:#3abf7d}.tour__content__meme__editor select{background-image:url("/assets/media/svg/down.svg");background-position:99% center;background-repeat:no-repeat;background-size:1rem;padding-right:2rem}.tour__content__meme__editor textarea{min-height:100px;resize:vertical}.tour__content__trends{display:grid;grid-gap:2%;grid-template-columns:32% 32% 32%;overflow-y:auto;position:relative}.tour__content__trends:empty::after{content:"Fetching trending content from LBRY"}.tour__content__trend img{width:100%;height:175px;cursor:pointer;display:block;margin-bottom:.5rem;object-fit:cover;object-position:center;position:relative}.tour__content__trend figcaption{cursor:pointer;font-size:1rem;line-height:1.33}.tour__content__trend figcaption span{color:rgba(34,34,34,.3);display:block;font-size:.8rem;letter-spacing:.025rem}.tour__content__urlbar{border:1px solid rgba(34,34,34,.05);display:flex;margin-bottom:1rem}.tour__content__urlbar button,.tour__content__urlbar input,.tour__content__urlbar span{float:left;vertical-align:middle}.tour__content__urlbar button,.tour__content__urlbar span{height:100%;line-height:2rem}.tour__content__urlbar button{color:#fcfcfc;font-size:1rem;position:relative;text-transform:lowercase;transition:background-color .2s;width:6rem}.tour__content__urlbar button::after{width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px;content:"";position:absolute;transition:background-color .2s;z-index:-1}.tour__content__urlbar button:not(:hover){background-color:#222}.tour__content__urlbar button:not(:hover)::after{background-color:#222}.tour__content__urlbar button:hover{background-color:#3abf7d}.tour__content__urlbar button:hover::after{background-color:#3abf7d}.tour__content__urlbar input{font-size:1rem;width:calc(100% - 9.5rem)}.tour__content__urlbar input::placeholder{color:rgba(34,34,34,.5);opacity:1}.tour__content__urlbar span{user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;color:rgba(34,34,34,.5);cursor:default;font-size:1rem;text-align:right;width:3.5rem}.token.comment,.token.operator,.token.punctuation{color:#6c6c87}.token.boolean,.token.null,.token.url{color:#86c2f7}.token.number{color:#f2ac5f}.token.string{color:#fae079}/*# sourceMappingURL=bundle.css.map */
diff --git a/app/dist/bundle.css.map b/app/dist/bundle.css.map
new file mode 100644
index 0000000..8825d7c
--- /dev/null
+++ b/app/dist/bundle.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../sass/init/_base.scss","../sass/init/_colors.scss","../sass/init/_mixins.scss","../sass/init/_extends.scss","../sass/type/_karla.scss","../sass/partials/_animation.scss","../sass/partials/_ecosystem.scss","../sass/partials/_email-subscribe.scss","../sass/partials/_feature-links.scss","../sass/partials/_flash.scss","../sass/partials/_footer.scss","../sass/partials/_github-feed.scss","../sass/partials/_glossary.scss","../sass/partials/_navigation.scss","../sass/partials/_mission-statement.scss","../sass/partials/_modal.scss","../sass/_layout.scss","../sass/pages/_api.scss","../sass/pages/_contributing.scss","../sass/pages/_documentation.scss","../sass/pages/_home.scss","../sass/pages/_page.scss","../sass/pages/_tour.scss","../sass/plugins/_prism.scss"],"names":[],"mappings":"AAAA,KACE,sBACA,kCAEA,kCACA,mCAGF,qBAGE,mBAEA,mBACA,qBAGF,gEAQE,0BAGF,EACE,mBACA,qBAGF,YACE,mBAIA,mBACE,YAGF,uBACE,gBAKF,sBACE,eAIJ,6BAIE,YACA,gBACA,oBACA,kBAEA,qBACA,wBAEA,qDACE,aAIJ,sBAGE,6BAGF,4BAEE,eAGF,MACE,WAGF,OACE,YAGF,OACE,SAGF,IACE,YACA,eAEA,WACE,uBACA,iBAEA,iBCrGM,QDsGN,yDACA,sBACA,uCACA,WACA,cACA,kBAMJ,aAEE,mFACA,0CACA,8BACA,6BACA,iDACA,wCACA,4CAGA,6GAGA,wDACA,6DACA,4EACA,iFAKF,iDAEE,aAIF,uBACE,yDAEA,6BACE,aE7DJ,OA7DE,WACA,WACA,cA+DF,WA3DE,SACA,kBACA,WACA,iBCTF,8PACE,iBACA,eACA,uBACA,kBACA,mBAOF,gBAEE,6BACA,yBAEA,uBACE,sBACA,kBAEA,WACA,cACA,gCAGF,mCACE,6BAGF,6BACE,iBFrDM,KE8DR,4OACE,iBF/DM,KEgEN,aFjEM,QEkEN,6BACA,MFnEM,QEsER,kMACE,iBFvEM,QEwEN,aFvEM,KEwEN,0BACA,cASF,4BACE,iBFpFM,QEqFN,yBACA,0BACA,cAGF,sBACE,iBF1FM,KE2FN,aF5FM,QE6FN,6BACA,MF9FM,QEkGV,eAKE,iBFvGQ,QEyGR,2BACE,yBACA,0BAGF,qBACE,aFxGM,QEyGN,6BACA,MF1GM,QE8GV,mQACE,mBACA,kBAGF,0OACE,kBACA,qBAaF,+DACE,wBACA,kBAEA,uFACE,uBACA,+BAEA,kCACA,kBACA,mBACA,iBF7IM,QE8IN,iBACA,WACA,kBAGF,oFACE,gBAEA,eACA,kBACA,kBACA,WC9JJ,WACE,oBACA,kBACA,gBACA,qGAGF,WACE,oBACA,kBACA,gBACA,qGAGF,WACE,oBACA,kBACA,gBACA,kGCpBF,gBACE,0BACA,4BAGF,sBACE,+BACA,+BACA,+BACA,kCCTF,WACE,oCAEA,aACA,eACA,cAEA,gDACE,uCAEA,uEACE,mBAIJ,uBACE,+BAEA,qHAEE,aAIA,8BADF,4DAEI,cAGF,+BALF,4DAMI,cAKN,wBACE,+BAEA,wHAEE,aAIA,8BADF,4DAEI,cAGF,+BALF,4DAMI,cAQR,mBACE,kBACA,WAEA,uBACE,UAGF,sBACE,kBACA,WAEA,4BACE,YACA,eACA,oBACA,mBACA,kBACA,iBAEA,oCJ/DJ,0BIiEM,qBAEA,kBACA,cACA,kBACA,WACA,kBACA,iBACA,WAGF,iCACE,eACA,qBACA,kBAEA,oDACE,kBAEA,2DACE,oBAEA,2BACA,YACA,kBACA,kBAOV,sBACE,kBAGF,2BACE,uBACA,aAEA,WACA,kBACA,UAGF,gCJ1HA,mBACA,oBACA,uBI2HE,mCACE,iBACA,kBAEA,0CACE,eACA,cACA,oBAEA,6CACE,cACA,cACA,mBAIJ,yCACE,aAIJ,4DACE,aAGF,yCACE,SACA,wBACA,UAIJ,0BACE,oBAEA,6BACE,eACA,mBAEA,oCACE,eAEA,uCACE,aAKN,kCACE,iBL/KI,QKkLN,mCACE,YACA,UAMJ,mDAEE,mBAME,wFACE,oBAEA,sGACE,mBAEA,gBACA,qBACA,kBACA,WACA,WASN,gDACE,iBLxMI,QK2MN,0CACE,yBAMA,6CACE,iBLxNE,QK2NJ,+CACE,eAIJ,uCACE,yBAMA,qDACE,iBL3OE,QK8OJ,uDACE,qBAIJ,+CACE,yBAKN,0BACE,iBLhQQ,QKiQR,SACA,cACA,kBACA,UAEA,6CACE,oBAMJ,sBACE,iBACA,eACA,kBACA,4BACA,UAEA,yCACE,mBAGF,4CACE,wBAGF,mCJ3RA,mBACA,oBACA,uBI2RE,yBAEA,kBACA,oBAEA,gEACE,uBAEA,kBACA,kBAGF,sEACE,aAIJ,6BACE,uBAEA,mBACA,gBACA,aAEA,0DACE,iBACA,mBAIJ,uDACE,kCAMA,wHACE,eAIJ,2BACE,uCACA,aLjUM,QKoUR,4BACE,sCACA,aLzUM,QK4UR,0BACE,sCACA,aLtUM,QK0UV,6BACE,kBAGF,mCACE,mBAEA,4CACE,wBAIJ,0CACE,wBACA,qBACA,yBAKF,WACE,oBAEA,kBACA,iBACA,qBACA,mBACA,kBACA,UAEA,qCAEE,kBAGF,mBJ9WA,0BIgXE,uBAEA,wBACA,kBACA,gBACA,kBACA,gBAGF,kBACE,sBACA,cAEA,mCACA,WAIJ,UACE,gBAEA,uBACE,aAGF,iBACE,eAIJ,SACE,eACA,eACA,kBACA,WACA,mBChaF,gBACE,mCACA,iBACA,oBACA,kBAEA,oCACE,kBACA,iBAEA,yBAJF,oCAKI,aAGF,yBARF,oCASI,WAIJ,uBLIA,WACA,WACA,cKDF,uBACE,gBACA,sBACA,qBACA,yBAGF,+CAGE,mBACA,iBAEA,yBANF,+CAOI,YAIJ,uBACE,iBN3CQ,QM4CR,eACA,YACA,sBAEA,yBANF,uBAOI,WACA,0BAGF,yBAXF,uBAYI,mBAGF,mCACE,iBNzDM,KM0DN,kBN1DM,KM4DN,yBAJF,mCAKI,oBN7DI,KM8DJ,gCAGF,yBATF,mCAUI,gCACA,mBNnEI,MMuER,6BACE,yBACA,0BAEA,yBAJF,6BAKI,4BACA,gCAGF,yBATF,6BAUI,gCACA,4BAKN,wBAGE,MN3FQ,QM6FR,yBALF,wBAMI,wBAEA,YACA,WAGF,yBAZF,wBAaI,cACA,UAGF,oCACE,iBNzGM,KM0GN,aN1GM,KM6GR,8BACE,iBNxGM,QMyGN,qBAIJ,yBL7FE,WACA,WACA,cK6FA,iBN/GQ,QMgHR,MNvHQ,QMwHR,eACA,kBAEA,qCACE,aC5HJ,eACE,aACA,cACA,2DACA,qBACA,kBAGF,cACE,6BAEA,iBPXQ,QOYR,mCACA,kBACA,eACA,qBACA,kBACA,0BACA,mBAEA,kCACE,iBAEA,kBACA,kBACA,UACA,UAIA,oDACE,uBAIJ,oBACE,uCAEA,yCACE,MPhCI,QOqCV,qBACE,iBP7CQ,QO8CR,sCACA,yCACA,kBACA,2BACA,eACA,eACA,gBACA,qBACA,qBACA,kBAGF,0BACE,oCACA,mBAEA,iBPvDQ,QOwDR,4BACA,2BACA,sBACA,gBACA,kBACA,UAEA,8BACE,uBAEA,iBACA,uBC1EJ,SACE,iBAEA,kBACA,WACA,UAGF,OACE,iBACA,kBACA,eACA,iBACA,mBACA,kBACA,WAEA,4CACE,yBACA,aRZM,QQeR,oBACE,4BAGF,cACE,+BACA,4BAGF,aACE,yBACA,aRnBM,QQsBR,YACE,yBACA,aRnCM,QQsCR,eACE,yBACA,aRvCM,QSJV,QACE,sBACA,4BACA,eACA,yCACA,uCACA,kBAEA,yBACE,gBACE,uBACA,iBAEA,6EACA,WACA,kBACA,WAKF,yBADF,4BAEI,cACA,yBACA,mBACA,YAIJ,WACE,qBACA,iBACA,oBAEA,yBALF,WAMI,oBACA,aACA,oBAGF,cACE,oBACA,mBACA,sBAEA,yBALF,cAMI,qBACA,+BACA,sFAEA,2BACE,mBAIJ,4BACE,OAKN,UACE,qBAEA,sBACE,MTjEI,QSoEN,gBACE,MT9DI,QUPV,aACE,2CACA,yCACA,gBACA,iBACA,kBAEA,0BAPF,aAQI,oBAGF,iDAXF,aAYI,qBAGF,0BAfF,aAgBI,oBACA,kBACA,mBAGF,0BArBF,aAsBI,iBACA,qBAGF,gDA1BF,aA2BI,mBACA,mBAGF,yBA/BF,aAgCI,mBACA,mBAGF,yBApCF,aAqCI,gBACA,kBACA,oBAIA,0BADF,gCAEI,mBAIJ,gBACE,qBACA,cACA,yBACA,WAEA,0BANF,gBAOI,mBAEA,0BACA,eACA,mBAGF,0BAdF,gBAeI,MV9DI,MUiEN,gDAlBF,gBAmBI,gBAGF,yBAtBF,gBAuBI,eACA,oBAIJ,gBACE,kBACA,mBAEA,0BAJF,gBAKI,oBAGF,gDARF,gBASI,oBAGF,yBAZF,gBAaI,oBACA,kBACA,WAKN,oBACE,iBAEA,yBAHF,oBAII,qBACA,qBACA,mBACA,aAIA,yBADF,uCAEI,uBAIJ,sCACE,gBACA,oBACA,WAIA,yBADF,sCAEI,0CAGF,2CACE,iBV3HI,KU4HJ,kBACA,MV9HI,QU+HJ,cACA,sBACA,oBACA,kBACA,SAGF,wEACE,0BAGF,yBApBF,sCAqBI,qBACA,kBACA,mBACA,2BAGF,yBA3BF,sCA4BI,oBAEA,iBVpJI,QUqJJ,sCACA,kBACA,aACA,kBACA,mBACA,WAKN,4BACE,sCACA,kBACA,uBACA,iBAEA,yBANF,4BAOI,4BAGF,yBAVF,4BAWI,wBAIJ,0BACE,MV5KQ,QU6KR,cAEA,yBAJF,0BAKI,kBCjLA,oCACE,kBACA,0BAKA,wHACE,iBACA,kBAIJ,+DACE,wBAKF,kDACE,YAGF,yDACE,OAON,yBACE,sCACA,gBAEA,iBXrCQ,QWsCR,4CACA,2BACA,kBACA,gBACA,4BACA,0BACA,UAEA,yCACE,mBAIJ,gCACE,wBAEA,gBACA,kBACA,yBACA,yBACA,SACA,yBACA,UC5DF,YACE,aAEA,iBZHQ,QYIR,uCACA,yCACA,uCACA,eACA,WACA,WAEA,gCACE,kBAEA,yBAHF,gCAII,oBACA,aACA,oBAGF,yBATF,gCAUI,cACA,yBACA,mBACA,WAEA,wCACE,uBACA,cAEA,sFACA,WACA,eACA,WAMR,kBACE,gBACA,kBAEA,yBAJF,kBAKI,qBACA,+BACA,sFACA,mBAEA,+BACE,mBAIJ,gCXzBA,SACA,kBACA,WACA,iBWwBE,wBAGA,idACA,4BACA,wBACA,OACA,UAIA,2EACE,sBAEA,iBZ/DI,QYgEJ,WACA,OACA,kBACA,sBAIA,uFACE,YAMF,mKACE,SAKN,sCACE,cACA,eACA,iBAGF,gDACE,oBACA,mBAGF,0CACE,MZvGM,QYwGN,mBACA,mBACA,kBAEA,6DACE,iBZ5GI,KY+GN,uDACE,iBZ1GI,QY6GN,iDACE,uBACA,gBAEA,kBACA,WACA,kBACA,gCACA,WC5HN,8BACE,oDAEA,qCACA,gCACA,iBACA,kBAEA,yBARF,8BASI,mBAGF,yBAZF,8BAaI,mBAIJ,qCACE,MbXQ,QaYR,cACA,uBACA,yBCrBF,ObCE,mBACA,oBACA,uBaDA,aACA,iBAEA,mCACA,eACA,WAGE,yBADF,UAEI,iBACA,sBAGF,yBANF,UAOI,mBAIJ,SACE,mBAEA,yBAHF,SAII,kBACA,kBAGF,yBARF,SASI,kBACA,kBAGF,WACE,Md3BI,QcgCV,YACE,iBdxCQ,QcyCR,oBAEA,yBAJF,YAKI,aAGF,yBARF,YASI,YChDJ,UAEE,uBAGF,KACE,iBfNQ,QeSV,4JAEE,MfVQ,KeWR,eACA,gBACA,kBACA,kBACA,UAGE,yCACE,OAKF,0BACE,mCACE,aACA,WACA,oBACE,0LAYV,KACE,aACA,sBACA,iBACA,iBAGF,YACE,kBACA,iBACA,iBAEA,yBALF,YAMI,mBACA,mBAGF,yBAVF,YAWI,mBACA,mBAGF,mBdzCA,WACA,WACA,cc6CA,0FACE,aAIJ,GACE,sBAEA,sCACA,YACA,mBAGF,OACE,gBAEA,iBflFQ,QemFR,iBACA,iBACA,yCACA,oBACA,uCACA,eACA,gBACA,WACA,UAEA,2BACE,kBAGF,yBAlBF,OAmBI,gBAGF,yBAtBF,OAuBI,iBAGF,uBACE,qBAGF,SACE,mBACA,2BAGF,SACE,gBACA,0BAGF,cACE,6BACA,cAEA,iBf/HM,QegIN,kBACA,cACA,eACA,cACA,kBACA,iBAEA,kBACA,kBCjIJ,SACE,uBACA,kBAEA,gBfYA,WACA,WACA,ceSF,UACE,sCACA,yBAEA,iBhBtCQ,QgBuCR,4CACA,WACA,kBACA,gBACA,eACA,UAGF,kBACE,kBAGF,yBACE,6CACA,gBACA,iBACA,8CACA,WAGF,yBACE,6BACA,uBAEA,iBhB9DQ,KgB+DR,kBACA,MhBjEQ,QgBkER,eACA,eACA,iBACA,kBACA,kBACA,uBAEA,sCACE,UACA,kBAGF,gCACE,UACA,mBAIJ,iBACE,gBACA,iBACA,qBACA,mBACA,sBAIA,sBACE,sCAGF,kBACE,cACA,mCAqBJ,cACE,aACA,YACA,yDACA,yBAEA,iBACE,iBACA,oBAGF,iBACE,iBACA,oBAGF,iBACE,gBACA,qBACA,qBACA,yBAGF,kDACE,eACA,gBACA,mBAGF,oBACE,sCACA,oBACA,iBACA,gBACA,iBACA,WAGF,oBACE,aAGF,kCACE,+BAGF,iBACE,6CAGF,iCACE,sCAGF,kBACE,gCAEA,oBACA,gBACA,iBACA,gBACA,kBAIJ,oBACE,6CACA,aAEA,wBACE,sCAIJ,+BACE,sCACA,kBACA,qBAIA,iDACE,6CAGF,8CACE,sCAGF,yEAEE,qBAGF,oCACE,4CACA,UACA,qBAEA,yCACE,MhBzNI,QgB0NJ,gBAEA,6DACE,kBAKN,qCACE,UAGF,qCflNA,WACA,WACA,ceqNF,uBACE,yBACA,6CACA,MhBjPQ,QgBkPR,aAEA,2BACE,iBhBpPM,KiBCN,qCACE,UAGF,sCACE,UCNJ,8CAEE,iBAGF,uBACE,iBAKF,2BACE,qBAGF,0BACE,kBAEA,kCACE,iBlBnBI,KkBoBJ,kBACA,WACA,cACA,kBAEA,yBAPF,kCAQI,qBACA,wBAGF,yBAZF,kCAaI,qBACA,wBAON,iCACE,iBAEA,wCACE,WACA,cAIJ,gCACE,cACA,cACA,mBAIA,gDACE,aAEA,yBAHF,gDAII,cAGF,yBAPF,gDAQI,YAMJ,yBADF,sCAEI,oBACA,oBAGF,yBANF,sCAOI,oBACA,oBAGF,8CACE,iBAEA,yBAHF,8CAII,cAGF,yBAPF,8CAQI,cAKN,8EAEE,qBACA,kBAEA,8FACE,wBACA,kBACA,kBACA,sBCtGN,MACE,yCACA,uCAEA,SACE,mBACA,mBACA,kBAEA,yBALF,SAMI,mBAGF,yBATF,SAUI,mBAIJ,SACE,sBAEA,mCACA,YACA,mBAGF,YACE,mBACA,iBnB3BM,KmB6BN,4wCACA,2BACA,4BACA,aACA,iBACA,0CACA,uBAEA,yBAZF,YAaI,uBAGF,eACE,iBnB3CI,QmB4CJ,mCACA,2BACA,eACA,mBACA,cACA,mBAEA,mCAEA,yBAXF,eAYI,mBAGF,yBAfF,eAgBI,mBAKN,gBACE,mBAEA,gCACE,qBACA,2CACA,aACA,mBACA,qBACA,iBACA,oBAGF,+BACE,kBACA,kBACA,mBAEA,yBALF,+BAMI,WAGF,yBATF,+BAUI,WAEA,6CACE,oBAGF,4CACE,kBAON,sCACE,eACA,oBAGF,4CACE,eACA,SACA,mBACA,kBACA,UAGF,oCAEE,qBACA,eACA,kBAIJ,2EAKE,iBACA,sBAEA,uIACE,kBAGF,0FACE,qBACA,cACA,yBAEA,0BALF,0FAMI,wBAEA,0BACA,eACA,mBAGF,0BAbF,0FAcI,MnBlJE,MmBqJJ,gDAjBF,0FAkBI,gBAGF,yBArBF,0FAsBI,eACA,oBAIJ,qFACE,qBACA,iBAEA,yBAJF,qFAKI,iBACA,kBAGF,yBATF,qFAUI,kBACA,kBAGF,2JACE,kBAIJ,oGAEE,UAIJ,0DAIE,2CAKA,0BAFF,yBAGI,kBAIJ,aACE,gBAGF,YACE,eAME,0BADF,uCAEI,kBACA,iBACA,mBAIJ,yCACE,qBACA,iBAEA,uDlBtMJ,WACA,WACA,ckBwMI,yBARF,yCASI,kBAGF,+CAZF,yCAaI,mBAGF,yBAhBF,yCAiBI,gBAGF,+CACE,WACA,kBACA,kBAEA,yBALF,+CAMI,mBACA,gBAGF,mDACE,cACA,kBACA,iBACA,qBAEA,mEACE,uBAEA,6BACA,4BACA,WACA,OACA,kBAGF,2EACE,cAGF,+DACE,MnBrQF,QmB4QR,kBACE,qBAII,yBADF,wBAEI,sBAGF,yBALF,wBAMI,WAIA,yBADF,kCAEI,qBACA,WAGF,yBANF,kCAOI,qBACA,OAIJ,+CACE,mDAGF,+CACE,uDAGF,+CACE,qDAGF,+CACE,mDAGF,+CACE,sDAMR,eACE,kBAGF,iBACE,oBAII,yBADF,uBAGI,WAGF,yBANF,uBAOI,WAIA,yBADF,iCAEI,qBACA,WAGF,yBANF,iCAOI,qBACA,aAIJ,8CACE,sDAGF,8CACE,qDAGF,8CACE,oDC1WV,MACE,aACA,OACA,sBACA,YAKF,mBACE,WAGF,cnBZE,mBACA,oBACA,uBmBYA,2BACA,4BACA,sBACA,MpBlBQ,QoBmBR,yCACA,uCACA,kBACA,WAGF,qBACE,gBACA,0CAEA,yBAJF,qBAKI,eACA,oBAGF,yBATF,qBAUI,eACA,cACA,iBACA,qBAMJ,eACE,yBACA,qBACA,OACA,iBACA,oBACA,yCACA,uCAEA,kBACE,qBAEA,yBAHF,kBAII,gBAGF,yBAPF,kBAQI,gBAGF,uBACE,mBAKF,yBADF,gCAEI,gBAGF,yBALF,gCAMI,kBAGF,qCACE,sCAKF,yBADF,oDAEI,kBAGF,yBALF,oDAMI,mBAGF,4DACE,WAIJ,iEACE,sBACA,yBAEA,yBAJF,iEAKI,mBAGF,yBARF,iEASI,mBAIJ,kBACE,eAGF,mBnBjGA,oCmBqGA,0BACE,SACA,gBACA,oBACA,kBAEA,yBANF,0BAOI,4CAEA,iBACA,WAGF,yBAbF,0BAcI,kBACA,0BAGF,+CAlBF,0BAmBI,eACA,WAGF,4BACE,kBACA,oBAGF,kCnBrIF,0BmBuII,yBACA,oBAEA,0BACA,YACA,gBACA,eACA,kBAQF,gIACE,iBpBnKI,KoBoKJ,kBACA,MpBtKI,QoBuKJ,cACA,sBACA,oBACA,sBAEA,yBATF,gIAUI,kBACA,UAKN,2HAGE,mBACA,kBAEA,yBANF,2HAOI,kBACA,iBAGF,yBAXF,2HAYI,kBACA,kBAIJ,8HAEE,kBAGE,0KACE,qBAIJ,giBACE,iBAIJ,kBACE,4BACA,oBAGF,4GACE,qBAIA,qBACE,YAIJ,mJnBxKA,uHACA,yCACA,+CACA,8CACA,2BACA,eACA,qBACA,oOmBmKE,MpB7NM,QCmCR,8JACE,iBDpCM,QCqCN,MD5CM,QC6CN,iBAGF,mKACE,iBD1CM,QC2CN,MDlDM,QCmDN,iBAgBF,4BmB+JA,mJnB9JE,0CmBmKF,mBACE,gCAEA,kBACA,eACA,iBACA,gBACA,kBAEA,iEAEE,yBACA,MpBnPI,QoBsPN,iCACE,yBACA,cAEA,yCACE,cAGF,4CACE,cAGF,8CACE,MpBnQE,QoBwQR,qBACE,iBpBzQM,QoB0QN,sCACA,iBACA,mBACA,kBACA,WAEA,0BARF,qBASI,oBAEA,2BACE,aAGF,2EACE,cAGF,iEACE,8CAIJ,2BACE,iBpBhSI,KoBiSJ,MpBlSI,QoBmSJ,eACA,kBAEA,8BACE,kBACA,UAIA,8CACE,WAIJ,kCACE,+CACA,mBAEA,iBpBpTE,KoBqTF,WACA,kBACA,UAIJ,2BACE,iBAGF,0CACE,qCAGF,gDACE,mBAGF,wBACE,gBACA,qBACA,yBAGF,oDACE,6CAGF,wBACE,eAON,cAEE,iBpB3VQ,KoB8VV,eACE,sDCvVF,MACE,wCACA,kBACA,SAEA,sBACE,cACA,gBAEA,sCACA,WACA,sDACA,kBACA,UAGF,apBFA,WACA,WACA,coBmBF,eACE,wBAEA,WACA,qBACA,iBACA,mBACA,mBAGF,wBACE,eACA,kBAEA,gCACE,uBACA,iBAEA,iBACA,kBACA,2BACA,gBACA,gBACA,kBACA,kBAGF,2CACE,qBAIA,mIAGE,wBAMF,2EACE,MrB/EI,QqBkFN,oJAEE,MrB1FI,KqB8FR,4FAGE,qBAGF,+BACE,6BACA,kBACA,gBACA,oBAGF,6BACE,cACA,eA8BJ,eACE,sDAEA,yCACA,YACA,yBACA,mBAKE,8BACE,6BAKN,qBACE,gBACA,kBAEA,4BpB1IA,WACA,WACA,coB6IF,6BACE,WACA,gBACA,UAEA,oCACE,uBAEA,qCACA,mBAIJ,wCACE,uBAEA,mBACA,iBACA,mBACA,mBACA,uBAEA,2DACE,kBAGF,uDACE,yBAGF,iDACE,arBpMM,KqBwMV,6BACE,YACA,UAEA,2CACE,gBAGF,sCACE,YAEA,yDACE,mBAIJ,mCACE,wBACA,cACA,gBACA,gBACA,sBACA,sBACA,yBACA,WAMA,yBAHF,qJAII,mBAGF,yBAPF,qJAQI,mBAKF,4FACE,wBACA,sBACA,mBACA,WAIA,gGACE,arBzPE,KqB4PJ,2JAEE,arBxPE,QqB4PN,kDACE,6BAEA,iBACA,mBACA,kBACA,WAEA,yDACE,uBAEA,YACA,iBACA,iBACA,kBAGF,uEACE,kBAGF,iEACE,MrBlRE,QqBuRR,0EAEE,wBACA,WAEA,4HACE,arBnSI,KqBsSN,8KAEE,arBlSI,QqBsSR,oCACE,mDACA,+BACA,4BACA,qBACA,mBAGF,sCACE,iBACA,gBAIJ,uBACE,aACA,YACA,kCACA,gBACA,kBAKE,oCACE,8CAMJ,0BACE,wBAEA,eACA,cACA,oBACA,iBACA,uBACA,kBAGF,iCACE,eACA,eACA,iBAEA,sCACE,wBACA,cACA,gBACA,uBAKN,uBACE,oCACA,aACA,mBAEA,uFAGE,WACA,sBAGF,0DAEE,YACA,iBAGF,8BACE,MrBxXM,QqByXN,eACA,kBACA,yBACA,gCACA,WAEA,qCACE,+CACA,mBAEA,WACA,kBACA,gCACA,WAGF,0CACE,iBrBzYI,KqB2YJ,iDACE,iBrB5YE,KqBgZN,oCACE,iBrB3YI,QqB6YJ,2CACE,iBrB9YE,QqBmZR,6BACE,eACA,0BAEA,0CACE,wBACA,UAIJ,4BpBzVA,iBAEA,qBACA,sBACA,yBoBuVE,wBACA,eACA,eACA,iBACA,aCzaF,kDAGE,cAGF,sCAGE,cAGF,cACE,cAGF,cACE","file":"bundle.css"}
\ No newline at end of file
diff --git a/public/favicon.ico b/app/dist/favicon.ico
similarity index 100%
rename from public/favicon.ico
rename to app/dist/favicon.ico
diff --git a/public/favicon.svg b/app/dist/favicon.svg
similarity index 100%
rename from public/favicon.svg
rename to app/dist/favicon.svg
diff --git a/public/humans.txt b/app/dist/humans.txt
similarity index 100%
rename from public/humans.txt
rename to app/dist/humans.txt
diff --git a/public/media/images/background-a.jpg b/app/dist/media/images/background-a.jpg
similarity index 100%
rename from public/media/images/background-a.jpg
rename to app/dist/media/images/background-a.jpg
diff --git a/public/media/images/carlsagan2.jpg b/app/dist/media/images/carlsagan2.jpg
similarity index 100%
rename from public/media/images/carlsagan2.jpg
rename to app/dist/media/images/carlsagan2.jpg
diff --git a/public/media/images/doge-meme.jpg b/app/dist/media/images/doge-meme.jpg
similarity index 100%
rename from public/media/images/doge-meme.jpg
rename to app/dist/media/images/doge-meme.jpg
diff --git a/public/media/images/grid.png b/app/dist/media/images/grid.png
similarity index 100%
rename from public/media/images/grid.png
rename to app/dist/media/images/grid.png
diff --git a/public/media/images/lbry-green.png b/app/dist/media/images/lbry-green.png
similarity index 100%
rename from public/media/images/lbry-green.png
rename to app/dist/media/images/lbry-green.png
diff --git a/public/media/images/lbry-overview.png b/app/dist/media/images/lbry-overview.png
similarity index 100%
rename from public/media/images/lbry-overview.png
rename to app/dist/media/images/lbry-overview.png
diff --git a/public/media/images/missing.png b/app/dist/media/images/missing.png
similarity index 100%
rename from public/media/images/missing.png
rename to app/dist/media/images/missing.png
diff --git a/public/media/svg/anchor.svg b/app/dist/media/svg/anchor.svg
similarity index 100%
rename from public/media/svg/anchor.svg
rename to app/dist/media/svg/anchor.svg
diff --git a/public/media/svg/chat.svg b/app/dist/media/svg/chat.svg
similarity index 100%
rename from public/media/svg/chat.svg
rename to app/dist/media/svg/chat.svg
diff --git a/public/media/svg/discord.svg b/app/dist/media/svg/discord.svg
similarity index 100%
rename from public/media/svg/discord.svg
rename to app/dist/media/svg/discord.svg
diff --git a/public/media/svg/down.svg b/app/dist/media/svg/down.svg
similarity index 100%
rename from public/media/svg/down.svg
rename to app/dist/media/svg/down.svg
diff --git a/public/media/svg/flag.svg b/app/dist/media/svg/flag.svg
similarity index 100%
rename from public/media/svg/flag.svg
rename to app/dist/media/svg/flag.svg
diff --git a/public/media/svg/keyboard.svg b/app/dist/media/svg/keyboard.svg
similarity index 100%
rename from public/media/svg/keyboard.svg
rename to app/dist/media/svg/keyboard.svg
diff --git a/public/media/svg/logo--white.svg b/app/dist/media/svg/logo--white.svg
similarity index 100%
rename from public/media/svg/logo--white.svg
rename to app/dist/media/svg/logo--white.svg
diff --git a/public/media/svg/logo.svg b/app/dist/media/svg/logo.svg
similarity index 100%
rename from public/media/svg/logo.svg
rename to app/dist/media/svg/logo.svg
diff --git a/public/media/svg/monitor.svg b/app/dist/media/svg/monitor.svg
similarity index 100%
rename from public/media/svg/monitor.svg
rename to app/dist/media/svg/monitor.svg
diff --git a/public/media/svg/reddit.svg b/app/dist/media/svg/reddit.svg
similarity index 100%
rename from public/media/svg/reddit.svg
rename to app/dist/media/svg/reddit.svg
diff --git a/public/media/svg/slack.svg b/app/dist/media/svg/slack.svg
similarity index 100%
rename from public/media/svg/slack.svg
rename to app/dist/media/svg/slack.svg
diff --git a/public/media/svg/text-logo--white.svg b/app/dist/media/svg/text-logo--white.svg
similarity index 100%
rename from public/media/svg/text-logo--white.svg
rename to app/dist/media/svg/text-logo--white.svg
diff --git a/public/media/svg/text-logo.svg b/app/dist/media/svg/text-logo.svg
similarity index 100%
rename from public/media/svg/text-logo.svg
rename to app/dist/media/svg/text-logo.svg
diff --git a/public/media/svg/watch--green.svg b/app/dist/media/svg/watch--green.svg
similarity index 100%
rename from public/media/svg/watch--green.svg
rename to app/dist/media/svg/watch--green.svg
diff --git a/public/media/svg/watch.svg b/app/dist/media/svg/watch.svg
similarity index 100%
rename from public/media/svg/watch.svg
rename to app/dist/media/svg/watch.svg
diff --git a/public/scripts/app.js b/app/dist/scripts/app.js
similarity index 100%
rename from public/scripts/app.js
rename to app/dist/scripts/app.js
diff --git a/public/scripts/plugins/jets.js b/app/dist/scripts/plugins/jets.js
similarity index 100%
rename from public/scripts/plugins/jets.js
rename to app/dist/scripts/plugins/jets.js
diff --git a/public/scripts/sockets.js b/app/dist/scripts/sockets.js
similarity index 91%
rename from public/scripts/sockets.js
rename to app/dist/scripts/sockets.js
index c676860..adcebe9 100644
--- a/public/scripts/sockets.js
+++ b/app/dist/scripts/sockets.js
@@ -1,8 +1,8 @@
-/* global $, ws */ "use strict";
+/* global $, log, ws */ "use strict";
-const log = console.log; // eslint-disable-line
+// const log = console.log; // eslint-disable-line
diff --git a/public/scripts/vendor/zepto.js b/app/dist/scripts/vendor/zepto.js
similarity index 100%
rename from public/scripts/vendor/zepto.js
rename to app/dist/scripts/vendor/zepto.js
diff --git a/public/type/karmilla/400.woff b/app/dist/type/karmilla/400.woff
similarity index 100%
rename from public/type/karmilla/400.woff
rename to app/dist/type/karmilla/400.woff
diff --git a/public/type/karmilla/400.woff2 b/app/dist/type/karmilla/400.woff2
similarity index 100%
rename from public/type/karmilla/400.woff2
rename to app/dist/type/karmilla/400.woff2
diff --git a/public/type/karmilla/400i.woff b/app/dist/type/karmilla/400i.woff
similarity index 100%
rename from public/type/karmilla/400i.woff
rename to app/dist/type/karmilla/400i.woff
diff --git a/public/type/karmilla/700.woff b/app/dist/type/karmilla/700.woff
similarity index 100%
rename from public/type/karmilla/700.woff
rename to app/dist/type/karmilla/700.woff
diff --git a/public/type/karmilla/700.woff2 b/app/dist/type/karmilla/700.woff2
similarity index 100%
rename from public/type/karmilla/700.woff2
rename to app/dist/type/karmilla/700.woff2
diff --git a/public/type/karmilla/700i.woff b/app/dist/type/karmilla/700i.woff
similarity index 100%
rename from public/type/karmilla/700i.woff
rename to app/dist/type/karmilla/700i.woff
diff --git a/public/type/playfair/400.woff b/app/dist/type/playfair/400.woff
similarity index 100%
rename from public/type/playfair/400.woff
rename to app/dist/type/playfair/400.woff
diff --git a/public/type/playfair/400.woff2 b/app/dist/type/playfair/400.woff2
similarity index 100%
rename from public/type/playfair/400.woff2
rename to app/dist/type/playfair/400.woff2
diff --git a/public/type/playfair/400i.woff b/app/dist/type/playfair/400i.woff
similarity index 100%
rename from public/type/playfair/400i.woff
rename to app/dist/type/playfair/400i.woff
diff --git a/public/type/playfair/400i.woff2 b/app/dist/type/playfair/400i.woff2
similarity index 100%
rename from public/type/playfair/400i.woff2
rename to app/dist/type/playfair/400i.woff2
diff --git a/public/type/playfair/700.woff b/app/dist/type/playfair/700.woff
similarity index 100%
rename from public/type/playfair/700.woff
rename to app/dist/type/playfair/700.woff
diff --git a/public/type/playfair/700.woff2 b/app/dist/type/playfair/700.woff2
similarity index 100%
rename from public/type/playfair/700.woff2
rename to app/dist/type/playfair/700.woff2
diff --git a/public/type/playfair/700i.woff b/app/dist/type/playfair/700i.woff
similarity index 100%
rename from public/type/playfair/700i.woff
rename to app/dist/type/playfair/700i.woff
diff --git a/public/type/playfair/700i.woff2 b/app/dist/type/playfair/700i.woff2
similarity index 100%
rename from public/type/playfair/700i.woff2
rename to app/dist/type/playfair/700i.woff2
diff --git a/helpers/fetch-metadata.js b/app/helpers/fetch-metadata.js
similarity index 96%
rename from helpers/fetch-metadata.js
rename to app/helpers/fetch-metadata.js
index 97f2dd3..61f8f2b 100644
--- a/helpers/fetch-metadata.js
+++ b/app/helpers/fetch-metadata.js
@@ -6,17 +6,17 @@
const local = require("app-root-path").require;
const prism = require("prismjs");
-const raw = require("nanohtml/raw");
+const raw = require("choo/html/raw");
const request = require("request-promise-native");
const stringifyObject = require("stringify-object");
// V A R I A B L E S
-const randomString = local("/helpers/random-string");
+const randomString = local("/app/helpers/random-string");
const loadLanguages = require("prismjs/components/");
-const logSlackError = local("/helpers/slack");
-const publishMeme = local("/helpers/publish-meme");
-const uploadImage = local("/helpers/upload-image");
+const logSlackError = local("/app/helpers/slack");
+const publishMeme = local("/app/helpers/publish-meme");
+const uploadImage = local("/app/helpers/upload-image");
loadLanguages(["json"]);
diff --git a/helpers/github.js b/app/helpers/github.js
similarity index 100%
rename from helpers/github.js
rename to app/helpers/github.js
diff --git a/helpers/publish-meme.js b/app/helpers/publish-meme.js
similarity index 100%
rename from helpers/publish-meme.js
rename to app/helpers/publish-meme.js
diff --git a/helpers/random-string.js b/app/helpers/random-string.js
similarity index 100%
rename from helpers/random-string.js
rename to app/helpers/random-string.js
diff --git a/helpers/slack.js b/app/helpers/slack.js
similarity index 100%
rename from helpers/slack.js
rename to app/helpers/slack.js
diff --git a/helpers/upload-image.js b/app/helpers/upload-image.js
similarity index 100%
rename from helpers/upload-image.js
rename to app/helpers/upload-image.js
diff --git a/app/index.js b/app/index.js
new file mode 100755
index 0000000..138becd
--- /dev/null
+++ b/app/index.js
@@ -0,0 +1,4 @@
+// "use strict"; require("make-promises-safe"); const app = require("./server.js"); // eslint-disable-line
+
+"use strict"; require("@babel/register"); require("@babel/polyfill");
+module.exports = exports = require("./client.js");
diff --git a/modules/markdown-it-sup.js b/app/modules/markdown-it-sup.js
similarity index 100%
rename from modules/markdown-it-sup.js
rename to app/modules/markdown-it-sup.js
diff --git a/modules/relative-date.js b/app/modules/relative-date.js
similarity index 100%
rename from modules/relative-date.js
rename to app/modules/relative-date.js
diff --git a/sass/_layout.scss b/app/sass/_layout.scss
similarity index 100%
rename from sass/_layout.scss
rename to app/sass/_layout.scss
diff --git a/sass/style.scss b/app/sass/bundle.scss
similarity index 100%
rename from sass/style.scss
rename to app/sass/bundle.scss
diff --git a/sass/init/_base.scss b/app/sass/init/_base.scss
similarity index 100%
rename from sass/init/_base.scss
rename to app/sass/init/_base.scss
diff --git a/sass/init/_colors.scss b/app/sass/init/_colors.scss
similarity index 100%
rename from sass/init/_colors.scss
rename to app/sass/init/_colors.scss
diff --git a/sass/init/_extends.scss b/app/sass/init/_extends.scss
similarity index 100%
rename from sass/init/_extends.scss
rename to app/sass/init/_extends.scss
diff --git a/sass/init/_mixins.scss b/app/sass/init/_mixins.scss
similarity index 100%
rename from sass/init/_mixins.scss
rename to app/sass/init/_mixins.scss
diff --git a/sass/pages/_api.scss b/app/sass/pages/_api.scss
similarity index 100%
rename from sass/pages/_api.scss
rename to app/sass/pages/_api.scss
diff --git a/sass/pages/_contributing.scss b/app/sass/pages/_contributing.scss
similarity index 100%
rename from sass/pages/_contributing.scss
rename to app/sass/pages/_contributing.scss
diff --git a/sass/pages/_documentation.scss b/app/sass/pages/_documentation.scss
similarity index 100%
rename from sass/pages/_documentation.scss
rename to app/sass/pages/_documentation.scss
diff --git a/sass/pages/_home.scss b/app/sass/pages/_home.scss
similarity index 83%
rename from sass/pages/_home.scss
rename to app/sass/pages/_home.scss
index 55396a9..d178ef5 100644
--- a/sass/pages/_home.scss
+++ b/app/sass/pages/_home.scss
@@ -27,7 +27,8 @@
.hero {
align-items: center;
background-color: $black;
- background-image: url("/assets/media/svg/text-logo--white.svg");
+ // background-image: url("/assets/media/svg/text-logo--white.svg");
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 800 300' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill='%23fcfcfc' d='M567.328, 43.44l72.864, 130.464l0, 82.656l46.944, 0l0, -82.656l72.576, -130.464l-50.688, 0l-44.64, 84.672l-44.64, -84.672l-52.416, 0Z'/%3E %3Cpath fill='%23fcfcfc' d='M520.672, 173.616c22.464, -10.656 34.848, -31.968 34.848, -61.056c0, -44.64 -26.496, -68.832 -81.216, -69.12l-82.368, 0l0, 213.12l46.656, 0l0, -75.168l35.136, 0l31.392, 75.168l52.416, 0l-36.864, -82.944Zm-46.656, -32.544l-35.424, 0l0, -56.448l35.712, 0c23.904, 0 31.968, 12.96 31.968, 27.936c0, 15.264 -8.352, 28.512 -32.256, 28.512Z'/%3E %3Cpath fill='%23fcfcfc' d='M328.864, 150.576c15.552, -7.2 28.512, -23.04 28.512, -48.096c0, -34.848 -25.344, -58.464 -67.104, -58.464l-43.776, 0l-46.368, 0l0, 212.544l89.568, 0c42.048, 0 70.272, -19.584 70.272, -55.872c0, -26.784 -14.976, -42.048 -31.104, -50.112Zm-43.776, -67.104c19.008, 0 25.92, 14.112 25.92, 25.344c0, 11.808 -7.2, 24.768 -25.92, 24.768l-38.592, 0l0, -50.112l38.592, 0Zm2.592, 133.632l-41.184, 0l0, -49.248l41.184, 0c15.264, 0 26.208, 10.08 26.208, 25.056c0, 14.976 -10.656, 24.192 -26.208, 24.192Z'/%3E %3Cpath fill='%23fcfcfc' d='M87.52, 214.8l0, -171.36l-47.232, 0l0, 213.12l130.752, 0l0, -41.76l-83.52, 0Z'/%3E %3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
display: flex;
diff --git a/sass/pages/_page.scss b/app/sass/pages/_page.scss
similarity index 98%
rename from sass/pages/_page.scss
rename to app/sass/pages/_page.scss
index 46f4a3d..815c895 100644
--- a/sass/pages/_page.scss
+++ b/app/sass/pages/_page.scss
@@ -345,7 +345,8 @@
.page__header {
- background-image: url("/assets/media/images/background-a.jpg");
+ // background-image: url("/assets/media/images/background-a.jpg");
+ background-color: $black;
}
.page__content {
diff --git a/sass/pages/_tour.scss b/app/sass/pages/_tour.scss
similarity index 100%
rename from sass/pages/_tour.scss
rename to app/sass/pages/_tour.scss
diff --git a/sass/partials/_animation.scss b/app/sass/partials/_animation.scss
similarity index 100%
rename from sass/partials/_animation.scss
rename to app/sass/partials/_animation.scss
diff --git a/sass/partials/_ecosystem.scss b/app/sass/partials/_ecosystem.scss
similarity index 100%
rename from sass/partials/_ecosystem.scss
rename to app/sass/partials/_ecosystem.scss
diff --git a/sass/partials/_email-subscribe.scss b/app/sass/partials/_email-subscribe.scss
similarity index 100%
rename from sass/partials/_email-subscribe.scss
rename to app/sass/partials/_email-subscribe.scss
diff --git a/sass/partials/_feature-links.scss b/app/sass/partials/_feature-links.scss
similarity index 100%
rename from sass/partials/_feature-links.scss
rename to app/sass/partials/_feature-links.scss
diff --git a/sass/partials/_flash.scss b/app/sass/partials/_flash.scss
similarity index 100%
rename from sass/partials/_flash.scss
rename to app/sass/partials/_flash.scss
diff --git a/sass/partials/_footer.scss b/app/sass/partials/_footer.scss
similarity index 100%
rename from sass/partials/_footer.scss
rename to app/sass/partials/_footer.scss
diff --git a/sass/partials/_github-feed.scss b/app/sass/partials/_github-feed.scss
similarity index 98%
rename from sass/partials/_github-feed.scss
rename to app/sass/partials/_github-feed.scss
index dadc0ab..70fe8bc 100644
--- a/sass/partials/_github-feed.scss
+++ b/app/sass/partials/_github-feed.scss
@@ -24,7 +24,7 @@
padding-bottom: 2rem;
}
- @media (min-width: 901px) {
+ @media (min-width: 901px) and (max-width: 1000px) {
padding-right: 1rem;
padding-left: 1rem;
}
diff --git a/sass/partials/_glossary.scss b/app/sass/partials/_glossary.scss
similarity index 100%
rename from sass/partials/_glossary.scss
rename to app/sass/partials/_glossary.scss
diff --git a/sass/partials/_mission-statement.scss b/app/sass/partials/_mission-statement.scss
similarity index 100%
rename from sass/partials/_mission-statement.scss
rename to app/sass/partials/_mission-statement.scss
diff --git a/sass/partials/_modal.scss b/app/sass/partials/_modal.scss
similarity index 100%
rename from sass/partials/_modal.scss
rename to app/sass/partials/_modal.scss
diff --git a/sass/partials/_navigation.scss b/app/sass/partials/_navigation.scss
similarity index 81%
rename from sass/partials/_navigation.scss
rename to app/sass/partials/_navigation.scss
index 5e9ba5c..efaaa7a 100644
--- a/sass/partials/_navigation.scss
+++ b/app/sass/partials/_navigation.scss
@@ -56,7 +56,8 @@
@include hide-text;
width: 10rem; height: 3rem;
- background-image: url("/assets/media/svg/logo.svg");
+ // background-image: url("/assets/media/svg/logo.svg");
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 320 250' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill='%23222' d='M296.05, 85.9l0, 14.1l-138.8, 85.3l-104.6, -51.3l0.2, -7.9l104, 51.2l132.2, -81.2l0, -5.8l-124.8, -60.2l-139.2, 86.1l0, 38.5l131.8, 65.2l137.6, -84.4l3.9, 6l-141.1, 86.4l-139.2, -68.8l0, -46.8l145.8, -90.2l132.2, 63.8Z'/%3E %3Cpath d='M294.25, 150.9l2, -12.6l-12.2, -2.1l0.8, -4.9l17.1, 2.9l-2.8, 17.5l-4.9, -0.8Z'/%3E %3C/svg%3E");
background-repeat: no-repeat;
background-size: contain;
flex: 1;
diff --git a/sass/plugins/_prism.scss b/app/sass/plugins/_prism.scss
similarity index 100%
rename from sass/plugins/_prism.scss
rename to app/sass/plugins/_prism.scss
diff --git a/sass/type/_karla.scss b/app/sass/type/_karla.scss
similarity index 100%
rename from sass/type/_karla.scss
rename to app/sass/type/_karla.scss
diff --git a/app/views/api.js b/app/views/api.js
new file mode 100644
index 0000000..cb16b24
--- /dev/null
+++ b/app/views/api.js
@@ -0,0 +1,215 @@
+"use strict";
+
+
+
+// P A C K A G E S
+
+import dedent from "dedent";
+import fs from "graceful-fs";
+import html from "choo/html";
+import raw from "choo/html/raw";
+
+const fetch = require("make-fetch-happen").defaults({ cacheManager: "./cache" });
+
+// V A R I A B L E
+
+const apiScripts = "";
+
+
+
+// E X P O R T
+
+module.exports = exports = state => {
+ return generate(state.params.wildcard).then(response => {
+ // console.log(response);
+ return html`${response}`;
+ });
+ // generate(state.params.wildcard, response => html`${response}`);
+};
+
+
+
+/*
+module.exports = exports = () => state => {
+ console.log(state);
+ parseApiFile(state.params.wildcard).then(response => {
+ return html`
+
+
+ ${raw(apiScripts)}
+ `;
+
+ return callback(test);
+ });
+ */
+}
+
+// H E L P E R S
+
+function createApiContent(apiDetails) {
+ const apiContent = [];
+
+ for (const apiDetail of apiDetails) {
+ let apiDetailsReturns = "";
+ if (apiDetail.returns) apiDetailsReturns = JSON.parse(JSON.stringify(apiDetail.returns));
+
+ apiContent.push(`
+
+ `);
+ }
+
+ return argumentContent;
+}
diff --git a/views/pages/home.js b/app/views/home.js
old mode 100755
new mode 100644
similarity index 97%
rename from views/pages/home.js
rename to app/views/home.js
index fb6908d..028bf14
--- a/views/pages/home.js
+++ b/app/views/home.js
@@ -4,13 +4,13 @@
// P A C K A G E
-const html = require("choo/html");
+import html from "choo/html";
// E X P O R T
-module.exports = exports = () => async () => html`
+module.exports = exports = () => html`
diff --git a/views/partials/api-scripts.js b/app/views/partials/api-scripts.js
similarity index 100%
rename from views/partials/api-scripts.js
rename to app/views/partials/api-scripts.js
diff --git a/views/partials/ecosystem-scripts.js b/app/views/partials/ecosystem-scripts.js
similarity index 100%
rename from views/partials/ecosystem-scripts.js
rename to app/views/partials/ecosystem-scripts.js
diff --git a/views/partials/ecosystem.js b/app/views/partials/ecosystem.js
similarity index 100%
rename from views/partials/ecosystem.js
rename to app/views/partials/ecosystem.js
diff --git a/views/partials/ecosystem/module-applications.js b/app/views/partials/ecosystem/module-applications.js
similarity index 100%
rename from views/partials/ecosystem/module-applications.js
rename to app/views/partials/ecosystem/module-applications.js
diff --git a/views/partials/ecosystem/module-lbry.js b/app/views/partials/ecosystem/module-lbry.js
similarity index 100%
rename from views/partials/ecosystem/module-lbry.js
rename to app/views/partials/ecosystem/module-lbry.js
diff --git a/views/partials/ecosystem/module-lbrycrd.js b/app/views/partials/ecosystem/module-lbrycrd.js
similarity index 100%
rename from views/partials/ecosystem/module-lbrycrd.js
rename to app/views/partials/ecosystem/module-lbrycrd.js
diff --git a/views/partials/ecosystem/submodule-chainquery.js b/app/views/partials/ecosystem/submodule-chainquery.js
similarity index 100%
rename from views/partials/ecosystem/submodule-chainquery.js
rename to app/views/partials/ecosystem/submodule-chainquery.js
diff --git a/views/partials/ecosystem/submodule-lighthouse.js b/app/views/partials/ecosystem/submodule-lighthouse.js
similarity index 100%
rename from views/partials/ecosystem/submodule-lighthouse.js
rename to app/views/partials/ecosystem/submodule-lighthouse.js
diff --git a/views/partials/ecosystem/submodule-reflector.js b/app/views/partials/ecosystem/submodule-reflector.js
similarity index 100%
rename from views/partials/ecosystem/submodule-reflector.js
rename to app/views/partials/ecosystem/submodule-reflector.js
diff --git a/views/partials/ecosystem/submodule-wallet.js b/app/views/partials/ecosystem/submodule-wallet.js
similarity index 100%
rename from views/partials/ecosystem/submodule-wallet.js
rename to app/views/partials/ecosystem/submodule-wallet.js
diff --git a/views/partials/feature-links.js b/app/views/partials/feature-links.js
similarity index 100%
rename from views/partials/feature-links.js
rename to app/views/partials/feature-links.js
diff --git a/views/partials/glossary-scripts.js b/app/views/partials/glossary-scripts.js
similarity index 100%
rename from views/partials/glossary-scripts.js
rename to app/views/partials/glossary-scripts.js
diff --git a/views/partials/glossary-toc.js b/app/views/partials/glossary-toc.js
similarity index 100%
rename from views/partials/glossary-toc.js
rename to app/views/partials/glossary-toc.js
diff --git a/app/views/partials/head.js b/app/views/partials/head.js
new file mode 100644
index 0000000..e69de29
diff --git a/views/partials/mission-statement.js b/app/views/partials/mission-statement.js
similarity index 96%
rename from views/partials/mission-statement.js
rename to app/views/partials/mission-statement.js
index 937ab6e..73609b8 100644
--- a/views/partials/mission-statement.js
+++ b/app/views/partials/mission-statement.js
@@ -4,7 +4,7 @@
// P A C K A G E
-const html = require("choo-async/html");
+const html = require("choo/html");
diff --git a/views/partials/tour-scripts.js b/app/views/partials/tour-scripts.js
similarity index 100%
rename from views/partials/tour-scripts.js
rename to app/views/partials/tour-scripts.js
diff --git a/views/partials/tour.js b/app/views/partials/tour.js
similarity index 95%
rename from views/partials/tour.js
rename to app/views/partials/tour.js
index 796fc5f..4a82c67 100644
--- a/views/partials/tour.js
+++ b/app/views/partials/tour.js
@@ -5,8 +5,8 @@
// P A C K A G E S
const dedent = require("dedent");
-const html = require("choo-async/html");
-const raw = require("nanohtml/raw");
+const html = require("choo/html");
+const raw = require("choo/html/raw");
diff --git a/views/pages/page.js b/app/views/redirect.js
similarity index 83%
rename from views/pages/page.js
rename to app/views/redirect.js
index 6d567f0..0f7c5ab 100644
--- a/views/pages/page.js
+++ b/app/views/redirect.js
@@ -4,18 +4,22 @@
// P A C K A G E S
-const decamelize = require("decamelize");
-const exists = require("fs-exists-sync");
-const fm = require("front-matter");
-const fs = require("graceful-fs");
-const html = require("choo-async/html");
-const local = require("app-root-path").require;
+import decamelize from "decamelize";
+import exists from "fs-exists-sync";
+import fm from "front-matter";
+import fs from "graceful-fs";
+import html from "choo/html";
+import { require as local } from "app-root-path";
+import raw from "choo/html/raw";
+
+// V A R I A B L E S
+
const numberRegex = /^[0-9]/g;
const md = require("markdown-it")({
html: true,
typographer: true
-}).use(local("modules/markdown-it-sup"))
+}).use(local("app/modules/markdown-it-sup"))
.use(require("markdown-it-anchor"), {
slugify: stringToSlugify => {
let finalString = stringToSlugify
@@ -40,13 +44,11 @@ const md = require("markdown-it")({
}
}));
-const raw = require("nanohtml/raw");
-
// E X P O R T
-module.exports = exports = () => async state => {
+module.exports = exports = (state, emit) => { // eslint-disable-line
let path;
if (state.route === "resources/*") path = `resources/${state.params.wildcard}`;
@@ -80,9 +82,9 @@ module.exports = exports = () => async state => {
if (markdownFileDetails.attributes.meta) newMetadata = markdownFileDetails.attributes.meta;
let pageScript = "";
- if (path === "glossary") pageScript = "";
- if (path === "overview") pageScript = "";
- if (path === "tour") pageScript = "";
+ if (path === "glossary") pageScript = "";
+ if (path === "overview") pageScript = "";
+ if (path === "tour") pageScript = "";
return html`
@@ -138,10 +140,10 @@ function partialFinder(markdownBody) {
for (const partial of partials) {
const filename = decamelize(partial, "-").replace("<", "").replace("/>", "");
- const fileExistsTest = exists(`./views/partials/${filename}.js`); // `local` results in error if used here and file !exist
+ const fileExistsTest = exists(`./app/views/partials/${filename}.js`); // `local` results in error if used here and file !exist
if (fileExistsTest) {
- const partialFunction = local(`/views/partials/${filename}.js`);
+ const partialFunction = local(`/app/views/partials/${filename}.js`);
if (filename === "ecosystem" || filename === "feature-links") {
const neatPartial = new partialFunction;
diff --git a/client.js b/client.js
deleted file mode 100755
index 5ebb41a..0000000
--- a/client.js
+++ /dev/null
@@ -1,64 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E S
-
-const async = require("choo-async");
-const bundles = require("choo-bundles");
-const choo = require("choo");
-const data = require("choo-data");
-const devtools = require("choo-devtools");
-const ssr = require("choo-ssr");
-
-// V A R I A B L E S
-
-const head = require("./views/partials/head");
-const html = require("./views/components/html");
-const layout = require("./views/components/layout");
-
-
-
-// P R O G R A M
-
-function main() {
- const app = async(choo());
-
- app.use(ssr());
- app.use(data());
- app.use(bundles());
-
- if (process.env.NODE_ENV !== "production") app.use(devtools());
-
- const page = content => (html(
- ssr.head(
- head(),
- bundles.assets()
- ),
- ssr.body(
- async.catch(
- layout(content),
- require("./views/pages/error")(app)
- ),
- ssr.state()
- )
- ));
-
- app.route("/", page(require("./views/pages/home")(app)));
- app.route("/api", page(require("./views/pages/api")(app)));
- app.route("/api/*", page(require("./views/pages/api")(app)));
- app.route("/*", page(require("./views/pages/page")(app)));
-
- return app;
-}
-
-if (typeof window !== "undefined") {
- const app = main();
- app.mount("html");
-}
-
-
-
-// E X P O R T
-
-module.exports = exports = main;
diff --git a/config.js b/config.js
index c90d641..1dd009d 100644
--- a/config.js
+++ b/config.js
@@ -2,6 +2,8 @@
+// E X P O R T
+
module.exports = exports = {
ga: "UA-60403362-1",
github: {
diff --git a/index.js b/index.js
deleted file mode 100755
index 356e1f8..0000000
--- a/index.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict"; require("make-promises-safe"); const app = require("./server.js"); // eslint-disable-line
diff --git a/package.json b/package.json
index e2e702e..b6b53f5 100755
--- a/package.json
+++ b/package.json
@@ -1,28 +1,24 @@
{
"author": "LBRY Team",
- "babel": {
- "presets": [
- "env",
- "stage-2"
- ]
- },
"dependencies": {
+ "@babel/polyfill": "^7.0.0",
"@octokit/rest": "^15.10.0",
"app-root-path": "^2.1.0",
"async": "^2.6.1",
+ "async-es": "^2.6.1",
"choo": "^6.13.0",
"choo-async": "^0.1.1",
- "choo-bundles": "^0.2.4",
- "choo-data": "^0.1.1",
+ "choo-devtools": "^2.5.1",
"choo-ssr": "^0.2.1",
"choo-websocket": "^2.0.0",
+ "colorette": "^1.0.1",
"cors": "^2.8.4",
- "cron": "^1.4.0",
+ "cron": "^1.4.1",
"date-format-lite": "^17.7.0",
"decamelize": "^2.0.0",
"dedent": "^0.7.0",
"dotenv": "^6.0.0",
- "fastify": "^1.10.0",
+ "fastify": "^1.11.0",
"fastify-compress": "^0.6.0",
"fastify-helmet": "^2.1.0",
"fastify-plugin": "^1.2.0",
@@ -37,7 +33,7 @@
"markdown-it": "^8.4.2",
"markdown-it-anchor": "^5.0.2",
"markdown-it-wikilinks": "^1.0.1",
- "nanohtml": "^1.2.4",
+ "nanocomponent": "^6.5.2",
"prismjs": "^1.15.0",
"redis": "^2.8.0",
"request": "^2.88.0",
@@ -45,38 +41,50 @@
"slack-node": "^0.1.8",
"socket.io": "^2.1.1",
"stringify-object": "^3.2.2",
- "turbocolor": "^2.6.1"
+ "xtend": "^4.0.1"
},
"description": "Documentation for the LBRY protocol and associated projects",
"devDependencies": {
- "babel-preset-env": "^1.7.0",
- "babel-preset-stage-2": "^6.24.1",
- "choo-devtools": "^2.5.1",
+ "@babel/cli": "^7.0.0",
+ "@babel/core": "^7.0.0",
+ "@babel/plugin-external-helpers": "7.0.0",
+ "@babel/plugin-proposal-class-properties": "7.0.0",
+ "@babel/plugin-proposal-decorators": "7.0.0",
+ "@babel/plugin-proposal-export-namespace-from": "7.0.0",
+ "@babel/plugin-proposal-function-sent": "7.0.0",
+ "@babel/plugin-proposal-json-strings": "7.0.0",
+ "@babel/plugin-proposal-numeric-separator": "7.0.0",
+ "@babel/plugin-proposal-throw-expressions": "7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "7.0.0",
+ "@babel/plugin-syntax-import-meta": "7.0.0",
+ "@babel/preset-env": "^7.0.0",
+ "@babel/register": "^7.0.0",
"nodemon": "^1.18.3",
"npm-run-all": "^4.1.3",
"sass": "^1.13.0",
"snazzy": "^7.1.1",
"standardx": "^2.1.0",
- "updates": "^4.2.0"
+ "updates": "^4.2.1"
},
"engines": {
"node": "10.2.x"
},
+ "main": "server.js",
"name": "lbry.tech",
"private": true,
"scripts": {
- "lint": "standardx --verbose | snazzy",
- "start": "NODE_ENV=production node server",
- "test": "run-p test:*",
- "test:dependencies": "updates -u ./",
+ "css": "sass --update app/sass:app/dist --style compressed",
+ "start": "npm run css && NODE_ENV=production node server",
+ "test": "run-s test:*",
+ "test:dependencies": "updates --update ./",
"test:lint": "standardx --verbose | snazzy",
"watch": "run-p watch:*",
- "watch:sass": "sass --watch sass:public/css --style compressed",
- "watch:server": "NODE_ENV=development nodemon index.js --ignore 'public/'"
+ "watch:sass": "sass --watch app/sass:app/dist --style compressed",
+ "watch:server": "NODE_ENV=development nodemon server --ignore 'public/'"
},
"standardx": {
"ignore": [
- "public"
+ "app/dist"
]
},
"version": "0.0.0"
diff --git a/public/css/pages/api.css.map b/public/css/pages/api.css.map
deleted file mode 100644
index ef32df7..0000000
--- a/public/css/pages/api.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":[],"names":[],"mappings":"","file":"api.css"}
\ No newline at end of file
diff --git a/public/css/style.css b/public/css/style.css
deleted file mode 100644
index 1dac1b7..0000000
--- a/public/css/style.css
+++ /dev/null
@@ -1 +0,0 @@
-html{box-sizing:border-box;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}*,*::before,*::after{margin:0;padding:0;box-sizing:inherit;outline:0 !important}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:currentColor;text-decoration:none}*[readonly]{cursor:not-allowed}textarea[disabled]{resize:none}textarea:not[disabled]{resize:vertical}button:not(:disabled){cursor:pointer}button,input,select,textarea{border:none;border-radius:0;font-family:inherit;font-size:inherit;-moz-appearance:none;-webkit-appearance:none}button:focus,input:focus,select:focus,textarea:focus{outline:none}input,select,textarea{background-color:transparent}[type=button],[type=submit]{cursor:pointer}.left{float:left}.right{float:right}iframe{border:0}img{font-size:0;max-width:100%}img::after{width:100%;height:100%;top:-100%;left:0;background-color:#fcfcfc;background-image:url("/assets/media/images/missing.png");background-size:cover;box-shadow:0 0 1px 0 rgba(34,34,34,.3);content:"";display:block;position:relative}@media print{pre,blockquote{border:1px solid #999 !important;page-break-inside:avoid !important}tr,img{page-break-inside:avoid !important}img{max-width:100% !important}@page{margin:.5cm !important}p,h2,h3{orphans:3 !important;widows:3 !important}h2,h3{page-break-after:avoid !important}thead{display:table-header-group !important}*{background:transparent !important;color:#000 !important;text-shadow:none !important;filter:none !important}p a[href]::after{content:" (" attr(href) ")" !important}p abbr[title]::after{content:" (" attr(title) ")" !important}p a[href^="javascript:"]::after,p a[href^="#"]::after{content:"" !important}p a,p abbr{word-wrap:break-word !important;text-decoration:underline !important}}input::-moz-focus-inner,button::-moz-focus-inner{display:none}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fcfcfc inset !important}input:-webkit-autofill:focus{outline:none}.clear{clear:both;content:"";display:block}.hide-text{border:0;color:transparent;font:0/0 a;text-shadow:none}.__button-base,.__button-gray,.__button-white,.__button-black,.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta,.home .features .home__feature__cta,.__button-plain,.__button-basic,.newsletter-cta__submit{border:1px solid;font-size:1rem;letter-spacing:.025rem;position:relative;transition:all .2s}.__button-plain{background-color:transparent;border-color:transparent}.__button-plain::after{width:100%;height:2px;bottom:2px;left:0;content:"";display:block;transition:background-color .2s}.__button-plain:not(:hover)::after{background-color:transparent}.__button-plain:hover::after{background-color:#222}.__button-black:not(:hover),.home .intro .cta:not(:hover),.home .docs .cta:not(:hover),.home .contribute .cta:not(:hover),.home .develop .cta:not(:hover),.home .community .cta:not(:hover),.home .features .home__feature__cta:not(:hover){background-color:#222;border-color:#fcfcfc;box-shadow:2px 2px 0 #fcfcfc;color:#fcfcfc}.__button-black:hover,.home .intro .cta:hover,.home .docs .cta:hover,.home .contribute .cta:hover,.home .develop .cta:hover,.home .community .cta:hover,.home .features .home__feature__cta:hover{background-color:#fcfcfc;border-color:#222;box-shadow:2px 2px 0 #222;color:inherit}.__button-white:not(:hover){background-color:#fcfcfc;border-color:transparent;box-shadow:2px 2px 0 #222;color:inherit}.__button-white:hover{background-color:#222;border-color:#fcfcfc;box-shadow:2px 2px 0 #fcfcfc;color:#fcfcfc}.__button-gray{background-color:#fcfcfc}.__button-gray:not(:hover){border-color:transparent;box-shadow:2px 2px 0 #222}.__button-gray:hover{border-color:#3abf7d;box-shadow:2px 2px 0 #3abf7d;color:#3abf7d}.__button-padding-horizontal,.newsletter-cta__input,.newsletter-cta__submit,.__button-black,.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta,.home .features .home__feature__cta,.__button-white,.__button-gray{padding-right:1rem;padding-left:1rem}.__button-padding-vertical,.newsletter-cta__submit,.__button-black,.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta,.home .features .home__feature__cta,.__button-white,.__button-gray{padding-top:.5rem;padding-bottom:.5rem}.__loading,.tour__content__trends:empty,.tour__content .loader{width:100%;height:10rem;position:relative}.__loading::before,.tour__content__trends:empty::before,.tour__content .loader::before{width:4rem;height:4rem;top:2rem;left:calc(50% - 2rem);animation:spin 2s linear infinite;border-radius:50%;border-style:solid;border-top-color:#3abf7d;border-width:6px;content:"";position:absolute}.__loading::after,.tour__content__trends:empty::after,.tour__content .loader::after{top:7rem;left:0;font-size:1rem;position:absolute;text-align:center;width:100%}@font-face{font-family:"Karla";font-style:normal;font-weight:400;src:local("Karla Regular"),url(https://brick.freetls.fastly.net/fonts/karla/400.woff) format("woff")}@font-face{font-family:"Karla";font-style:italic;font-weight:400;src:local("Karla Italic"),url(https://brick.freetls.fastly.net/fonts/karla/400i.woff) format("woff")}@font-face{font-family:"Karla";font-style:normal;font-weight:700;src:local("Karla Bold"),url(https://brick.freetls.fastly.net/fonts/karla/700.woff) format("woff")}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slide-down{0%{transform:translateY(-4rem)}10%{transform:translateY(2rem)}90%{transform:translateY(2rem)}100%{transform:translateY(-4rem)}}.ecosystem{margin-bottom:2rem;padding-top:1rem;display:grid;font-size:1rem;grid-gap:1rem}.ecosystem:not(.expand-left):not(.expand-right){grid-template-columns:144px auto 144px}.ecosystem:not(.expand-left):not(.expand-right) .ecosystem__submodules{padding-top:2.5rem}.ecosystem.expand-left{grid-template-columns:50% auto}.ecosystem.expand-left .ecosystem__submodules:last-of-type,.ecosystem.expand-left .ecosystem__submodule:not(.active){display:none}@media(min-resolution: 96dpi){.ecosystem.expand-left .ecosystem__submodules:first-of-type{height:383px}}@media(min-resolution: 192dpi){.ecosystem.expand-left .ecosystem__submodules:first-of-type{height:378px}}.ecosystem.expand-right{grid-template-columns:auto 50%}.ecosystem.expand-right .ecosystem__submodules:first-of-type,.ecosystem.expand-right .ecosystem__submodule:not(.active){display:none}@media(min-resolution: 96dpi){.ecosystem.expand-right .ecosystem__submodules:last-of-type{height:383px}}@media(min-resolution: 192dpi){.ecosystem.expand-right .ecosystem__submodules:last-of-type{height:378px}}.ecosystem__module{position:relative;width:100%}.ecosystem__module > *{z-index:1}.ecosystem__module h2{position:relative;width:100%}.ecosystem__module h2 > div{float:right;font-size:1rem;padding-top:1.95rem;padding-right:3rem;position:relative;text-align:right}.ecosystem__module h2 > div::before{font-family:Georgia,serif;top:.9rem;right:3rem;content:"explore";font-size:80%;font-style:italic;opacity:.3;position:absolute;text-align:right;width:100%}.ecosystem__module h2 > div span{cursor:pointer;display:inline-block;position:relative}.ecosystem__module h2 > div span:not(:last-of-type){margin-right:1rem}.ecosystem__module h2 > div span:not(:last-of-type)::after{top:0;right:-0.7rem;color:rgba(163,183,173,.3);content:"/";font-style:italic;position:absolute}.ecosystem__module h3{position:relative}.ecosystem__module::before{width:100%;height:100%;top:0;left:0;content:"";position:absolute;z-index:0}.ecosystem__module:not(.active){align-items:center;display:inline-flex;justify-content:center}.ecosystem__module:not(.active) h2{font-size:1.5rem;text-align:center}.ecosystem__module:not(.active) h2 > span{cursor:pointer;display:block;padding:1.9rem 2rem}.ecosystem__module:not(.active) h2 > span em{display:block;font-size:70%;font-weight:normal}.ecosystem__module:not(.active) h2 > div{display:none}.ecosystem__module:not(.active) .ecosystem__module__details{display:none}.ecosystem__module:not(.active) .__close{top:2rem;transform:rotate(45deg);z-index:0}.ecosystem__module.active{padding:1.9rem 2rem}.ecosystem__module.active h2{font-size:3rem;margin-bottom:1rem}.ecosystem__module.active h2 > span{cursor:default}.ecosystem__module.active h2 > span em{display:none}.ecosystem__module.active::before{background-color:#fcfcfc}.ecosystem__module.active .__close{top:2.35rem;z-index:3}.ecosystem__module.lbrycrd,.ecosystem__module.lbry{margin-bottom:1rem}.ecosystem__module.lbry:not(.active) h2,.ecosystem__module.applications:not(.active) h2{margin-bottom:.5rem}.ecosystem__module.lbry:not(.active) h2::after,.ecosystem__module.applications:not(.active) h2::after{bottom:1rem;left:0;font-size:.5rem;letter-spacing:.1rem;position:absolute;width:100%;z-index:-1}.ecosystem__module.lbrycrd:not(.active)::before{background-color:#db3e3e}.ecosystem__module.lbrycrd.active::before{border:2px solid #db3e3e}.ecosystem__module.lbry:not(.active)::before{background-color:#3e8cdb}.ecosystem__module.lbry:not(.active) h2::after{content:"◼︎◼︎"}.ecosystem__module.lbry.active::before{border:2px solid #3e8cdb}.ecosystem__module.applications:not(.active)::before{background-color:#3edb3e}.ecosystem__module.applications:not(.active) h2::after{content:"◼︎◼︎◼︎◼︎◼︎"}.ecosystem__module.applications.active::before{border:2px solid #3edb3e}.ecosystem__module__piece{background-color:#fcfcfc;left:10%;line-height:2;position:relative;width:80%}.ecosystem__module__piece:not(:last-of-type){margin-bottom:.5rem}.ecosystem__submodule{border-width:2px;cursor:default;position:relative;transition:border-color .2s;z-index:2}.ecosystem__submodule:not(:last-of-type){margin-bottom:1rem}.ecosystem__submodule:not(.on):not(.active){color:rgba(34,34,34,.3)}.ecosystem__submodule:not(.active){align-items:center;display:inline-flex;justify-content:center;width:144px;height:144px;border-radius:50%;border-style:dashed}.ecosystem__submodule:not(.active) .ecosystem__submodule__title{width:100%;height:100%;line-height:140px;text-align:center}.ecosystem__submodule:not(.active) .ecosystem__submodule__description{display:none}.ecosystem__submodule.active{width:100%;height:100%;border-style:solid;overflow-y:auto;padding:2rem}.ecosystem__submodule.active .ecosystem__submodule__title{line-height:1.33;margin-bottom:1rem}.ecosystem__submodule:not(.blue):not(.green):not(.red){border-color:rgba(163,183,173,.3)}.ecosystem__submodule.blue:not(.active),.ecosystem__submodule.green:not(.active),.ecosystem__submodule.red:not(.active){cursor:pointer}.ecosystem__submodule.blue{background-color:rgba(62,140,219,.025);border-color:#3e8cdb}.ecosystem__submodule.green{background-color:rgba(62,219,62,.025);border-color:#3edb3e}.ecosystem__submodule.red{background-color:rgba(219,62,62,.025);border-color:#db3e3e}.ecosystem__submodule__title{font-size:1.15rem}.ecosystem__submodule__description{margin-bottom:2rem}.ecosystem__submodule__description .__close{top:-0.7rem;right:-2rem}.ecosystem__submodule__description__title{color:rgba(34,34,34,.3);letter-spacing:.1rem;text-transform:uppercase}.__parents{top:2rem;right:4rem;font-size:1.15rem;line-height:1.33;list-style-type:none;padding-right:1rem;position:absolute;z-index:1}.__parents::before,.__parents::after{position:absolute}.__parents::before{font-family:Georgia,serif;top:.3rem;left:-3.4rem;color:rgba(34,34,34,.3);content:"back to";font-size:.8rem;font-style:italic;font-weight:700}.__parents::after{width:2px;height:100%;top:0;right:0;background-color:rgba(34,34,34,.3);content:""}.__parent{font-weight:700}.__parent:not(.active){display:none}.__parent.active{cursor:pointer}.__close{cursor:pointer;font-size:2rem;position:absolute;right:2rem;transition:all .2s}.newsletter-cta{background-color:rgba(34,34,34,.2);padding-top:1rem;padding-bottom:1rem;text-align:center}.newsletter-cta > div:first-of-type{margin-right:auto;margin-left:auto}@media(min-width: 551px){.newsletter-cta > div:first-of-type{width:500px}}@media(max-width: 550px){.newsletter-cta > div:first-of-type{width:90%}}.newsletter-cta::after{clear:both;content:"";display:block}.newsletter-cta__title{font-size:.8rem;letter-spacing:.05rem;margin-bottom:.75rem;text-transform:uppercase}.newsletter-cta__input,.newsletter-cta__submit{border-style:solid;border-width:1px}@media(max-width: 550px){.newsletter-cta__input,.newsletter-cta__submit{width:100%}}.newsletter-cta__input{background-color:#fcfcfc;font-size:1rem;height:38px;transition:border .2s}@media(min-width: 551px){.newsletter-cta__input{float:left;width:calc(100% - 112px)}}@media(max-width: 550px){.newsletter-cta__input{text-align:center}}.newsletter-cta__input:not(:focus){border-top-color:#222;border-left-color:#222}@media(min-width: 551px){.newsletter-cta__input:not(:focus){border-bottom-color:#222;border-right-color:transparent}}@media(max-width: 550px){.newsletter-cta__input:not(:focus){border-bottom-color:transparent;border-right-color:#222}}.newsletter-cta__input:focus{border-top-color:#35a06b;border-left-color:#35a06b}@media(min-width: 551px){.newsletter-cta__input:focus{border-bottom-color:#35a06b;border-right-color:transparent}}@media(max-width: 550px){.newsletter-cta__input:focus{border-bottom-color:transparent;border-right-color:#35a06b}}.newsletter-cta__submit{color:#fcfcfc}@media(min-width: 551px){.newsletter-cta__submit{width:112px;height:38px;float:right;left:-1px}}@media(max-width: 550px){.newsletter-cta__submit{display:block;top:-1px}}.newsletter-cta__submit:not(:hover){background-color:#222;border-color:#222}.newsletter-cta__submit:hover{background-color:#3abf7d;border-color:#35a06b}.newsletter-cta__message{clear:both;content:"";display:block;background-color:#3abf7d;color:#fcfcfc;font-size:1rem;text-align:center}.newsletter-cta__message:not(:empty){padding:1rem}.feature-links{display:grid;grid-gap:2rem;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));list-style-type:none;padding-top:.5rem}.feature-link{width:320px;min-height:135px;background-color:#fcfcfc;border:1px solid rgba(34,34,34,.1);border-radius:3px;cursor:pointer;display:inline-block;position:relative;transition:box-shadow .2s;vertical-align:top}.feature-link > div:first-of-type{top:85px;left:5%;position:relative;text-align:center;width:90%;z-index:1}.feature-link:not(:hover) .feature-link__background{filter:brightness(0.5)}.feature-link:hover{box-shadow:0 0 15px rgba(34,34,34,.15)}.feature-link:hover .feature-link__title{color:#3abf7d}.feature-link__title{background-color:#fcfcfc;border:1px solid rgba(128,128,128,.1);box-shadow:0 2px 5px rgba(34,34,34,.025);border-radius:3px;box-decoration-break:clone;display:inline;font-size:1rem;line-height:1.7;padding:.25rem .5rem;transition:color .2s;position:relative}.feature-link__background{width:calc(100% + 2px);height:100px;top:-1px;left:-1px;background-color:#3abf7d;border-top-right-radius:3px;border-top-left-radius:3px;transition:filter .2s;overflow:hidden;position:absolute;z-index:0}.feature-link__background img{width:100%;height:100%;object-fit:cover;object-position:center}.flashes{top:4rem;right:0;position:absolute;width:100%;z-index:9}.flash{border:2px solid;border-radius:3px;font-size:1rem;line-height:1.33;padding:.5rem 1rem;position:absolute;right:2rem}.flash:not(.error):not(.info):not(.warning){background-color:#e9f6ef;border-color:#3abf7d}.flash:not(.active){transform:translateY(-4rem)}.flash.active{animation:slide-down 2s linear;transform:translateY(-4rem)}.flash.error{background-color:#f9e9e9;border-color:#db3e3e}.flash.info{background-color:#f3f5f4;border-color:#a3b7ad}.flash.warning{background-color:#f9f9e9;border-color:#dbdb3e}.footer{background-color:#222;color:rgba(252,252,252,.15);font-size:1rem;padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);position:relative}@media(max-width: 980px){.footer::before{width:3rem;height:100%;bottom:0;right:0;background-image:linear-gradient(90deg, rgba(34, 34, 34, 0), #222 50%, #222);content:"";position:absolute;z-index:2}}@media(max-width: 980px){.footer > div:first-of-type{overflow:auto;overflow-scrolling:touch;white-space:nowrap;width:100%}}.footer ul{list-style-type:none;padding-top:2rem;padding-bottom:2rem}@media(min-width: 981px){.footer ul{align-items:stretch;display:flex;flex-flow:row wrap}}.footer ul li{padding-right:.5rem;padding-left:.5rem;vertical-align:bottom}@media(max-width: 980px){.footer ul li{display:inline-block;transform:translate3d(0, 0, 0);transition:opacity .2s .2s ease,transform .4s .2s cubic-bezier(0.215, 0.61, 0.355, 1)}.footer ul li:last-of-type{margin-right:3rem}}.footer ul li:first-of-type{flex:1}.footer a{transition:color .2s}.footer a:not(:hover){color:#fcfcfc}.footer a:hover{color:#3abf7d}.github-feed{border-bottom:1px solid rgba(34,34,34,.05);border-left:1px solid rgba(34,34,34,.05);font-size:.8rem;grid-area:github;position:relative}@media(min-width: 1301px){.github-feed{padding-top:3.7rem}}@media(min-width: 1001px)and (max-width: 1300px){.github-feed{padding-top:2.95rem}}@media(min-width: 1001px){.github-feed{padding-bottom:2rem;padding-right:10%;padding-left:2rem}}@media(max-width: 1000px){.github-feed{padding-top:2rem;padding-bottom:2rem}}@media(min-width: 901px){.github-feed{padding-right:1rem;padding-left:1rem}}@media(max-width: 900px){.github-feed{padding-right:2rem;padding-left:2rem}}@media(max-width: 700px){.github-feed{overflow-x:auto;overflow-y:hidden;white-space:nowrap}}@media(min-width: 1001px){.github-feed h3,.github-feed h5{text-align:center}}.github-feed h3{letter-spacing:.1rem;line-height:1;text-transform:uppercase;width:100%}@media(min-width: 1301px){.github-feed h3{top:2.15rem;left:0;color:rgba(34,34,34,.045);font-size:4rem;position:absolute}}@media(max-width: 1300px){.github-feed h3{color:#222}}@media(min-width: 901px)and (max-width: 1300px){.github-feed h3{font-size:3rem}}@media(max-width: 900px){.github-feed h3{font-size:2rem;margin-bottom:1rem}}.github-feed h5{font-style:italic;font-weight:normal}@media(min-width: 1001px){.github-feed h5{margin-bottom:3rem}}@media(min-width: 901px)and (max-width: 1000px){.github-feed h5{margin-bottom:2rem}}@media(max-width: 900px){.github-feed h5{margin-bottom:.5rem;position:relative;top:-1rem}}.github-feed__event{line-height:1.55}@media(max-width: 700px){.github-feed__event{display:inline-block;margin-right:1.25rem;vertical-align:top;width:200px}}@media(min-width: 701px){.github-feed__event:not(:last-of-type){margin-bottom:1.25rem}}.github-feed__event > a:first-of-type{font-weight:700;margin-bottom:.5rem;width:100%}@media(max-width: 700px){.github-feed__event > p:first-of-type{box-shadow:0 2px 5px rgba(34,34,34,.025)}}.github-feed__event > p:first-of-type code{background-color:#222;border-radius:3px;color:#fcfcfc;font-size:80%;letter-spacing:.05rem;padding:.2rem .5rem;position:relative;top:-1px}.github-feed__event > p:first-of-type em:not(.github-feed__event__time){text-decoration:underline}@media(min-width: 701px){.github-feed__event > p:first-of-type{display:inline-block;margin-left:.5rem;vertical-align:top;width:calc(100% - 4.5rem)}}@media(max-width: 700px){.github-feed__event > p:first-of-type{top:-3.5rem;left:5%;background-color:#fcfcfc;border:1px solid rgba(163,183,173,.1);border-radius:3px;padding:1rem;position:relative;white-space:normal;width:90%}}.github-feed__event__avatar{border:1px solid rgba(163,183,173,.1);border-radius:3px;object-position:center;object-fit:cover}@media(min-width: 701px){.github-feed__event__avatar{width:2.5rem;height:2.5rem}}@media(max-width: 700px){.github-feed__event__avatar{width:100%;height:100%}}.github-feed__event__time{color:#a3b7ad;display:block}@media(max-width: 700px){.github-feed__event__time{padding-top:1rem}}.glossary:not(.sidebar-closed) main{margin-left:250px;width:calc(100vw - 250px)}.glossary:not(.sidebar-closed) .page__header-wrap .inner-wrap,.glossary:not(.sidebar-closed) .page__content .inner-wrap{margin-left:1rem;max-width:initial}.glossary:not(.sidebar-closed) .component--glossary-toc-toggle{left:calc(250px - 25px)}.glossary.sidebar-closed .component--glossary-toc{left:-250px}.glossary.sidebar-closed .component--glossary-toc-toggle{left:0}.component--glossary-toc{width:250px;height:calc(100vh - 4rem);top:4rem;left:0;background-color:#fcfcfc;border-right:1px solid rgba(163,183,173,.3);font-size:.8rem !important;overflow-x:hidden;overflow-y:auto;padding-top:1rem !important;position:fixed !important;z-index:1}.component--glossary-toc li:last-of-type{margin-bottom:1rem}.component--glossary-toc-toggle{width:25px;height:104px;font-size:.7rem;position:absolute;text-orientation:upright;text-transform:uppercase;top:4rem;writing-mode:vertical-rl;z-index:1}.navigation{top:0;left:0;background-color:#fcfcfc;box-shadow:0 1px 5px rgba(34,34,34,.1);padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);position:fixed;width:100%;z-index:10}.navigation > div:first-of-type{position:relative}@media(min-width: 701px){.navigation > div:first-of-type{align-items:stretch;display:flex;flex-flow:row wrap}}@media(max-width: 700px){.navigation > div:first-of-type{overflow:auto;overflow-scrolling:touch;white-space:nowrap;width:100%}.navigation > div:first-of-type::before{width:2rem;height:4rem;top:0;right:0;background-image:linear-gradient(90deg, rgba(252, 252, 252, 0), #fcfcfc 50%, #fcfcfc);content:"";position:fixed;z-index:2}}.navigation__item{overflow:hidden;position:relative}@media(max-width: 700px){.navigation__item{display:inline-block;transform:translate3d(0, 0, 0);transition:opacity .2s .2s ease,transform .4s .2s cubic-bezier(0.215, 0.61, 0.355, 1);vertical-align:top}.navigation__item:last-of-type{margin-right:3rem}}.navigation__item:first-of-type{border:0;color:transparent;font:0/0 a;text-shadow:none;width:10rem;height:3rem;background-image:url("/assets/media/svg/logo.svg");background-repeat:no-repeat;background-size:contain;flex:1;top:.5rem}.navigation__item:not(:first-of-type):not([href="https://lbry.io"])::after{width:100%;height:3px;background-color:#3abf7d;content:"";left:0;position:absolute;transition:bottom .2s}.navigation__item:not(:first-of-type):not([href="https://lbry.io"]):not(:hover)::after{bottom:-3px}.navigation__item:not(:first-of-type):not([href="https://lbry.io"]):hover::after,.navigation__item:not(:first-of-type):not([href="https://lbry.io"]).active::after{bottom:0}.navigation__item:not(:first-of-type){color:inherit;font-size:1rem;line-height:4rem}.navigation__item:not([href="https://lbry.io"]){padding-right:.5rem;padding-left:.5rem}.navigation__item[href="https://lbry.io"]{color:#fcfcfc;margin-right:.5rem;padding-right:1rem;padding-left:1rem}.navigation__item[href="https://lbry.io"]:not(:hover)::after{background-color:#222}.navigation__item[href="https://lbry.io"]:hover::after{background-color:#3abf7d}.navigation__item[href="https://lbry.io"]::after{width:100%;height:2rem;top:1rem;left:0;border-radius:3px;content:"";position:absolute;transition:background-color .2s;z-index:-1}.component--mission-statement{margin-bottom:1.5rem;padding:1rem 1rem 1rem 1.25rem;background-color:rgba(58,191,125,.1);border-left:.5rem solid #3abf7d;line-height:1.55;position:relative}@media(min-width: 901px){.component--mission-statement{font-size:1.25rem}}@media(max-width: 900px){.component--mission-statement{font-size:1.05rem}}.component--mission-statement__title{color:#3abf7d;display:block;letter-spacing:.025rem;text-transform:uppercase}.modal{align-items:center;display:inline-flex;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:rgba(34,34,34,.5);position:fixed;z-index:10}@media(min-width: 901px){.modal h3{font-size:1.5rem;margin-bottom:.25rem}}@media(max-width: 900px){.modal h3{font-size:1.25rem}}.modal p{margin-bottom:1rem}@media(min-width: 901px){.modal p{font-size:1.15rem;line-height:1.33}}@media(max-width: 900px){.modal p{font-size:1.05rem;line-height:1.55}}.modal p a{color:#3abf7d}.modal-wrap{background-color:#fcfcfc;padding:2rem 1.5rem}@media(min-width: 501px){.modal-wrap{width:500px}}@media(max-width: 500px){.modal-wrap{width:100%}}html,body{width:100%;height:100%}html{background-color:#fcfcfc}body{font-family:Karla,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";color:#222;font-size:12px;min-width:320px;overflow-x:hidden;position:relative;z-index:0}body:not(.home) main > div:first-of-type{flex:1}@media(min-width: 1001px){body.home main > div:first-of-type{display:grid;grid-gap:0;grid-template-areas:"header header header" "features features features" "intro intro github" "docs docs github" "contribute contribute contribute" "develop develop develop" "community community community"}}main{display:flex;flex-direction:column;min-height:100vh;padding-top:4rem}.inner-wrap{margin-right:auto;margin-left:auto;max-width:1200px}@media(min-width: 901px){.inner-wrap{padding-right:1rem;padding-left:1rem}}@media(max-width: 900px){.inner-wrap{padding-right:2rem;padding-left:2rem}}.inner-wrap::after{clear:both;content:"";display:block}h1 .header-anchor,h2 .header-anchor,h3 .header-anchor,h4 .header-anchor,h5 .header-anchor{display:none}hr{width:100%;height:1px;background-color:rgba(163,183,173,.3);border:none;margin-bottom:1rem}.alert{bottom:0;left:0;background-color:#dbdb3e;line-height:1.33;padding-top:1rem;padding-right:env(safe-area-inset-right);padding-bottom:1rem;padding-left:env(safe-area-inset-left);position:fixed;text-align:left;width:100%;z-index:3}.alert > div:first-of-type{position:relative}@media(min-width: 901px){.alert{font-size:1rem}}@media(max-width: 900px){.alert{font-size:.8rem}}.alert p,.alert button{display:inline-block}.alert p{padding-right:1rem;width:calc(100% - 2.25rem)}.alert a{font-weight:600;text-decoration:underline}.alert button{width:1.25rem;height:1.25rem;top:0;right:0;background-color:#fcfcfc;border-radius:50%;display:block;font-size:1rem;line-height:1;margin-right:1rem;margin-left:1rem;position:absolute;text-align:center}.__slate{width:100%;height:100%;position:relative}.__slate::after{clear:both;content:"";display:block}.api__toc{width:200px;height:calc(100vh - 4rem);top:4rem;left:0;bottom:0;background-color:#fcfcfc;border-right:1px solid rgba(163,183,173,.3);float:left;overflow-x:hidden;overflow-y:auto;position:fixed;z-index:3}.api__toc__search{position:relative}.api__toc__search__field{border-bottom:1px solid rgba(163,183,173,.3);font-size:.8rem;line-height:2rem;padding:.25rem calc(2rem + 4px) .25rem .75rem;width:100%}.api__toc__search__clear{width:1.25rem;height:1.25rem;top:.6rem;right:.75rem;background-color:#222;border-radius:50%;color:#fcfcfc;cursor:pointer;font-size:1rem;line-height:1.15;position:absolute;text-align:center;transition:opacity .2s}.api__toc__search__clear:not(.active){opacity:0;visibility:hidden}.api__toc__search__clear.active{opacity:1;visibility:visible}.api__toc__items{font-size:.8rem;line-height:1.33;list-style-type:none;padding-top:.25rem;padding-bottom:.25rem}.api__toc__item:hover{background-color:rgba(163,183,173,.3)}.api__toc__item a{display:block;padding:.25rem .5rem .25rem .75rem}.api__content{display:grid;float:right;grid-template-columns:repeat(auto-fit, minmax(50%, 1fr));width:calc(100% - 200px)}.api__content h1{font-size:1.5rem;margin-bottom:.5rem}.api__content h2{font-size:1.5rem;margin-bottom:.5rem}.api__content h3{font-size:.8rem;letter-spacing:.1rem;margin-bottom:.25rem;text-transform:uppercase}.api__content p,.api__content ol,.api__content ul{font-size:1rem;line-height:1.5;margin-bottom:1rem}.api__content table{border:1px solid rgba(252,252,252,.1);border-radius:.3rem;border-spacing:0;font-size:.8rem;line-height:1.33;width:100%}.api__content thead{display:none}.api__content th,.api__content td{padding:.5rem 1rem .5rem .5rem}.api__content th{border-bottom:1px solid rgba(252,252,252,.1)}.api__content tr:nth-child(even){background-color:rgba(252,252,252,.1)}.api__content pre{margin-bottom:2rem;padding:1rem;border-radius:.3rem;font-size:.8rem;line-height:1.33;overflow-x:auto;overflow-y:hidden}.api__content__body{border-bottom:1px solid rgba(163,183,173,.3);padding:2rem}.api__content__body pre{border:1px solid rgba(163,183,173,.3)}.api__content__body__arguments{border:1px solid rgba(163,183,173,.3);border-radius:3px;list-style-type:none}.api__content__body__argument:not(:last-of-type){border-bottom:1px solid rgba(163,183,173,.3)}.api__content__body__argument:nth-child(even){background-color:rgba(163,183,173,.1)}.api__content__body__argument .left,.api__content__body__argument .right{padding:.5rem .75rem}.api__content__body__argument .left{border-right:1px solid rgba(163,183,173,.3);width:30%;word-wrap:break-word}.api__content__body__argument .left span{color:#a3b7ad;font-size:.8rem}.api__content__body__argument .left span:not(:first-of-type){margin-left:.5rem}.api__content__body__argument .right{width:70%}.api__content__body__argument::after{clear:both;content:"";display:block}.api__content__example{background-color:#2f3130;border-bottom:1px solid rgba(252,252,252,.1);color:#fcfcfc;padding:2rem}.api__content__example pre{background-color:#222}.contributing table th:first-of-type{width:30%}.contributing table th:nth-of-type(2){width:20%}.documentation ol + h1,.documentation ul + h1{padding-top:2rem}.documentation h4 + h2{padding-top:2rem}.documentation .blog-posts{list-style-type:none}.documentation .blog-post{position:relative}.documentation .blog-post::before{background-color:#222;border-radius:50%;content:"";line-height:0;position:absolute}@media(min-width: 901px){.documentation .blog-post::before{width:7px;height:7px;top:14px;left:-1.05rem}}@media(max-width: 900px){.documentation .blog-post::before{width:6px;height:6px;top:11px;left:-0.95rem}}.documentation .blog-post__title{line-height:1.33}.documentation .blog-post__title::after{content:"";display:block}.documentation .blog-post__meta{font-size:80%;line-height:1;margin-bottom:1rem}.documentation .blog-post__meta__author::before{content:"by"}@media(min-width: 901px){.documentation .blog-post__meta__author::before{left:-1.2rem}}@media(max-width: 900px){.documentation .blog-post__meta__author::before{left:-1rem}}@media(min-width: 901px){.documentation .blog-post__meta__date{margin-right:1.4rem;margin-left:3.1rem}}@media(max-width: 900px){.documentation .blog-post__meta__date{margin-right:1.2rem;margin-left:2.6rem}}.documentation .blog-post__meta__date::before{content:"posted"}@media(min-width: 901px){.documentation .blog-post__meta__date::before{left:-3.1rem}}@media(max-width: 900px){.documentation .blog-post__meta__date::before{left:-2.6rem}}.documentation .blog-post__meta__author,.documentation .blog-post__meta__date{display:inline-block;position:relative}.documentation .blog-post__meta__author::before,.documentation .blog-post__meta__date::before{color:rgba(34,34,34,.5);font-style:italic;position:absolute;vertical-align:bottom}.home{padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}.home h2{font-weight:normal;margin-bottom:4rem;text-align:center}@media(min-width: 851px){.home h2{font-size:1.75rem}}@media(max-width: 850px){.home h2{font-size:1.25rem}}.home hr{width:100%;height:1px;background-color:rgba(34,34,34,.1);border:none;margin-bottom:4rem}.home .hero{align-items:center;background-color:#222;background-image:url("/assets/media/svg/text-logo--white.svg");background-position:center;background-repeat:no-repeat;display:flex;grid-area:header;height:calc(50vh - 4rem);min-height:300px;justify-content:center}@media(max-width: 850px){.home .hero{background-size:cover}}.home .hero h1{background-color:#fcfcfc;border:1px solid rgba(34,34,34,.1);box-decoration-break:clone;display:inline;font-weight:normal;line-height:2;padding:.4rem 1rem;-webkit-box-decoration-break:clone}@media(min-width: 851px){.home .hero h1{font-size:1.75rem}}@media(max-width: 850px){.home .hero h1{font-size:1.25rem}}.home .features{grid-area:features}.home .features .home__features{align-content:center;border-bottom:1px solid rgba(34,34,34,.05);display:flex;flex-flow:row wrap;list-style-type:none;padding-top:2rem;padding-bottom:2rem}.home .features .home__feature{position:relative;text-align:center;vertical-align:top}@media(min-width: 651px){.home .features .home__feature{width:50%}}@media(max-width: 650px){.home .features .home__feature{width:100%}.home .features .home__feature:first-of-type{padding-bottom:1rem}.home .features .home__feature:last-of-type{padding-top:1rem}}.home .features .home__feature__title{font-size:2rem;margin-bottom:.5rem}.home .features .home__feature__description{font-size:1rem;left:10%;margin-bottom:1rem;position:relative;width:80%}.home .features .home__feature__cta{display:inline-block;font-size:1rem;position:relative}.home .intro,.home .docs,.home .contribute,.home .develop,.home .community{padding-top:3rem;padding-bottom:3.5rem}.home .intro .inner-wrap,.home .docs .inner-wrap,.home .contribute .inner-wrap,.home .develop .inner-wrap,.home .community .inner-wrap{position:relative}.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{letter-spacing:.1rem;line-height:1;text-transform:uppercase}@media(min-width: 1301px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{top:-0.85rem;left:-2rem;color:rgba(34,34,34,.045);font-size:4rem;position:absolute}}@media(max-width: 1300px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{color:#222}}@media(min-width: 901px)and (max-width: 1300px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{font-size:3rem}}@media(max-width: 900px){.home .intro h3,.home .docs h3,.home .contribute h3,.home .develop h3,.home .community h3{font-size:2rem;margin-bottom:1rem}}.home .intro p,.home .docs p,.home .contribute p,.home .develop p,.home .community p{margin-bottom:1.5rem;max-width:1000px}@media(min-width: 901px){.home .intro p,.home .docs p,.home .contribute p,.home .develop p,.home .community p{font-size:1.5rem;line-height:1.55}}@media(max-width: 900px){.home .intro p,.home .docs p,.home .contribute p,.home .develop p,.home .community p{font-size:1.25rem;line-height:1.33}}.home .intro p:first-of-type,.home .docs p:first-of-type,.home .contribute p:first-of-type,.home .develop p:first-of-type,.home .community p:first-of-type{padding-top:.5rem}.home .intro .cta,.home .docs .cta,.home .contribute .cta,.home .develop .cta,.home .community .cta{top:.5rem}.home .intro,.home .docs,.home .contribute,.home .develop{border-bottom:1px solid rgba(34,34,34,.05)}@media(min-width: 1301px){.home .intro,.home .docs{padding-left:10%}}.home .intro{grid-area:intro}.home .docs{grid-area:docs}@media(min-width: 1301px){.home .community p,.home .contribute p{margin-right:auto;margin-left:auto;text-align:center}}.home .community ul,.home .contribute ul{list-style-type:none;padding-top:1rem}.home .community ul::after,.home .contribute ul::after{clear:both;content:"";display:block}@media(min-width: 901px){.home .community ul,.home .contribute ul{font-size:1.5rem}}@media(min-width: 751px)and (max-width: 900px){.home .community ul,.home .contribute ul{font-size:1.25rem}}@media(max-width: 750px){.home .community ul,.home .contribute ul{font-size:1rem}}.home .community ul li,.home .contribute ul li{float:left;position:relative;text-align:center}@media(max-width: 750px){.home .community ul li,.home .contribute ul li{margin-bottom:2rem;min-width:8rem}}.home .community ul li a,.home .contribute ul li a{display:block;position:relative;padding-top:4rem;transition:color .2s}.home .community ul li a::before,.home .contribute ul li a::before{width:100%;height:100%;background-position:center 0;background-repeat:no-repeat;content:"";left:0;position:absolute}.home .community ul li a:not(:hover),.home .contribute ul li a:not(:hover){color:inherit}.home .community ul li a:hover,.home .contribute ul li a:hover{color:#3abf7d}.home .contribute{grid-area:contribute}@media(min-width: 701px){.home .contribute ul li{width:calc(100% / 5)}}@media(max-width: 700px){.home .contribute ul li{width:50%}}@media(min-width: 901px){.home .contribute ul li a::before{background-size:4rem;top:-1rem}}@media(max-width: 900px){.home .contribute ul li a::before{background-size:3rem;top:0}}.home .contribute ul li:nth-child(1) a::before{background-image:url("/assets/media/svg/flag.svg")}.home .contribute ul li:nth-child(2) a::before{background-image:url("/assets/media/svg/keyboard.svg")}.home .contribute ul li:nth-child(3) a::before{background-image:url("/assets/media/svg/anchor.svg")}.home .contribute ul li:nth-child(4) a::before{background-image:url("/assets/media/svg/chat.svg")}.home .contribute ul li:nth-child(5) a::before{background-image:url("/assets/media/svg/monitor.svg")}.home .develop{grid-area:develop}.home .community{grid-area:community}@media(min-width: 701px){.home .community ul li{width:50%}}@media(max-width: 700px){.home .community ul li{width:50%}}@media(min-width: 901px){.home .community ul li a::before{background-size:6rem;top:-2rem}}@media(max-width: 900px){.home .community ul li a::before{background-size:4rem;top:-0.5rem}}.home .community ul li:nth-child(1) a::before{background-image:url("/assets/media/svg/discord.svg")}.home .community ul li:nth-child(2) a::before{background-image:url("/assets/media/svg/reddit.svg")}.home .community ul li:nth-child(3) a::before{background-image:url("/assets/media/svg/slack.svg")}.page{display:flex;flex:1;flex-direction:column;height:100%}.page__header-wrap{width:100%}.page__header{align-items:center;display:inline-flex;justify-content:center;background-position:center;background-repeat:no-repeat;background-size:cover;color:#fcfcfc;padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);position:relative;width:100%}.page__header__title{font-weight:300;text-shadow:1px 1px 2px rgba(34,34,34,.3)}@media(min-width: 901px){.page__header__title{font-size:3rem;line-height:6.5rem}}@media(max-width: 900px){.page__header__title{font-size:2rem;line-height:1;padding-top:1rem;padding-bottom:1rem}}.page__content{background-repeat:repeat;background-size:32px;flex:1;padding-top:2rem;padding-bottom:2rem;padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left)}.page__content h1{margin-bottom:.25rem}@media(min-width: 901px){.page__content h1{font-size:3rem}}@media(max-width: 900px){.page__content h1{font-size:2rem}}.page__content h1 + h2{margin-bottom:2rem}@media(min-width: 901px){.page__content h2:not(.__title){font-size:2rem}}@media(max-width: 900px){.page__content h2:not(.__title){font-size:1.5rem}}.page__content h2:not(.__title) + h3{margin-bottom:1rem;padding-top:.25rem}@media(min-width: 901px){.page__content h3:not(.ecosystem__submodule__title){font-size:1.5rem}}@media(max-width: 900px){.page__content h3:not(.ecosystem__submodule__title){font-size:1.25rem}}.page__content h3:not(.ecosystem__submodule__title) + table{top:.25rem}.page__content h4:not(.ecosystem__submodule__description__title){letter-spacing:.05rem;text-transform:uppercase}@media(min-width: 901px){.page__content h4:not(.ecosystem__submodule__description__title){font-size:1.25rem}}@media(max-width: 900px){.page__content h4:not(.ecosystem__submodule__description__title){font-size:1.15rem}}.page__content h5{font-size:1rem}.page__content sup{font-family:"Courier New",monospace}.page__content blockquote{left:2px;line-height:1.5;margin-bottom:.5rem;position:relative}@media(min-width: 601px){.page__content blockquote{margin-left:15%;padding:.5rem 0 .05rem 2rem;font-size:1.5rem;width:70%}}@media(max-width: 600px){.page__content blockquote{font-size:1.25rem;padding:.5rem 0 .05rem 0}}@media(min-width: 376px)and (max-width: 600px){.page__content blockquote{margin-left:5%;width:90%}}.page__content blockquote p{font-size:inherit;line-height:inherit}.page__content blockquote::before{font-family:Georgia,serif;width:150px;height:100px;top:3rem;left:-2rem;color:rgba(58,191,125,.2);content:"“";font-size:20rem;line-height:.5;position:absolute}.page__content p code,.page__content ol code,.page__content ul:not(.overview__ecosystem__module) code,.page__content table code{background-color:#222;border-radius:3px;color:#fcfcfc;font-size:60%;letter-spacing:.05rem;padding:.3rem .5rem;vertical-align:middle}@media(max-width: 900px){.page__content p code,.page__content ol code,.page__content ul:not(.overview__ecosystem__module) code,.page__content table code{position:relative;top:-1px}}.page__content p,.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents){margin-bottom:1rem;position:relative}@media(min-width: 901px){.page__content p,.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents){font-size:1.25rem;line-height:1.6}}@media(max-width: 900px){.page__content p,.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents){font-size:1.05rem;line-height:1.55}}.page__content ol,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar){padding-top:.5rem}.page__content ol li:not(:last-of-type),.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) li:not(:last-of-type){margin-bottom:.25rem}.page__content ol + h2,.page__content ol + h3,.page__content ol + h4,.page__content ol + h5,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h2,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h3,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h4,.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar) + h5{padding-top:2rem}.page__content ol{list-style-type:lower-roman;padding-left:1.6rem}.page__content ul:not(.feature-links):not(.overview__ecosystem__module):not(.__parents):not(.tour__sidebar){padding-left:1.25rem}.page__content p img{float:right}.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain){background-image:linear-gradient(#fcfcfc, #fcfcfc),linear-gradient(#fcfcfc, #fcfcfc),linear-gradient(#3abf7d, #3abf7d);background-position:0 88%,100% 88%,0 88%;background-repeat:no-repeat,no-repeat,repeat-x;background-size:.05rem 1px,.05rem 1px,1px 1px;box-decoration-break:clone;display:inline;text-decoration:none;text-shadow:.03rem 0 #fcfcfc,-0.03rem 0 #fcfcfc,0 .03rem #fcfcfc,0 -0.03rem #fcfcfc,.06rem 0 #fcfcfc,-0.06rem 0 #fcfcfc,.09rem 0 #fcfcfc,-0.09rem 0 #fcfcfc,.12rem 0 #fcfcfc,-0.12rem 0 #fcfcfc,.15rem 0 #fcfcfc,-0.15rem 0 #fcfcfc;color:#3abf7d}.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain)::selection{background-color:#3abf7d;color:#fcfcfc;text-shadow:none}.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain)::-moz-selection{background-color:#3abf7d;color:#fcfcfc;text-shadow:none}@-moz-document url-prefix(){.page__content a:not(.__button-black):not(.button):not(.feature-link__title):not(.header-anchor):not(.newsletter-standalone__submit):not(.__plain){background-position:0 90%,100% 90%,0 90%}}.page__content pre{margin-bottom:2rem;padding:2rem;border-radius:3px;font-size:1rem;line-height:1.33;overflow-x:auto;overflow-y:hidden}.page__content pre:not([class]),.page__content pre.language-text{background-color:#27283e;color:#fcfcfc}.page__content pre.language-yaml{background-color:#27273f;color:#ffe066}.page__content pre.language-yaml .atrule{color:#f083ac}.page__content pre.language-yaml .important{color:#ffa94d}.page__content pre.language-yaml .punctuation{color:#fcfcfc}.page__content table{background-color:#fcfcfc;border:1px solid rgba(163,183,173,.3);border-spacing:0;margin-bottom:2rem;position:relative;width:100%}@media(max-width: 1030px){.page__content table{display:inline-grid}.page__content table thead{display:none}.page__content table tbody,.page__content table tr,.page__content table td{display:block}.page__content table tbody tr:last-of-type td:not(:last-of-type){border-bottom:1px solid rgba(163,183,173,.3)}}.page__content table thead{background-color:#222;color:#fcfcfc;cursor:default;position:relative}.page__content table thead tr{position:relative;z-index:1}.page__content table thead:not(*:root)::after{z-index:-1}.page__content table thead::after{width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px;background-color:#222;content:"";position:absolute;z-index:0}.page__content table tbody{line-height:1.55}.page__content table tr:nth-of-type(even){background-color:rgba(34,34,34,.025)}.page__content table th,.page__content table td{padding:.5rem 1rem}.page__content table th{font-size:.8rem;letter-spacing:.1rem;text-transform:uppercase}.page__content table tbody tr:not(:last-of-type) td{border-bottom:1px solid rgba(163,183,173,.3)}.page__content table td{font-size:1rem}.page__header{background-image:url("/assets/media/images/background-a.jpg")}.page__content{background-image:url("/assets/media/images/grid.png")}.tour{border-top:1px solid rgba(34,34,34,.05);position:relative;top:1rem}.tour.waiting::before{top:0;right:0;bottom:0;left:0;background-color:rgba(252,252,252,.7);content:"";cursor:url("/assets/media/svg/watch--green.svg"),auto;position:absolute;z-index:5}.tour::after{clear:both;content:"";display:block}.tour__sidebar{width:250px;height:100%;float:left;list-style-type:none;padding-top:1rem;padding-right:1rem;vertical-align:top}.tour__sidebar__example{cursor:pointer;position:relative}.tour__sidebar__example::before{width:1rem;height:1rem;top:.5rem;left:0;border:1px solid;border-radius:50%;content:attr(data-example);font-size:.8rem;line-height:1.1;position:absolute;text-align:center}.tour__sidebar__example:not(:last-of-type){margin-bottom:1.5rem}.tour__sidebar__example:not(.active)::before,.tour__sidebar__example:not(.active) button,.tour__sidebar__example:not(.active) span{color:rgba(34,34,34,.3)}.tour__sidebar__example.active button,.tour__sidebar__example:hover button{color:#3abf7d}.tour__sidebar__example.active::before,.tour__sidebar__example.active span,.tour__sidebar__example:hover::before,.tour__sidebar__example:hover span{color:#222}.tour__sidebar__example::before,.tour__sidebar__example button,.tour__sidebar__example span{transition:color .2s}.tour__sidebar__example button{background-color:transparent;font-size:1.25rem;font-weight:600;padding-left:1.3rem}.tour__sidebar__example span{display:block;font-size:1rem}.tour__content{width:calc(100% - 250px);height:100%;min-height:500px;border-left:1px solid rgba(34,34,34,.05);float:right;padding:1rem 0 1rem 1rem;vertical-align:top}.tour__content .loader::after{content:"Processing request"}.tour__content__meme{overflow-y:auto;position:relative}.tour__content__meme::after{clear:both;content:"";display:block}.tour__content__meme__canvas{float:left;margin-right:2%;width:48%}.tour__content__meme__canvas canvas{width:100%;height:100%;background-color:rgba(58,191,125,.3);margin-bottom:1rem}.tour__content__meme__canvas__thumbnail{width:5rem;height:5rem;border-style:solid;border-width:2px;margin-bottom:1rem;object-fit:contain;object-position:center}.tour__content__meme__canvas__thumbnail:not(:last-of-type){margin-right:1rem}.tour__content__meme__canvas__thumbnail:not(.selected){border-color:transparent}.tour__content__meme__canvas__thumbnail.selected{border-color:#222}.tour__content__meme__editor{float:right;width:48%}.tour__content__meme__editor h2.__metadata{margin-top:3rem}.tour__content__meme__editor fieldset{border:none}.tour__content__meme__editor fieldset:not(:last-of-type){margin-bottom:1rem}.tour__content__meme__editor label{color:rgba(34,34,34,.3);display:block;font-size:.8rem;font-weight:600;letter-spacing:.05rem;margin-bottom:.025rem;text-transform:uppercase;width:100%}@media(min-width: 901px){.tour__content__meme__editor input:not([type=checkbox]):not([type=submit]),.tour__content__meme__editor select,.tour__content__meme__editor textarea{font-size:1.25rem}}@media(max-width: 900px){.tour__content__meme__editor input:not([type=checkbox]):not([type=submit]),.tour__content__meme__editor select,.tour__content__meme__editor textarea{font-size:1.05rem}}.tour__content__meme__editor input:not([type=checkbox]):not([type=file]):not([type=submit]){border-bottom:2px solid;padding-bottom:.15rem;transition:all .2s;width:100%}.tour__content__meme__editor input:not([type=file]):not([type=submit]):not(:hover):not(:active){border-color:#222}.tour__content__meme__editor input:not([type=file]):not([type=submit]):hover,.tour__content__meme__editor input:not([type=file]):not([type=submit]):active{border-color:#3abf7d}.tour__content__meme__editor input[type=checkbox]{width:1.25rem;height:1.25rem;border:2px solid;margin-right:.5rem;position:relative;top:.35rem}.tour__content__meme__editor input[type=checkbox]::after{width:100%;height:100%;content:"✓";font-size:1.5rem;line-height:1rem;position:absolute}.tour__content__meme__editor input[type=checkbox]:not(:checked)::after{color:transparent}.tour__content__meme__editor input[type=checkbox]:checked::after{color:#3abf7d}.tour__content__meme__editor select,.tour__content__meme__editor textarea{border-bottom:2px solid;width:100%}.tour__content__meme__editor select:not(:hover):not(:active),.tour__content__meme__editor textarea:not(:hover):not(:active){border-color:#222}.tour__content__meme__editor select:hover,.tour__content__meme__editor select:active,.tour__content__meme__editor textarea:hover,.tour__content__meme__editor textarea:active{border-color:#3abf7d}.tour__content__meme__editor select{background-image:url("/assets/media/svg/down.svg");background-position:99% center;background-repeat:no-repeat;background-size:1rem;padding-right:2rem}.tour__content__meme__editor textarea{min-height:100px;resize:vertical}.tour__content__trends{display:grid;grid-gap:2%;grid-template-columns:32% 32% 32%;overflow-y:auto;position:relative}.tour__content__trends:empty::after{content:"Fetching trending content from LBRY"}.tour__content__trend img{width:100%;height:175px;cursor:pointer;display:block;margin-bottom:.5rem;object-fit:cover;object-position:center;position:relative}.tour__content__trend figcaption{cursor:pointer;font-size:1rem;line-height:1.33}.tour__content__trend figcaption span{color:rgba(34,34,34,.3);display:block;font-size:.8rem;letter-spacing:.025rem}.tour__content__urlbar{border:1px solid rgba(34,34,34,.05);display:flex;margin-bottom:1rem}.tour__content__urlbar button,.tour__content__urlbar input,.tour__content__urlbar span{float:left;vertical-align:middle}.tour__content__urlbar button,.tour__content__urlbar span{height:100%;line-height:2rem}.tour__content__urlbar button{color:#fcfcfc;font-size:1rem;position:relative;text-transform:lowercase;transition:background-color .2s;width:6rem}.tour__content__urlbar button::after{width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px;content:"";position:absolute;transition:background-color .2s;z-index:-1}.tour__content__urlbar button:not(:hover){background-color:#222}.tour__content__urlbar button:not(:hover)::after{background-color:#222}.tour__content__urlbar button:hover{background-color:#3abf7d}.tour__content__urlbar button:hover::after{background-color:#3abf7d}.tour__content__urlbar input{font-size:1rem;width:calc(100% - 9.5rem)}.tour__content__urlbar input::placeholder{color:rgba(34,34,34,.5);opacity:1}.tour__content__urlbar span{user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;color:rgba(34,34,34,.5);cursor:default;font-size:1rem;text-align:right;width:3.5rem}.token.comment,.token.operator,.token.punctuation{color:#6c6c87}.token.boolean,.token.null,.token.url{color:#86c2f7}.token.number{color:#f2ac5f}.token.string{color:#fae079}/*# sourceMappingURL=style.css.map */
diff --git a/public/css/style.css.map b/public/css/style.css.map
deleted file mode 100755
index 6c7c3ff..0000000
--- a/public/css/style.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["../../sass/init/_base.scss","../../sass/init/_colors.scss","../../sass/init/_mixins.scss","../../sass/init/_extends.scss","../../sass/type/_karla.scss","../../sass/partials/_animation.scss","../../sass/partials/_ecosystem.scss","../../sass/partials/_email-subscribe.scss","../../sass/partials/_feature-links.scss","../../sass/partials/_flash.scss","../../sass/partials/_footer.scss","../../sass/partials/_github-feed.scss","../../sass/partials/_glossary.scss","../../sass/partials/_navigation.scss","../../sass/partials/_mission-statement.scss","../../sass/partials/_modal.scss","../../sass/_layout.scss","../../sass/pages/_api.scss","../../sass/pages/_contributing.scss","../../sass/pages/_documentation.scss","../../sass/pages/_home.scss","../../sass/pages/_page.scss","../../sass/pages/_tour.scss","../../sass/plugins/_prism.scss"],"names":[],"mappings":"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ACA,iBAGF,YACE,kBACA,iBACA,iBAEA,yBALF,YAMI,mBACA,mBAGF,yBAVF,YAWI,mBACA,mBAGF,mBdzCA,WACA,WACA,cc6CA,0FACE,aAIJ,GACE,sBAEA,sCACA,YACA,mBAGF,OACE,gBAEA,iBflFQ,QemFR,iBACA,iBACA,yCACA,oBACA,uCACA,eACA,gBACA,WACA,UAEA,2BACE,kBAGF,yBAlBF,OAmBI,gBAGF,yBAtBF,OAuBI,iBAGF,uBACE,qBAGF,SACE,mBACA,2BAGF,SACE,gBACA,0BAGF,cACE,6BACA,cAEA,iBf/HM,QegIN,kBACA,cACA,eACA,cACA,kBACA,iBAEA,kBACA,kBCjIJ,SACE,uBACA,kBAEA,gBfYA,WACA,WACA,ceSF,UACE,sCACA,yBAEA,iBhBtCQ,QgBuCR,4CACA,WACA,kBACA,gBACA,eACA,UAGF,kBACE,kBAGF,yBACE,6CACA,gBACA,iBACA,8CACA,WAGF,yBACE,6BACA,uBAEA,iBhB9DQ,KgB+DR,kBACA,MhBjEQ,QgBkER,eACA,eACA,iBACA,kBACA,kBACA,uBAEA,sCACE,UACA,kBAGF,gCACE,UACA,mBAIJ,iBACE,gBACA,iBACA,qBACA,mBACA,sBAIA,sBACE,sCAGF,kBACE,cACA,mCAqBJ,cACE,aACA,YACA,yDACA,yBAEA,iBACE,iBACA,oBAGF,iBACE,iBACA,oBAGF,iBACE,gBACA,qBACA,qBACA,yBAGF,kDACE,eACA,gBACA,mBAGF,oBACE,sCACA,oBACA,iBACA,gBACA,iBACA,WAGF,oBACE,aAGF,kCACE,+BAGF,iBACE,6CAGF,iCACE,sCAGF,kBACE,gCAEA,oBACA,gBACA,iBACA,gBACA,kBAIJ,oBACE,6CACA,aAEA,wBACE,sCAIJ,+BACE,sCACA,kBACA,qBAIA,iDACE,6CAGF,8CACE,sCAGF,yEAEE,qBAGF,oCACE,4CACA,UACA,qBAEA,yCACE,MhBzNI,QgB0NJ,gBAEA,6DACE,kBAKN,qCACE,UAGF,qCflNA,WACA,WACA,ceqNF,uBACE,yBACA,6CACA,MhBjPQ,QgBkPR,aAEA,2BACE,iBh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CE,cACA,eA8BJ,eACE,sDAEA,yCACA,YACA,yBACA,mBAKE,8BACE,6BAKN,qBACE,gBACA,kBAEA,4BpB1IA,WACA,WACA,coB6IF,6BACE,WACA,gBACA,UAEA,oCACE,uBAEA,qCACA,mBAIJ,wCACE,uBAEA,mBACA,iBACA,mBACA,mBACA,uBAEA,2DACE,kBAGF,uDACE,yBAGF,iDACE,arBpMM,KqBwMV,6BACE,YACA,UAEA,2CACE,gBAGF,sCACE,YAEA,yDACE,mBAIJ,mCACE,wBACA,cACA,gBACA,gBACA,sBACA,sBACA,yBACA,WAMA,yBAHF,qJAII,mBAGF,yBAPF,qJAQI,mBAKF,4FACE,wBACA,sBACA,mBACA,WAIA,gGACE,arBzPE,KqB4PJ,2JAEE,arBxPE,QqB4PN,kDACE,6BAEA,iBACA,mBACA,kBACA,WAEA,yDACE,uBAEA,YACA,iBACA,iBACA,kBAGF,uEACE,kBAGF,iEACE,MrBlRE,QqBuRR,0EAEE,wBACA,WAEA,4HACE,arBnSI,KqBsSN,8KAEE,arBlSI,QqBsSR,oCACE,mDACA,+BACA,4BACA,qBACA,mBAGF,sCACE,iBACA,gBAIJ,uBACE,aACA,YACA,kCACA,gBACA,kBAKE,oCACE,8CAMJ,0BACE,wBAEA,eACA,cACA,oBACA,iBACA,uBACA,kBAGF,iCACE,eACA,eACA,iBAEA,sCACE,wBACA,cACA,gBACA,uBAKN,uBACE,oCACA,aACA,mBAEA,uFAGE,WACA,sBAGF,0DAEE,YACA,iBAGF,8BACE,MrBxXM,QqByXN,eACA,kBACA,yBACA,gCACA,WAEA,qCACE,+CACA,mBAEA,WACA,kBACA,gCACA,WAGF,0CACE,iBrBzYI,KqB2YJ,iDACE,iBrB5YE,KqBgZN,oCACE,iBrB3YI,QqB6YJ,2CACE,iBrB9YE,QqBmZR,6BACE,eACA,0BAEA,0CACE,wBACA,UAIJ,4BpBzVA,iBAEA,qBACA,sBACA,yBoBuVE,wBACA,eACA,eACA,iBACA,aCzaF,kDAGE,cAGF,sCAGE,cAGF,cACE,cAGF,cACE","file":"style.css"}
\ No newline at end of file
diff --git a/server.js b/server.js
index a59f317..40c321a 100755
--- a/server.js
+++ b/server.js
@@ -5,7 +5,7 @@
// P A C K A G E S
const async = require("async");
-const color = require("turbocolor");
+const color = require("colorette");
const cors = require("cors");
const dedent = require("dedent");
@@ -16,7 +16,7 @@ const fastify = require("fastify")({
}
});
-const html = require("choo-async/html");
+const html = require("choo/html");
const local = require("app-root-path").require;
const octokit = require("@octokit/rest")();
const redis = require("redis");
@@ -24,11 +24,11 @@ const request = require("request-promise-native");
// V A R I A B L E S
-const fetchMetadata = local("/helpers/fetch-metadata");
-const github = local("/helpers/github");
+const fetchMetadata = local("app/helpers/fetch-metadata");
+const github = local("app/helpers/github");
const log = console.log; // eslint-disable-line
-const logSlackError = local("/helpers/slack");
-const relativeDate = local("/modules/relative-date");
+const logSlackError = local("app/helpers/slack");
+const relativeDate = local("app/modules/relative-date");
let client;
if (typeof process.env.GITHUB_OAUTH_TOKEN !== "undefined") {
@@ -67,15 +67,12 @@ fastify.register(require("fastify-helmet"), {
});
fastify.register(require("fastify-static"), {
- root: `${__dirname}/public/`,
- prefix: "/assets/"
+ prefix: "/assets/",
+ root: `${__dirname}/app/dist/`
});
fastify.register(require("choo-ssr/fastify"), {
- app: require("./client"),
- plugins: [
- [ require("choo-bundles/ssr"), {} ]
- ]
+ app: require("./app")
});
fastify.ready(err => {
diff --git a/views/components/html.js b/views/components/html.js
deleted file mode 100755
index 5f464b5..0000000
--- a/views/components/html.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E
-
-const html = require("choo-async/html");
-
-
-
-// E X P O R T
-
-module.exports = exports = (head, body) => (state, emit) => {
- const bodyPromise = Promise.resolve(body(state, emit));
- const headPromise = bodyPromise.then(() => head(state, emit)); // resolve `head` once `body` is resolved
-
- return html`
-
-
- ${headPromise}
- ${bodyPromise}
-
- `;
-};
diff --git a/views/components/layout.js b/views/components/layout.js
deleted file mode 100755
index f004321..0000000
--- a/views/components/layout.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E
-
-const html = require("choo-async/html");
-
-// V A R I A B L E S
-
-const footer = require("../partials/footer");
-const navigation = require("../partials/navigation");
-
-
-
-// E X P O R T
-
-module.exports = exports = children => (state, emit) => html`
-
-
-
- ${navigation(state, emit)}
-
- ${children(state, emit)}
- ${footer(state, emit)}
-
-`;
diff --git a/views/pages/api.js b/views/pages/api.js
deleted file mode 100644
index 1717160..0000000
--- a/views/pages/api.js
+++ /dev/null
@@ -1,123 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E S
-
-const dedent = require("dedent");
-const fetch = require("make-fetch-happen").defaults({ cacheManager: "./cache" });
-const fs = require("graceful-fs");
-const html = require("choo-async/html");
-const raw = require("nanohtml/raw");
-
-// V A R I A B L E
-
-const apiScripts = "";
-
-
-
-// E X P O R T
-
-module.exports = exports = () => async state => parseApiFile(state.params.wildcard).then(response => html`
-
-
- ${raw(apiScripts)}
-`);
-
-
-
-// H E L P E R S
-
-function createApiContent(apiDetails) {
- const apiContent = [];
-
- for (const apiDetail of apiDetails) {
- let apiDetailsReturns = "";
- if (apiDetail.returns) apiDetailsReturns = JSON.parse(JSON.stringify(apiDetail.returns));
-
- apiContent.push(`
-
- `);
- }
-
- return argumentContent;
-}
diff --git a/views/pages/error.js b/views/pages/error.js
deleted file mode 100755
index fa33898..0000000
--- a/views/pages/error.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E
-
-const html = require("choo-async/html");
-
-
-
-// E X P O R T
-
-module.exports = exports = err => html`
-
-
-
-
-
Error
-
-
-
-
-
-
-
${err.stack}
-
-
-
-`;
diff --git a/views/partials/email-subscribe.js b/views/partials/email-subscribe.js
deleted file mode 100644
index 998895c..0000000
--- a/views/partials/email-subscribe.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E
-
-const html = require("choo-async/html");
-
-
-
-// E X P O R T
-
-module.exports = exports = () => html`
-
-
Don't miss a bit - Subscribe for LBRY technical updates
-
-
-
-
-
-
-
-`;
diff --git a/views/partials/footer.js b/views/partials/footer.js
deleted file mode 100755
index 92cecef..0000000
--- a/views/partials/footer.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E S
-
-const html = require("choo-async/html");
-const local = require("app-root-path").require;
-
-// V A R I A B L E S
-
-const config = local("/config");
-const editLink = local("/views/partials/edit-link");
-const emailSubscribe = local("/views/partials/email-subscribe");
-
-
-
-// E X P O R T
-
-module.exports = exports = state => html`
-
- ${emailSubscribe()}
-
-
-
-
-
This website is in beta and under heavy development. All information should be considered incomplete and possibly incorrect and things may not work as expected.
-
-
-
-
Please do not share or link this site publicly while this message is here. This website is open source and you can contribute to it on Github.
-
-
-
-
-
-
-
-
-
-
-`;
diff --git a/views/partials/head.js b/views/partials/head.js
deleted file mode 100755
index 0380a67..0000000
--- a/views/partials/head.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E S
-
-const html = require("choo-async/html");
-const local = require("app-root-path").require;
-
-// V A R I A B L E
-
-const config = local("/config");
-
-
-
-// E X P O R T
-
-module.exports = exports = () => async (state) => {
- let pageTitle = "";
-
- if (state.route && state.route !== "/" && state.route !== "*") pageTitle = state.route.charAt(0).toUpperCase() + state.route.slice(1);
- if (state.params.wildcard) pageTitle = state.params.wildcard.charAt(0).toUpperCase() + state.params.wildcard.slice(1);
-
- if (pageTitle === "Api") pageTitle = "API";
-
- return html`${[
- html``,
- html`${pageTitle.length ? pageTitle + " | " : ""}${config.meta.title} · ${config.meta.tagline}`,
-
- html``,
- html``,
- html``,
- html``,
- html``,
-
- // Open Graph
- html``,
- html``,
- html``,
- html``,
- html``,
- html``,
-
- // Social/App Stuff
- html``,
- html``,
- html``,
- html``,
- html``,
- html``,
-
- html``,
- html``,
- html``,
- html``,
-
- html``,
- state.route === "api" || state.route === "api/*" ? html`` : "",
- html``,
- html``
- ]}`;
-};
diff --git a/views/partials/navigation.js b/views/partials/navigation.js
deleted file mode 100755
index 3253884..0000000
--- a/views/partials/navigation.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-
-
-// P A C K A G E
-
-const html = require("choo/html");
-
-// V A R I A B L E
-
-const navigationItems = [
- {
- url: "https://lbry.io",
- name: "LBRY.io",
- title: "Escape the techno scene"
- },
- {
- url: "/overview",
- name: "Overview",
- title: "LBRY overview"
- },
- {
- url: "/resources",
- name: "Resources",
- title: "View LBRY resources"
- },
- {
- url: "/contribute",
- name: "Contribute",
- title: "Contribute to LBRY"
- },
- {
- url: "/build",
- name: "Build",
- title: "View LBRY resources"
- },
- {
- url: "/community",
- name: "Community",
- title: "Interact with LBRY"
- }
-];
-
-
-
-// E X P O R T
-
-module.exports = exports = state => {
- const renderedNavigationItems = navigationItems.map(navigationItem => `${navigationItem.name}`);
-
- return html`
-
- `;
-};