help lbry save crypto

This commit is contained in:
seanyesmunt 2021-04-06 17:45:08 -04:00
parent b11e6037b7
commit 639d18167e
26 changed files with 2488 additions and 210 deletions

6
analytics.js Normal file
View file

@ -0,0 +1,6 @@
import MatomoTracker from '@datapunt/matomo-tracker-js';
export const tracker = new MatomoTracker({
urlBase: 'https://analytics.lbry.com/',
siteId: 12,
});

71
component/email.jsx Normal file
View file

@ -0,0 +1,71 @@
import React from 'react';
import { m } from '../i18n';
export function Email({ i18n }) {
const [email, setEmail] = React.useState('');
const [emailLoading, setEmailLoading] = React.useState(false);
const [emailError, setEmailError] = React.useState();
const [emailSuccess, setEmailSuccess] = React.useState();
function handleEmailSubmit(e) {
e.preventDefault();
if (!email) {
return;
}
setEmailError(false);
setEmailSuccess(false);
setEmailLoading(true);
fetch('/api/email', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email,
}),
})
.then((res) => res.json())
.then((data) => {
setEmailLoading(false);
setEmailSuccess(true);
})
.catch(() => {
setEmailLoading(false);
setEmailSuccess(false);
setEmailError(true);
});
}
return (
<div className="email">
<h2 className="content__section-title">{i18n(m.email_title)}</h2>
<div className="email__subtitle">{i18n(m.email_subtitle)}</div>
<label htmlFor="email">{i18n(m.email_input_label)}</label>
<form className="email__group" onSubmit={handleEmailSubmit}>
<input
type="email"
name="email"
placeholder="savecrypto@protonmail.com"
value={email}
onChange={(e) => setEmail(e.target.value)}
/>
<button disabled={!email || emailLoading}>
{emailLoading
? i18n(m.email_input_button_loading)
: i18n(m.email_input_button)}
</button>
</form>
{emailSuccess && (
<div className="email__success">{i18n(m.email_success)}</div>
)}
{emailError && (
<div className="email__success">{i18n(m.email_error)}</div>
)}
</div>
);
}

3
component/footer.jsx Normal file
View file

@ -0,0 +1,3 @@
export function Footer(props) {
return <footer></footer>;
}

178
component/header.jsx Normal file
View file

@ -0,0 +1,178 @@
import Head from 'next/head';
import Image from 'next/image';
import Link from 'next/link';
import { t, m } from '../i18n';
import { useRouter } from 'next/router';
export function Header(props) {
const { faqPage } = props;
const router = useRouter();
const lang = router.query.lang || 'en';
let faqHref = '/faq';
if (lang !== 'en') {
faqHref += `?lang=${lang}`;
}
let homeHref = '/';
if (lang !== 'en') {
homeHref += `?lang=${lang}`;
}
function __(message) {
return t(message, lang);
}
return (
<>
<Head>
<title>{__(m.title)}</title>
<link rel="icon" href="/lbc.png" />
<title>Help LBRY Save Crypto</title>
<meta
property="og:title"
content="LBRY, THE SEC, & THE FUTURE OF CRYPTO"
key="title"
/>
<meta
property="og:image"
content="https://i.imgur.com/onVjlEW.jpg"
key="image"
/>
<meta
property="og:description"
content={__(m.og_description)}
key="description"
/>
<meta name="twitter:card" content="summary" />
<meta name="twitter:creator" content="@LBRYcom" />
<meta name="twitter:title" content="Help LBRY Save Crypto" />
<meta
name="twitter:description"
content="The SEC doesnt understand blockchain. The claims made in SEC vs. LBRY would destroy crypto in the US."
/>
</Head>
<header className={faqPage ? 'header header--faq' : 'header'}>
<Link href="/">
<span className="title">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
width="24"
height="24"
fill="none"
strokeWidth="0"
strokeLinecap="round"
strokeLinejoin="round"
>
<path
d="M1.03125 14.1562V9.84375L12 0L22.9688 9.84375V14.1562L12 24L1.03125 14.1562Z"
fill="black"
/>
<path
d="M8.925 10.3688L3.99375 14.8125L7.70625 18.15L12.6375 13.7063L8.925 10.3688Z"
fill="black"
/>
<path
d="M8.925 10.3688L15.1312 4.80005L12 1.98755L2.60625 10.425V13.575L3.99375 14.8125L8.925 10.3688Z"
fill="black"
/>
<path
d="M8.925 10.3688L3.99375 14.8125L7.70625 18.15L12.6375 13.7063L8.925 10.3688Z"
fill={`url(#paint0_linear)`}
/>
<path
d="M8.925 10.3688L15.1312 4.80005L12 1.98755L2.60625 10.425V13.575L3.99375 14.8125L8.925 10.3688Z"
fill={`url(#paint1_linear)`}
/>
<path
d="M15.075 13.6313L20.0062 9.1876L16.2937 5.8501L11.3625 10.2938L15.075 13.6313Z"
fill={`url(#paint2_linear)`}
/>
<path
d="M15.075 13.6312L8.86875 19.2L12 22.0125L21.3937 13.575V10.425L20.0062 9.1875L15.075 13.6312Z"
fill={`url(#paint3_linear)`}
/>
<defs>
<linearGradient
id={`paint0_linear`}
x1="3.7206"
y1="14.2649"
x2="15.1645"
y2="14.2649"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.2464" stopColor="#E700FF" />
<stop offset="0.3166" stopColor="#E804F9" />
<stop offset="0.4108" stopColor="#E90EE8" />
<stop offset="0.5188" stopColor="#EC1FCC" />
<stop offset="0.637" stopColor="#F037A5" />
<stop offset="0.7635" stopColor="#F45672" />
<stop offset="0.8949" stopColor="#FA7A36" />
<stop offset="1" stopColor="#FF9B00" />
</linearGradient>
<linearGradient
id={`paint1_linear`}
x1="2.60274"
y1="8.40089"
x2="15.14"
y2="8.40089"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.4233" stopColor="#FABD09" />
<stop offset="0.8292" stopColor="#FA6B00" />
</linearGradient>
<linearGradient
id={`paint2_linear`}
x1="6.8682"
y1="14.1738"
x2="25.405"
y2="4.84055"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#BAFF8E" />
<stop offset="0.6287" stopColor="#008EBB" />
</linearGradient>
<linearGradient
id={`paint3_linear`}
x1="25.2522"
y1="6.08799"
x2="3.87697"
y2="27.836"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#BAFF8E" />
<stop offset="0.6287" stopColor="#008EBB" />
</linearGradient>
<clipPath id="clip0">
<rect width="24" height="24" fill="white" />
</clipPath>
</defs>
</svg>
<span className="title__lbry">LBRY</span>
<span className="title__rest">
, THE SEC, & THE FUTURE OF CRYPTO
</span>
</span>
</Link>
<div className="header__links">
{!faqPage ? (
<Link href={faqHref}>
<span className="link">FAQ</span>
</Link>
) : (
<Link href={homeHref}>
<span className="link">{__(m.go_home)}</span>
</Link>
)}
</div>
</header>
</>
);
}

55
component/twitter.jsx Normal file
View file

@ -0,0 +1,55 @@
import React from 'react';
import { m } from '../i18n';
export function Twitter({ i18n }) {
const [tweets, setTweets] = React.useState();
const [error, setError] = React.useState();
React.useEffect(() => {
fetch('/api/twitter')
.then((res) => res.json())
.then((res) => {
if (res.error) {
throw Error(res.error);
}
setTweets(res.data.statuses);
})
.catch((err) => {
setError(true);
});
}, []);
if (!tweets) {
return null;
}
return (
tweets &&
tweets.length > 0 && (
<div className="tweets">
{tweets.map((tweet) => (
<a
key={tweet.id}
className="tweet"
href={`https://twitter.com/${tweet.user.screen_name}/status/${tweet.id_str}`}
rel="noreferrer noopener"
target="_blank"
>
<img className="tweet_img" src={tweet.user.profile_image_url} />
<div className="tweet__content">
<div className="tweet__author">
<div className="tweet__name">
<div className="tweet__username">{tweet.user.name}</div>
<div className="tweet__handle">@{tweet.user.screen_name}</div>
</div>
</div>
<div className="tweet__text">{tweet.text}</div>
</div>
</a>
))}
</div>
)
);
}

191
faq/en.md Normal file
View file

@ -0,0 +1,191 @@
# Case Guide and FAQ
## Summary
The Securities and Exchange Commission has filed a complaint against LBRY Inc alleging that all
distributions of LBRY Credits by LBRY Inc are unregistered securities offerings. This claim is a
tremendous threat to the entire cryptocurrency industry.
The LBRY network is decentralized and not at risk. For users of the LBRY protocol and apps, your
channels, content, and token holdings are not at risk. Even in an unlikely scenario in which LBRY
Inc loses, the LBRY protocol will live on and work on it will continue.
LBRY Inc has been preparing to fight this case for three full years, which is how long the SEC has
been investigating this matter. We wanted to tell you sooner, but transparency in ongoing
investigations is not welcomed by the SEC.
## Frequently Asked Questions
### Are my LBRY Credits safe?
Yes, all of your Credits remain yours and remain usable even after the SECs complaint is filed and
regardless of the outcome.
If you want to ensure you have complete control over your Credits, channels, and content,
download [LBRY Desktop](https://lbry.com/get).
### Is the LBRY network in danger?
The LBRY network is robust and decentralized, and far harder to disrupt than LBRY Inc. Hundreds of
people across six continents contributed to LBRY last year (cmon Antarctica!). Most of them don't
work at LBRY Inc, and we don't even know who many of them are. Even if LBRY Inc is shut down by the
SEC as a result of this lawsuit, the LBRY network will continue to function and grow through the
effort of the distributed LBRY community.
### What's the difference between LBRY and LBRY Inc?
**LBRY** is a decentralized protocol for accessing and publishing digital content. The devices that
talk to each other using the LBRY protocol are collectively called the LBRY network.
**LBRY Inc** is a company that helps develop the protocol and builds applications on top of it.
### What are the specific charges?
Simply put, the SEC believes that the LBRY Credits are securities and should have been registered
with the SEC prior to selling. This case is about overregulation. The SEC is not
alleging fraud and is not charging any individuals.
However, the SEC believes that, at a minimum, the following transactions were unregistered
securities offerings:
- $10,000 worth of Credit sales to Shapeshift in July of 2016 to facilitate distribution to their
users.
- Several hundred thousand dollars worth of Credit sales to an Unnamed Group in 2017 and 2018,
despite that group explicitly saying theyre for use on the network. The name of this group is omitted at their request.
- Several million dollars worth of Credit sales on exchanges, over a period of several years, only
after the LBRY protocol was completely functional and had been in use for over a year, and always a small portion of private sales.
At times, the SEC has made representations that even tipping $.25 worth of Credits for a clever GIF
is an unregistered security transaction that must be registered and tracked. However, its unclear
at this time if the SEC will continue to make this allegation in court.
A full table of sales is available in Appendix A. All of our Credit use has been diligently tracked
at [lbry.com/credit-reports](https://lbry.com/credit-reports).
### What is a security?
A security is a tradable financial asset. Securities come in two types: equity
(shares of a company) and debt (that must be paid back), though some securities are a mix of the two.
Securities are often contrasted with commodities, which are things like corn or nails. They are bought
to be used (e.g. to be eaten, to build a house with), not just for speculation.
### Why does LBRY think the SEC is wrong?
We do not believe that the LBRY Credit is a security subject to SEC regulation.
The SEC claims that Credits have no use other than speculation, which contradicts the facts
and history of experience on LBRY.
The LBRY Credit serves an integral function in our network. It allows individuals to create an
identity, tip creators, and publish, purchase, and boost content in a decentralized way. Millions of
people have used it this way, and many were using it well before we sold any tokens to anyone.
The SEC is completely ignoring this.
### Has anyone alleged harm or damages?
Despite LBRY being used by millions of people, to our knowledge, not a single person has alleged
harm or damage as a result of purchasing LBRY Credits.
### Who is LBRY Inc represented by?
LBRY has hired one of the best law firms in the blockchain space -- [Perkins Coie](https://www.perkinscoie.com/en/).
Keith Miller and Adam Schuman will represent us at trial. Keith is a former SEC enforcement
lawyer, and Adam is a former federal prosecutor. Keith and Adam have been named by _Business Insider_
as two of the top 20 cryptocurrency lawyers in the country.
### Whats the timeline?
LBRY Inc has been under investigation for three years, since May of 2018.
The SEC repeatedly requested documents from LBRY Inc, at times doing so in overbearing and costly
ways that seemed punitive. If its true that LBRY Inc violated the law in
the ways the SEC alleges, all of the relevant facts were clearly known to the SEC by the fall of 2018.
Were glad to finally be getting through this painful process and to be allowed to
express our positions to the public and in court.
The trial will likely not be resolved in 2021.
### Whats the cost been to LBRY Inc?
LBRY Inc has spent more than $1,000,000 on legal fees and several thousand hours of team member
time (a similar or greater value) on this case. This has been a substantial burden to bear as a
small start-up and is extremely chilling to an innovative industry. If it takes several million
dollars in legal fees just to begin, blockchain becomes much less accessible.
### Why is this case unusual compared to other cases the SEC has brought?
There are several facts about this case that are unusual to past cases:
- The SEC is not alleging fraud.
- LBRY Inc conducted no Initial Coin Offering (ICO).
- LBRY Inc did not breach any fiduciary duties.
- LBRY Inc at no time indicated that LBRY Credits were an investment, and consistently discouraged
purchasing Credits for this purpose.
- LBRY Inc did not sell any tokens until after they could be used on a functional network, a
previously stated key element by the SEC in how they assess token transactions.
### Did LBRY Inc make an attempt to settle?
Yes. The SEC declined to offer any terms that would have made it viable for U.S. citizens to
exchange tokens or to allow LBRY Inc to continue to operate. We were willing to give them a pound of
flesh, but they were only interested in our head.
### Did LBRY Inc ask how to operate legally?
We repeatedly asked the SEC for guidance on how it would be possible to run the company legally. The
SEC said that they could not tell us how to operate legally, but could only tell us that we were
breaking the law.
### What are the implications for the blockchain and tech industry?
The implications of this case are extremely dire for the blockchain and technology industry in the
United States. The SEC is alleging that any entity that transfers a blockchain token while
simultaneously working or funding work on it is performing a security offering. Under that standard,
every blockchain technology that is actively developed faces existential threat, so long as that
development is either funded by a token holder, even if indirectly, or if the developers themselves hold the token.
This case is also chilling for the start-up scene in the United States more generally. Weve acted
in extremely good-faith, attempted to follow all the rules, and complied with the SEC at every turn.
We would be hesitant to start another company in the United States in any cutting-edge field, as
cutting-edge fields frequently have unclear regulations.
### Why are they charging LBRY Inc when there are many other companies with worse facts, or that are outright frauds and scams?
We would love to know the actual answer to this question. Our best guess is that by acting in such a
radically transparent manner, we made ourselves an easy target. We fear that the SEC is more intent
on rigid and overly strict enforcement of their interpretation of the rules, than seeking to find
constructive solutions that promote innovation and business within a reasonable regulatory
framework.
Consider an apathetic enforcer whose job review is simply “how many enforcements did you produce”.
Are they more incentivized to go after what is at-hand, or what is actually wrong?
### Will LBRY Credit distribution, rewards program, or anything else change as a result of this case?
At this time, we do not expect any of these programs to change. Some exchanges may choose to no
longer allow U.S. customers to exchange LBRY Credits. We do not expect any other changes until the
case is resolved. Please see our FAQ for a [full list of available exchanges](https://lbry.com/faq/exchanges).
### Where can I view the full complaint?
The full complaint can be viewed at [odysee.com/secvslbrycomplaint](https://odysee.com/secvslbrycomplaint)
### How can I schedule an interview or request a quote?
Email [press@lbry.com](mailto:press@lbry.com).
### How can I support LBRY Inc in this case?
- [Share this story](/#share) on social media, in your own words, using the tag #helplbrysavecrypto.
Or you can just share a link to [helplbrysavecrypto.com](https://helplbrysavecrypto.com/).
- Sign the [petition](/#petition).
- If youre involved in one of the hundreds of other blockchain companies being investigated by the
SEC, tell your story. **The SEC doesnt want you to talk because your silence helps them.**
By talking, we can coordinate our response. Until one of us wins, well continue to be
digested, bit by bit.
### How can I stay up-to-date on this case?
- Follow #helplbrysavecrypto on social media and [@lbrycom](https://twitter.com/lbrycom) on twitter.
- Updates will be posted to the [@lbry](https://odysee.com/@lbry) channel on LBRY.
- Subscribe for updates below 👇

133
faq/es.md Normal file
View file

@ -0,0 +1,133 @@
# Guía de caso y preguntas frecuentes
## Resumen
La Comisión de Valores y Bolsa ha presentado una denuncia contra LBRY Inc. alegando que todas las
distribuciones de Créditos LBRY por parte de LBRY Inc son ofertas de valores no registradas. Esta afirmación
carece de hechos y es una tremenda amenaza para toda la industria de la criptomoneda.
La red LBRY está descentralizada y no corre peligro. Para los usuarios del protocolo y las aplicaciones de LBRY, sus canales, contenidos y Créditos no corren ningún riesgo. Incluso en un escenario improbable en el que LBRY Inc. pierda, el protocolo LBRY seguirá vivo y se seguirá trabajando en él.
LBRY Inc se ha preparado para luchar contra este caso durante tres años completos, que es el tiempo que la SEC ha estado investigando este asunto. Queríamos decírselo antes, pero la transparencia en las investigaciones en curso no es bien recibida por la SEC.
## Preguntas frecuentes
### ¿Están seguros mis Créditos LBRY?
Sí, todos sus Créditos siguen siendo suyos y siguen siendo utilizables incluso después de la presentación de la denuncia de la SEC e independientemente del resultado.
Si quiere asegurarse de tener un control total sobre sus Créditos, canales y contenidos, descargue [LBRY Desktop](https://lbry.com/get).
### ¿Está en peligro la red LBRY?
La red LBRY es robusta y descentralizada, y mucho más difícil de interrumpir que LBRY Inc. Cientos de personas de seis continentes contribuyeron a LBRY el año pasado (¡vamos, la Antártida!). La mayoría de ellos no trabaja en LBRY Inc, y ni siquiera sabemos quiénes son muchos de ellos. Incluso si la SEC cierra LBRY Inc como resultado de esta demanda, la red LBRY seguirá funcionando y creciendo gracias al esfuerzo de la comunidad distribuida LBRY.
### ¿Cuál es la diferencia entre LBRY y LBRY Inc?
**LBRY** es un protocolo descentralizado para acceder y publicar contenido digital. Los dispositivos hablan entre sí mediante el protocolo LBRY y se denominan colectivamente red LBRY.
**LBRY Inc** es una empresa que ayuda a desarrollar el protocolo y crea aplicaciones sobre él.
### ¿Cuáles son los cargos específicos?
En pocas palabras, la SEC considera que los Créditos LBRY son valores y deberían haberse registrado en la SEC antes de su venta. Este caso trata de un exceso de regulación. La SEC no alega fraude y no acusa a ninguna persona.
Sin embargo, la SEC cree que, como mínimo, las siguientes transacciones eran ofertas de valores no registradas:
- 10.000 dólares en ventas de Créditos a Shapeshift en julio de 2016 para facilitar la distribución a sus usuarios.
- Varios cientos de miles de dólares en ventas de Crédito a un grupo sin nombre en 2017 y 2018, a pesar de que ese grupo dijo explícitamente que son para uso en la red. El nombre de este grupo se omite a petición suya.
- Varios millones de dólares de ventas de Créditos en las bolsas, durante un periodo de varios años, solo después de que el protocolo LBRY fuera completamente funcional y llevara más de un año en uso, y siempre una pequeña parte de las ventas privadas.
En ocasiones, la SEC ha manifestado que incluso la entrega de Créditos por valor de 0,25 dólares para un GIF inteligente es una transacción de valores no registrada que debe ser registrada y rastreada. Sin embargo, no está claro en este momento si la SEC seguirá haciendo esta alegación en los tribunales.
En el Apéndice A figura un cuadro completo de las ventas. Todo el uso de nuestros Créditos ha sido diligentemente rastreado en [lbry.com/credit-reports](https://lbry.com/credit-reports).
### ¿Qué es un security?
Un valor es un activo financiero negociable. Los valores vienen en dos tipos: acciones (acciones de una empresa) y deuda (que debe reembolsarse), aunque algunos valores son una combinación de los dos.
Los valores a menudo se contrastan con los productos básicos, que son cosas como el maíz o los clavos. Se compran para ser utilizados (por ejemplo, para ser comido, para construir una casa), no solo para la especulación.
### ¿Por qué cree LBRY que la SEC está equivocada?
No creemos que los Créditos LBRY sean un valor sujeto a la regulación de la SEC. La SEC afirma que los Créditos no tienen otro uso que la especulación, lo que contradice los hechos e historial de experiencia en LBRY.
El Crédito LBRY cumple una función integral en nuestra red. Permite a las personas crear una identidad, dar propina a los creadores y publicar, comprar e impulsar el contenido de forma descentralizada. Millones de personas lo han usado de esta manera, y muchos lo estaban usando mucho antes de que vendiéramos tokens a nadie. La SEC está ignorando esto por completo.
### ¿Ha alegado alguien daños y perjuicios?
A pesar de que LBRY es utilizado por millones de personas, hasta donde sabemos, ni una sola persona ha alegado daños o perjuicios como resultado de la compra de Créditos LBRY.
### ¿Quién representa a LBRY Inc?
LBRY ha contratado a uno de los mejores bufetes de abogados en el espacio blockchain -- [Perkins Coie](https://www.perkinscoie.com/en/).
Keith Miller y Adam Schuman nos representarán en el juicio. Keith es un antiguo abogado de la SEC y Adam es un antiguo fiscal federal. Keith y Adam han sido nombrados por _Business Insider_ como dos de los 20 mejores abogados de criptomonedas del país.
### ¿Cuál es el calendario?
LBRY Inc ha estado bajo investigación durante tres años, desde mayo de 2018.
La SEC solicitó repetidamente documentos a LBRY Inc., en ocasiones haciéndolo de forma prepotente y costosa que podría poner en peligro la supervivencia de LBRY Inc. Si es cierto que LBRY Inc violó la ley de las formas que la SEC alega, todos los hechos relevantes eran claramente conocidos por la SEC en el otoño de 2018. Nos alegramos de haber superado por fin este doloroso proceso y de que por fin se nos permita expresar nuestras posiciones ante el público y ante el Tribunal.
Es probable que el juicio no se resuelva en 2021.
### ¿Cuál ha sido el coste para LBRY Inc?
LBRY Inc ha gastado más de 1.000.000 de dólares en honorarios legales y varios miles de horas de tiempo de los miembros del equipo (un valor similar o mayor) en este caso. Esto ha sido una carga sustancial para soportar como una pequeña start-up y es extremadamente escalofriante para una industria innovadora. Si se necesitan varios millones de dólares en honorarios legales solo para empezar, blockchain se vuelve mucho menos accesible.
### ¿Por qué este caso es inusual en comparación con otros casos que la SEC ha presentado?
Hay varios hechos en este caso que son inusuales a los casos anteriores:
- La SEC no acusa de fraude.
- LBRY Inc. no realizó ninguna oferta inicial de monedas (ICO).
- LBRY Inc. no incumplió ningún deber fiduciario.
- LBRY Inc. no indicó en ningún momento que los Créditos LBRY fueran una inversión, y desaconsejó sistemáticamente la compra de Créditos con este fin.
- LBRY Inc. no vendió ningún token hasta que pudo ser utilizado en una red funcional, un elemento clave previamente declarado por la SEC en la forma de evaluar las transacciones de tokens.
### ¿Intentó LBRY Inc. llegar a un acuerdo?
Sí. La SEC se negó a ofrecer condiciones que hicieran viable el intercambio de tokens por parte de los ciudadanos estadounidenses o que permitieran a LBRY Inc seguir operando. Estábamos dispuestos a darles una libra de carne, pero solo les interesaba nuestra cabeza.
### ¿Preguntó LBRY Inc. cómo operar legalmente?
Pedimos repetidamente a la SEC que nos orientara sobre cómo sería posible dirigir la empresa legalmente. La SEC dijo que no podía decirnos cómo operar legalmente, sino que sólo podía decirnos que estábamos infringiendo la ley.
### ¿Cuáles son las implicaciones para la industria del blockchain y la tecnología?
Las implicaciones de este caso son extremadamente nefastas para la industria del blockchain y la tecnología en Estados Unidos. La SEC alega que cualquier entidad que transfiera un token de blockchain mientras simultáneamente trabaja o financia trabajos en ella está realizando una oferta de valores. Bajo esa norma, toda tecnología blockchain que se desarrolle activamente se enfrenta a una amenaza existencial, siempre que ese desarrollo sea financiado por un titular de un token, aunque sea de forma indirecta, o si los propios desarrolladores poseen el token.
Este caso también es escalofriante para el panorama de las empresas emergentes en Estados Unidos en general. Hemos actuado de muy buena fe, hemos intentado seguir todas las reglas y hemos cumplido con la SEC en todo momento.
No nos atreveríamos a crear otra empresa en Estados Unidos en cualquier campo de vanguardia, ya que los campos de vanguardia suelen tener una normativa poco clara.
### ¿Por qué cobran a LBRY Inc. cuando hay muchas otras empresas con hechos peores, o que son auténticos fraudes y estafas?
Nos encantaría saber la respuesta real a esta pregunta. Nuestra mejor suposición es que al actuar de forma tan radicalmente transparente, nos convertimos en un blanco fácil. Nos tememos que la SEC está más empeñada en aplicar de forma rígida y excesivamente estricta su interpretación de las normas, que en buscar soluciones constructivas que promuevan la innovación y el negocio dentro de un marco normativo razonable.
Piensa en un ejecutor apático cuya evaluación del trabajo es simplemente "cuántas ejecuciones has producido". ¿Están más incentivados para perseguir lo que está a mano, o lo que realmente está mal?
### ¿Cambiará la distribución de Créditos LBRY, el programa de recompensas o cualquier otra cosa como resultado de este caso?
En este momento, no esperamos que ninguno de estos programas cambie. Algunos exchanges pueden optar por no permitir que los clientes de EE.UU. intercambien Créditos LBRY. No esperamos ningún otro cambio hasta que se resuelva el caso. Consulte nuestras preguntas frecuentes para obtener una [lista completa de los intercambios disponibles](https://lbry.com/faq/exchanges).
### ¿Dónde puedo ver la denuncia completa?
La denuncia completa se puede ver en [odysee.com/secvslbrycomplaint](https://odysee.com/secvslbrycomplaint)
### ¿Cómo puedo programar una entrevista o solicitar un comentario?
Envía un correo a [press@lbry.com](mailto:press@lbry.com).
### ¿Cómo puedo apoyar a LBRY Inc en este caso?
- [Comparte esta historia](/#share) por las redes sociales, en tus propias palabras, usando el tag #helplbrysavecrypto.
O simplemente puedes compartir este enlace [helplbrysavecrypto.com](https://helplbrysavecrypto.com/).
- Firma la [petición](/#petition).
- Si estás involucrado en uno de los cientos de empresas de blockchain que están siendo investigadas por la SEC, cuenta tu historia. **La SEC no quiere que hables porque tu silencio les ayuda.**
Hablando, podemos coordinar nuestra respuesta. Hasta que uno de nosotros gane, seguiremos siendo digeridos, poco a poco.
### ¿Cómo puedo estar al día sobre este caso?
- Sigue #helplbrysavecrypto en las redes sociales y [@lbrycom](https://twitter.com/lbrycom) en twitter.
- Las actualizaciones se publicarán en el canal [@lbry](https://odysee.com/@lbry) en LBRY.
- Suscríbase a las actualizaciones a continuación 👇

195
i18n.js Normal file
View file

@ -0,0 +1,195 @@
export const m = {
help_lbry: 'help_lbry',
save_crypto: 'save_crypto',
go_home: 'go_home',
og_description: 'og_description',
landing_subtitle: 'landing_subtitle',
landing_action: 'landing_action',
summary_title: 'summary_title',
summary_subtitle: 'summary_subtitle',
video_subtitle: 'video_subtitle',
video_link: 'video_link',
p1_a: 'p1_a',
p1_b: 'p1_b',
p2_a: 'p2_a',
p2_b: 'p2_b',
share_story_title: 'share_story_title',
share_story_subtitle: 'share_story_subtitle',
petition_title: 'petition_title',
petition_subtitle: 'petition_subtitle',
petition_link: 'petition_link',
read_more_title: 'read_more_title',
read_more_subtitle: 'read_more_subtitle',
read_more_link: 'read_more_link',
email_title: 'email_title',
email_subtitle: 'email_subtitle',
email_input_label: 'email_input_label',
email_input_button: 'email_input_button',
email_input_button_loading: 'email_input_button_loading',
email_success: 'email_success',
email_error: 'email_error',
try_lbry_title: 'try_lbry_title',
try_lbry_subtitle: 'try_lbry_subtitle',
try_lbry_desktop_link: 'try_lbry_desktop_link',
try_lbry_desktop_help: 'try_lbry_desktop_help',
try_odysee_help: 'try_odysee_help',
contact_title: 'contact_title',
contact_press: 'contact_press',
contact_legal: 'contact_legal',
contact_other_email: 'contact_other_email',
contact_discord: 'contact_discord',
};
const en = {
faq: 'VIEW FAQ',
help_lbry: 'HELP LBRY',
save_crypto: 'SAVE CRYPTO',
go_home: 'Go Home',
og_description:
'The SEC doesnt understand blockchain. The claims made in SEC vs. LBRY would destroy the United States cryptocurrency industry.',
landing_subtitle:
'The SEC doesnt understand blockchain. The claims made in SEC vs. LBRY would destroy the United States cryptocurrency industry.',
landing_action: 'Help us educate the SEC',
summary_title: 'Whats the big deal?',
summary_subtitle:
'The entire blockchain industry is at risk in the United States. Big tech and Wall St. would have more power and many people could lose their jobs.',
video_subtitle:
'Warning / Enticement: this video is more entertainment than education, for the facts read the FAQ.',
video_link: 'Case Guide & FAQ',
p1_a:
'The SEC is advancing an aggressive and disastrous new standard that would make almost all blockchain tokens securities.',
p1_b:
'Classifying all actively-developed blockchain tokens as securities will be a bureaucratic nightmare for United States residents and businesses operating in the US.',
p2_a:
'Under this new standard, almost any token is a security, including the previously safe Ethereum. The nature of technology is that it is never "finished".',
p2_b:
'This change will make it much harder for startups to form new blockchain companies, cause massive job loss, and stunt the development of a critical new technology. All the while, big tech and Wall St. prosper!',
share_story_title: 'Share this story',
share_story_subtitle: 'Post to social media to spread awareness.',
twitter_title: 'What are people saying?',
petition_title: 'Sign the petition',
petition_subtitle:
'Tell the SEC that cryptocurrency must remain legal and free.',
petition_link: 'Add your signature',
read_more_title: 'Read more',
read_more_subtitle: 'Read our case guide and FAQ',
read_more_link: 'here',
email_title: 'Stay Informed',
email_subtitle: 'We will keep you up to date with the latest on this case.',
email_input_label: 'Email',
email_input_button: 'Submit',
email_input_button_loading: 'Submitting',
email_success: 'Thank you. We will keep you in the loop.',
email_error: 'Sorry, there was an error. Please try again.',
try_lbry_title: 'Try LBRY',
try_lbry_subtitle:
'If the government and big tech want it gone, it must be good.',
try_lbry_desktop_link: 'LBRY Desktop',
try_lbry_desktop_help: 'decentralized and open-source',
try_odysee_help: 'easiest to use',
contact_title: 'Contact us',
contact_press: 'Press inquiries',
contact_legal: 'Legal',
contact_other_email: 'Other email',
contact_discord: 'Discord (not run by LBRY Inc)',
};
const es = {
faq: 'VER PREGUNTAS FRECUENTES',
help_lbry: 'AYUDA A LBRY.',
save_crypto: 'SALVA LAS CRIPTOMONEDAS',
go_home: 'Ir a Inicio',
og_description:
'La SEC no comprende blockchain. Las afirmaciones hechas en SEC vs LBRY destruirían la industria de las criptomonedas en los Estados Unidos.',
landing_subtitle:
'La SEC no comprende blockchain. Las afirmaciones hechas en SEC vs LBRY destruirían la industria de las criptomonedas en los Estados Unidos.',
landing_action: 'Ayúdanos a educar a la SEC',
summary_title: '¿Cuál es el problema?',
summary_subtitle:
'Toda la industria blockchain está en riesgo en los Estados Unidos. Las grandes tecnologías y Wall St. tendrían más poder y muchas personas podrían perder sus trabajos.',
video_subtitle:
'Advertencia/Tentativo: este video es más entretenimiento que educación, para los hechos, lea las preguntas frecuentes.',
video_link: 'Guía de casos y preguntas frecuentes',
p1_a:
'La SEC está avanzando en un nuevo estándar agresivo y desastroso que convertiría a casi todos los tokens de blockchain en valores.',
p1_b:
'Clasificar todos los tokens de blockchain desarrollados activamente como valores será una pesadilla burocrática para los residentes y las empresas de los Estados Unidos que operan en los EE. UU.',
p2_a:
'Bajo este nuevo estándar, casi cualquier token es un valor, incluido Ethereum, que antes era security. La naturaleza de la tecnología es que nunca está "terminada".',
p2_b:
'Este cambio hará que sea mucho más difícil para las nuevas empresas formar nuevas empresas blockchain, provocará una pérdida masiva de puestos de trabajo y obstaculizará el desarrollo de una nueva tecnología crítica. ¡Mientras tanto, la gran tecnología y Wall St. prosperan!',
share_story_title: 'Comparte esta historia',
share_story_subtitle:
'Publica en las redes sociales para difundir el conocimiento.',
twitter_title: '¿Qué dice la gente?',
petition_title: 'Firma la petición',
petition_subtitle:
'Dígale a la SEC que la criptomoneda debe seguir siendo legal y gratuita.',
petition_link: 'Agrega tu firma',
read_more_title: 'Lee mas',
read_more_subtitle: 'Lea nuestra guía de casos y preguntas frecuentes',
read_more_link: 'aquí',
email_title: 'Mantente informado',
email_subtitle:
'Le mantendremos informado de las últimas novedades sobre este caso.',
email_input_label: 'Correo electrónico',
email_input_button: 'Enviar',
email_input_button_loading: 'Enviando',
email_success: 'Gracias. Te mantendremos informado.',
email_error: 'Lo sentimos, ha habido un error. Inténtalo de nuevo.',
try_lbry_title: 'Prueba LBRY',
try_lbry_subtitle:
'Si el gobierno y la gran tecnología quieren que se vaya, debe ser bueno.',
try_lbry_desktop_link: 'LBRY Desktop',
try_lbry_desktop_help: 'descentralizado y de código abierto',
try_odysee_help: 'más fácil de usar',
contact_title: 'Contacta con nosotros',
contact_press: 'preguntas de la prensa',
contact_legal: 'Legal',
contact_other_email: 'Otro correo electrónico',
contact_discord: 'Discord (no dirigido por LBRY Inc)',
};
const languages = {
es,
};
export function t(string, lang) {
let val;
if (languages[lang]) {
val = languages[lang][string];
}
if (val) {
return val;
} else {
return en[string];
}
}

10
next.config.js Normal file
View file

@ -0,0 +1,10 @@
module.exports = {
webpack: (config) => {
config.module.rules.push({
test: /\.md$/,
use: 'raw-loader',
});
return config;
},
};

View file

@ -8,8 +8,16 @@
"start": "next start" "start": "next start"
}, },
"dependencies": { "dependencies": {
"@datapunt/matomo-tracker-js": "^0.4.0",
"next": "10.0.9", "next": "10.0.9",
"react": "17.0.2", "react": "17.0.2",
"react-dom": "17.0.2" "react-dom": "17.0.2",
"react-markdown": "^5.0.3",
"stripe": "^8.140.0",
"twitter": "^1.7.1"
},
"devDependencies": {
"raw-loader": "^4.0.2",
"sass": "^1.32.8"
} }
} }

View file

@ -1,7 +1,7 @@
import '../styles/globals.css' import '../styles/globals.scss';
function MyApp({ Component, pageProps }) { function MyApp({ Component, pageProps }) {
return <Component {...pageProps} /> return <Component {...pageProps} />;
} }
export default MyApp export default MyApp;

35
pages/api/email.js Normal file
View file

@ -0,0 +1,35 @@
const API = 'https://api.lbry.com/';
const USER_TAG = 'lbry-sec';
function buildUrl(email) {
let url = `${API}/list/subscribe?email=${encodeURIComponent(
email
)}&tag=${USER_TAG}`;
return url;
}
export default (req, res) => {
const { email } = req.body;
if (!email) {
res.statusCode = 400;
res.json({ error: 'no email passed to api' });
return;
}
return fetch(buildUrl(email))
.then((res) => res.json())
.then((res) => {
if (res.error) {
throw Error(res.error);
}
res.statusCode = 200;
res.json({ success: true });
})
.catch((error) => {
res.statusCode = 400;
res.json({ error });
});
};

View file

@ -1,6 +0,0 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default (req, res) => {
res.statusCode = 200
res.json({ name: 'John Doe' })
}

43
pages/api/twitter.js Normal file
View file

@ -0,0 +1,43 @@
import Twitter from 'twitter';
var client = new Twitter({
bearer_token:
'AAAAAAAAAAAAAAAAAAAAAMM7OAEAAAAAnyZGPrtcyMxTcMaeEKs2w5h9tLE%3DIhFiagHIQttMtwim6PC6bdSWVRKh8yciPNYSQONsZ0SW9pPlwg',
consumer_key: 'QHDGGCESRXnzIPqjkM5gXeFJW',
consumer_secret: 'UOmIuZIrqqOHDoWPwDmP9MhSMC8Jg0TseZcudx0JckdNrtqVCs',
access_token_key: '409427707-xOAx3oBfwsh5FesJYxrYlcN7wlU7wXDRcPfRxUtT',
access_token_secret: 'WbUYTqNm0zeweC5HRawXfq2OKxDVKrY5OD6W0MJqtnrgp',
});
let cachedTweets;
let cacheDate;
const CACHE_TIME = 1 * 60 * 1000;
export default (req, res) => {
const skipCache = cacheDate && new Date() - cacheDate > CACHE_TIME;
if (cachedTweets && cacheDate && !skipCache) {
res.statusCode = 200;
return res.json({ data: cachedTweets });
}
return new Promise((resolve, reject) => {
client.get(
'search/tweets',
{ q: '#HelpLBRYSaveCrypto', count: 100 },
function (error, tweets, response) {
if (error) {
res.statusCode = 500;
Promise.resolve(res.json({ error: 'Unable to fetch tweets' }));
return;
}
cachedTweets = tweets;
cacheDate = new Date();
res.statusCode = 200;
Promise.resolve(res.json({ data: tweets }));
}
);
});
};

60
pages/faq.js Normal file
View file

@ -0,0 +1,60 @@
import React from 'react';
import ReactMarkdown from 'react-markdown';
import { useRouter } from 'next/router';
import { Header } from '../component/header';
import { Email } from '../component/email';
import { tracker } from '../analytics';
import { t, m } from '../i18n';
import EN_MD from '../faq/en.md';
import ES_MD from '../faq/es.md';
function flatten(text, child) {
return typeof child === 'string'
? text + child
: React.Children.toArray(child.props.children).reduce(flatten, text);
}
function HeadingRenderer(props) {
var children = React.Children.toArray(props.children);
var text = children.reduce(flatten, '');
var slug = text.toLowerCase().replace(/\W/g, '-');
return React.createElement('h' + props.level, { id: slug }, props.children);
}
export default function Faq() {
const router = useRouter();
const lang = router.query.lang || 'en';
let md;
switch (true) {
case lang === 'es':
md = ES_MD;
break;
default:
md = EN_MD;
}
React.useEffect(() => {
tracker.trackPageView(window.location.pathname);
}, []);
function __(message) {
return t(message, lang);
}
return (
<div>
<Header faqPage />
<main>
<div className="content md">
<ReactMarkdown renderers={{ heading: HeadingRenderer }}>
{md}
</ReactMarkdown>
</div>
<Email i18n={__} />
</main>
</div>
);
}

View file

@ -1,65 +1,241 @@
import Head from 'next/head' import React from 'react';
import styles from '../styles/Home.module.css' import Image from 'next/image';
import { useRouter } from 'next/router';
import { Header } from '../component/header';
import { Twitter } from '../component/twitter';
import { Email } from '../component/email';
import { t, m } from '../i18n';
import { tracker } from '../analytics';
export default function Home() { export default function Home() {
const router = useRouter();
const lang = router.query.lang || 'en';
let faqHref = '/faq';
if (lang !== 'en') {
faqHref += `?lang=${lang}`;
}
React.useEffect(() => {
tracker.trackPageView();
}, []);
function __(message) {
return t(message, lang);
}
return ( return (
<div className={styles.container}> <div>
<Head> <Header />
<title>Create Next App</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main className={styles.main}> <main>
<h1 className={styles.title}> <div className="landing__img-container">
Welcome to <a href="https://nextjs.org">Next.js!</a> <img className="landing__img" src="https://i.imgur.com/onVjlEW.jpg" />
</h1> </div>
<p className={styles.description}> <div className="landing__text">
Get started by editing{' '} <h1 className="landing__title">
<code className={styles.code}>pages/index.js</code> {__(m.help_lbry)}
</p> <br />
{__(m.save_crypto)}
</h1>
<div className="landing__subtitle">
<div>{__(m.landing_subtitle)}</div>
{/*
<div className="landing__standout">
<span>{__(m.landing_action)}</span>
</div>
<div className={styles.grid}> */}
<a href="https://nextjs.org/docs" className={styles.card}> </div>
<h3>Documentation &rarr;</h3> </div>
<p>Find in-depth information about Next.js features and API.</p>
</a>
<a href="https://nextjs.org/learn" className={styles.card}> <div className="content">
<h3>Learn &rarr;</h3> <h2 className="content__section-title">{__(m.summary_title)}</h2>
<p>Learn about Next.js in an interactive course with quizzes!</p> <div className="content__subtitle">{__(m.summary_subtitle)}</div>
</a>
<a {/* <div>
href="https://github.com/vercel/next.js/tree/master/examples" <small>
className={styles.card} {__(m.video_subtitle)}{' '}
> <a className="link" href="/faq">
<h3>Examples &rarr;</h3> {__(m.video_link)}
<p>Discover and deploy boilerplate example Next.js projects.</p> </a>
</a> </small>
</div> */}
<div className="video">
<iframe
id="lbry-iframe"
src="https://odysee.com/$/embed/Govt-Sues-LBRY/75dac1da9f4296f0f55a04d0ad9e181456f0ad46?r=A6zE8KtZ6VVk268xANdFViL8znbDXL4F"
allowFullScreen
/>
</div>
<a <div className="content__section">
href="https://vercel.com/import?filter=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
className={styles.card}
>
<h3>Deploy &rarr;</h3>
<p> <p>
Instantly deploy your Next.js site to a public URL with Vercel. {__(m.p1_a)}
<br />
<br />
{__(m.p1_b)}
</p> </p>
</a>
<div className="content__img content__img--question">
<Image
src="/question.png"
alt="Image of LBRY cartoon"
layout="fill"
/>
</div>
</div>
<div className="content__section">
<div className="content__img content__img--megaphone">
<Image
className="content__img"
src="/megaphone.png"
alt="Image of LBRY cartoon"
layout="fill"
/>
</div>
<p>
{__(m.p2_a)}
<br />
<br />
{__(m.p2_b)}
</p>
</div>
<h2 className="content__section-title" id="share">
{__(m.share_story_title)}
</h2>
<div className="content__subtitle">
{__(m.share_story_subtitle)}
&nbsp;
<a
href="https://twitter.com/intent/tweet?text=LBRY%20and%20cryptocurrencies%20are%20useful%20technologies%20that%20must%20remain%20legal%20and%20free%20%23HelpLBRYSaveCrypto%0A%0Awww.helplbrysavecrypto.com"
className="link"
rel="noreferrer noopener"
target="_blank"
>
#HelpLBRYSaveCrypto
</a>
</div>
<Twitter i18n={__} />
</div>
<div className="content">
<h2 className="content__section-title" id="petition">
{__(m.petition_title)}
</h2>
<div className="content__subtitle">
{__(m.petition_subtitle)}
&nbsp;
<a
className="link"
href="https://www.change.org/p/u-s-securities-and-exchange-commission-cryptocurrency-is-not-a-crime"
rel="noreferrer noopener"
target="_blank"
>
{__(m.petition_link)}
</a>
.
</div>
</div>
<div className="content">
<h2 className="content__section-title" id="petition">
{__(m.read_more_title)}
</h2>
<div className="content__subtitle">
{__(m.read_more_subtitle)}
&nbsp;
<a className="link" href={faqHref}>
{__(m.read_more_link)}
</a>
.
</div>
</div>
<Email i18n={__} />
<div className="content">
<h2 className="content__section-title">{__(m.try_lbry_title)}</h2>
<div className="content__subtitle">{__(m.try_lbry_subtitle)}</div>
<div className="lbry__try">
<p>
<a
href="https://lbry.com/get"
className="link"
rel="noreferrer noopener"
target="_blank"
>
{__(m.try_lbry_desktop_link)}
</a>{' '}
({__(m.try_lbry_desktop_help)})
</p>
</div>
<div className="lbry__try">
<p>
<a
href="https://odysee.com"
className="link"
rel="noreferrer noopener"
target="_blank"
>
Odysee
</a>{' '}
({__(m.try_odysee_help)})
</p>
</div>
</div>
<div className="content">
<h2 className="content__section-title" id="contact">
{__(m.contact_title)}
</h2>
<p>
{__(m.contact_press)}:{' '}
<a className="link" href="mailto:press@lbry.com">
press@lbry.com
</a>
</p>
<p>
{__(m.contact_legal)}:{' '}
<a className="link" href="mailto:legal@lbry.com">
legal@lbry.com
</a>
</p>
<p>
{__(m.contact_other_email)}:{' '}
<a className="link" href="mailto:savecrypto@lbry.com">
savecrypto@lbry.com
</a>
</p>
<p>
Twitter:{' '}
<a
className="link"
href="https://twitter.com/lbrycom"
rel="noreferrer noopener"
target="_blank"
>
@LBRYcom
</a>
</p>
<p>
{__(m.contact_discord)}:{' '}
<a
className="link"
href="https://chat.lbry.org"
rel="noreferrer noopener"
target="_blank"
>
LBRY Discord
</a>
</p>
</div> </div>
</main> </main>
<footer className={styles.footer}>
<a
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
Powered by{' '}
<img src="/vercel.svg" alt="Vercel Logo" className={styles.logo} />
</a>
</footer>
</div> </div>
) );
} }

BIN
public/lbc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

BIN
public/machine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
public/megaphone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
public/question.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View file

@ -1,4 +0,0 @@
<svg width="283" height="64" viewBox="0 0 283 64" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,122 +0,0 @@
.container {
min-height: 100vh;
padding: 0 0.5rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.main {
padding: 5rem 0;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.footer {
width: 100%;
height: 100px;
border-top: 1px solid #eaeaea;
display: flex;
justify-content: center;
align-items: center;
}
.footer img {
margin-left: 0.5rem;
}
.footer a {
display: flex;
justify-content: center;
align-items: center;
}
.title a {
color: #0070f3;
text-decoration: none;
}
.title a:hover,
.title a:focus,
.title a:active {
text-decoration: underline;
}
.title {
margin: 0;
line-height: 1.15;
font-size: 4rem;
}
.title,
.description {
text-align: center;
}
.description {
line-height: 1.5;
font-size: 1.5rem;
}
.code {
background: #fafafa;
border-radius: 5px;
padding: 0.75rem;
font-size: 1.1rem;
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
Bitstream Vera Sans Mono, Courier New, monospace;
}
.grid {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
max-width: 800px;
margin-top: 3rem;
}
.card {
margin: 1rem;
flex-basis: 45%;
padding: 1.5rem;
text-align: left;
color: inherit;
text-decoration: none;
border: 1px solid #eaeaea;
border-radius: 10px;
transition: color 0.15s ease, border-color 0.15s ease;
}
.card:hover,
.card:focus,
.card:active {
color: #0070f3;
border-color: #0070f3;
}
.card h3 {
margin: 0 0 1rem 0;
font-size: 1.5rem;
}
.card p {
margin: 0;
font-size: 1.25rem;
line-height: 1.5;
}
.logo {
height: 1em;
}
@media (max-width: 600px) {
.grid {
width: 100%;
flex-direction: column;
}
}

View file

@ -1,16 +0,0 @@
html,
body {
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
a {
color: inherit;
text-decoration: none;
}
* {
box-sizing: border-box;
}

534
styles/globals.scss Normal file
View file

@ -0,0 +1,534 @@
$breakpoint-small: 900px;
$spacing-small: 1rem;
$spacing-medium: 1.8rem;
$border-radius: 10px;
html,
body {
font-size: 16px;
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
}
* {
box-sizing: border-box;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
padding: 0;
}
iframe {
border: none;
}
p {
font-size: 24px;
line-height: 2rem;
}
input,
button {
border: none;
}
a,
button,
.link {
color: inherit;
text-decoration: none;
&:hover {
cursor: pointer;
}
}
.header {
height: 8vh;
background-color: white;
color: black;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0.75rem;
a:not(:last-of-type) {
margin-right: $spacing-small;
}
.link {
font-size: 1.25rem;
}
@media (min-width: $breakpoint-small) {
padding: 0 1rem;
}
}
.header--faq {
border-bottom: 1px solid black;
}
main {
overflow: hidden;
padding-bottom: 5rem;
}
.title {
font-weight: 800;
font-size: 1.25rem;
cursor: pointer;
svg {
margin-right: 0.5rem;
@media (max-width: $breakpoint-small) {
display: none;
}
}
@media (min-width: $breakpoint-small) {
display: flex;
align-items: center;
font-size: 1.4rem;
}
}
.title__rest {
color: #424242;
}
.link {
color: #e2048e;
font-weight: 900;
border-bottom: 1px solid #e2048e;
}
.landing__img-container {
position: relative;
z-index: -1;
position: relative;
height: auto;
background-color: #111111;
color: #ffffff;
overflow: visible;
img {
width: 110vw;
object-fit: cover;
filter: brightness(50%);
}
@media (min-width: $breakpoint-small) {
height: 70vh;
}
}
.landing__text {
margin-top: -2rem;
margin-left: $spacing-small;
margin-right: $spacing-small;
background-color: #31afa1;
color: white;
padding: $spacing-small;
padding-bottom: 2rem;
@media (min-width: $breakpoint-small) {
position: absolute;
margin: 0 10rem;
top: 20vh;
width: 40rem;
padding: $spacing-medium;
}
}
.landing__title {
font-size: 2.5rem;
font-weight: 900;
@media (min-width: $breakpoint-small) {
font-size: 3rem;
}
}
.landing__subtitle {
margin-top: 1.5rem;
font-size: 1.5rem;
font-weight: 300;
@media (min-width: $breakpoint-small) {
font-size: 1.5rem;
}
}
.landing__standout {
margin-top: 1.5rem;
@media (min-width: $breakpoint-small) {
font-size: 1.5rem;
}
}
.content {
padding: 2rem;
padding-bottom: 0;
background-color: #ffffff;
color: #000000;
.content__section-title {
font-size: 2rem;
font-weight: 900;
&:not(:first-of-type) {
margin-top: 4rem;
}
}
@media (min-width: $breakpoint-small) {
padding-top: 5rem;
width: 900px;
margin: auto;
&:not(:first-of-type) {
padding-top: 2rem;
}
.content__section-title {
font-size: 4rem;
}
}
}
.content__section {
display: flex;
position: relative;
margin-top: 2rem;
@media (max-width: $breakpoint-small) {
margin-top: 0;
}
p {
width: 80%;
@media (max-width: $breakpoint-small) {
width: 100%;
}
}
}
.donate {
display: flex;
flex-wrap: wrap;
font-size: 1.2rem;
:first-child {
font-weight: bold;
margin-right: 1rem;
width: 10rem;
text-align: right;
}
&:last-child {
margin-bottom: 3rem;
}
@media (max-width: $breakpoint-small) {
flex-direction: column;
:first-child {
text-align: left;
}
:nth-child(2) {
margin-left: -15px;
margin-top: 0.5rem;
margin-bottom: 1.5rem;
font-size: 0.8rem;
}
}
}
.content__img {
position: relative;
@media (max-width: $breakpoint-small) {
display: none;
}
}
.content__img--question {
width: 80%;
}
.content__img--megaphone {
width: 80%;
}
.content__subtitle {
margin-top: 1rem;
margin-bottom: 2rem;
font-size: 1.3rem;
font-weight: 300;
color: #797979;
@media (min-width: $breakpoint-small) {
font-size: 1.5rem;
}
}
.video {
margin-top: 0.5rem;
position: relative;
padding-bottom: 56.25%;
background-color: black;
border-radius: 20px;
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 20px;
}
}
.email {
width: 100%;
max-width: 35rem;
margin: auto;
font-size: 2rem;
padding: 1rem;
background-color: #fcd34d;
h2 {
font-size: 2rem;
}
label {
font-size: 1rem;
font-weight: 700;
}
@media (min-width: $breakpoint-small) {
padding: 5rem;
margin-top: 4rem;
margin-bottom: 2rem;
h2 {
font-size: 3rem;
}
}
}
.email__group {
height: 3rem;
display: flex;
align-items: center;
border-radius: 10px;
input {
flex: 1;
font-size: 0.8rem;
margin: 0;
padding: 0;
background-color: #ffffff;
border-top-left-radius: $border-radius;
border-bottom-left-radius: $border-radius;
&:focus {
outline: none;
}
@media (min-width: $breakpoint-small) {
font-size: 1rem;
}
}
button {
border-top-right-radius: $border-radius;
border-bottom-right-radius: $border-radius;
background-color: black;
color: white;
font-weight: 700;
}
input,
button {
padding: 1rem;
height: 3rem;
}
}
.email__subtitle {
font-size: 1.5rem;
margin: 1rem 0;
@media (min-width: $breakpoint-small) {
font-size: 1.75rem;
margin: 2rem 0;
}
}
.email__success,
.email__error {
font-size: 1rem;
margin-top: 0.5rem;
}
.twitter {
margin-top: 2.5rem;
margin-bottom: 1.5rem;
width: 100vw;
overflow: hidden;
}
.twitter__error-link {
color: red;
font-weight: 900;
border-bottom: 1px solid red;
}
.tweets {
display: flex;
align-items: flex-start;
margin-left: 100px;
animation: slide 300s linear;
animation-fill-mode: forwards;
}
.tweets--static {
animation: none;
@media (min-width: $breakpoint-small) {
margin-left: -50px;
}
@media (max-width: $breakpoint-small) {
:not(:first-child) {
display: none;
}
}
}
@keyframes slide {
0% {
margin-left: 100px;
}
100% {
margin-left: -5000px;
}
}
.tweet {
width: 50rem;
display: flex;
padding: 1rem;
padding-bottom: 1.5rem;
font-size: 20px;
border: 1px solid lightgray;
border-radius: 10px;
margin-right: 2rem;
}
.tweet--placeholder {
@extend .tweet;
height: 15rem;
width: 80vw;
background-color: #eeeeee;
border-radius: 10px;
@media (min-width: $breakpoint-small) {
width: 50rem;
}
}
.tweet__content {
min-width: 15rem;
margin-left: 1rem;
}
.tweet__author {
display: flex;
}
.tweet__username {
font-weight: bold;
}
.tweet__handle {
color: #888;
font-size: 1rem;
margin-top: 0.25rem;
}
.tweet_img {
height: 50px;
width: 50px;
border-radius: 25px;
}
.tweet__text {
margin-top: 1rem;
font-size: 1rem;
}
.md {
h1 {
font-size: 4.5rem;
font-weight: 900;
margin-bottom: 2.5rem;
@media (max-width: $breakpoint-small) {
font-size: 2.5rem;
}
}
h2 {
font-size: 3rem;
font-weight: 900;
margin-bottom: 1rem;
@media (max-width: $breakpoint-small) {
font-size: 2rem;
}
}
h3 {
font-size: 2rem;
@media (max-width: $breakpoint-small) {
font-size: 1.5rem;
}
}
ul {
font-size: 1.5rem;
}
li:not(:last-of-type) {
margin-bottom: 1rem;
}
a {
color: #e2048e;
border-bottom: 1px solid #e2048e;
}
}
.lbry__try {
margin-bottom: 1rem;
}

5
vercel.json Normal file
View file

@ -0,0 +1,5 @@
{
"github": {
"silent": true
}
}

739
yarn.lock

File diff suppressed because it is too large Load diff