Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Showing
with 833 additions and 215 deletions
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { Markdown } from '../components/Markdown';
export default function Home({ content }: { content: string }) {
return (
<div>
<Head>
<title>About Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<Markdown content={content} />
</div>
<Footer />
</main>
</div>
);
}
export async function getStaticProps() {
const { readFile } = require('fs/promises');
const file = await readFile('./legal/About.md');
const content = file.toString();
return { props: { content } }
}
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default (req, res) => {
res.statusCode = 200
res.json({ name: 'John Doe' })
}
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { Markdown } from '../components/Markdown';
export default function Home({ content }: { content: string }) {
return (
<div>
<Head>
<title>Acceptable Usage Policy - Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<Markdown content={content} />
</div>
<Footer />
</main>
</div>
);
}
export async function getStaticProps() {
const { readFile } = require('fs/promises');
const file = await readFile('./legal/Acceptable Usage Policy.md');
const content = file.toString();
return { props: { content } }
}
import URLs from '../urls';
import redirect from 'nextjs-redirect';
export default redirect(URLs.ApplicationForm);
import Head from 'next/head'
export default function Home() {
return (
<div className="container">
<Head>
<title>Create Next App</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<h1 className="title">
Welcome to <a href="https://nextjs.org">Next.js!</a>
</h1>
<p className="description">
Get started by editing <code>pages/index.js</code>
</p>
<div className="grid">
<a href="https://nextjs.org/docs" className="card">
<h3>Documentation &rarr;</h3>
<p>Find in-depth information about Next.js features and API.</p>
</a>
<a href="https://nextjs.org/learn" className="card">
<h3>Learn &rarr;</h3>
<p>Learn about Next.js in an interactive course with quizzes!</p>
</a>
<a
href="https://github.com/vercel/next.js/tree/master/examples"
className="card"
>
<h3>Examples &rarr;</h3>
<p>Discover and deploy boilerplate example Next.js projects.</p>
</a>
<a
href="https://vercel.com/import?filter=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
className="card"
>
<h3>Deploy &rarr;</h3>
<p>
Instantly deploy your Next.js site to a public URL with Vercel.
</p>
</a>
</div>
</main>
<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="logo" />
</a>
</footer>
<style jsx>{`
.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;
}
a {
color: inherit;
text-decoration: none;
}
.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;
}
}
`}</style>
<style jsx global>{`
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;
}
* {
box-sizing: border-box;
}
`}</style>
</div>
)
}
import URLs from '../urls';
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Home.module.scss';
import { JoinLinks } from '../components/JoinLinks';
import { JoinPrompt } from '../components/JoinPrompt';
import { ArrowRight, HelpCircle } from '@styled-icons/feather';
export default function Home() {
return (
<div>
<Head>
<title>Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
<meta property="og:title" content="Revolt" />
<meta property="og:url" content="https://revolt.chat" />
<meta property="og:image" content="https://revolt.chat/embed_new.png" />
<meta property="og:description" content="Don't bother with chat apps that don't respect your privacy. Revolt is a brand new chat platform designed around you." />
<meta property="twitter:title" content="Revolt" />
<meta property="twitter:site" content="@revoltchat" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:image" content="https://revolt.chat/embed_new.png" />
<meta property="twitter:image:alt" content='Image of REVOLT app alongside logo with subtext "Communication is critical. Privacy is essential."' />
<meta property="twitter:description" content="Don't bother with chat apps that don't respect your privacy. Revolt is a brand new chat platform designed around you." />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1280" />
<meta property="og:image:height" content="720" />
{ // Disabled scroll snapping.
/* // Firefox only: Scroll snapping.
// Doesn't work properly with Chromium.
typeof window !== 'undefined' &&
typeof (window as any).InstallTrigger !== 'undefined' &&
<style dangerouslySetInnerHTML={{ __html: `html { scroll-snap-type: y mandatory; }` }} /> */ }
</Head>
<main>
<a className={styles.feedback} href={URLs.Feedback} target="_blank">
<HelpCircle size={24} strokeWidth={2}/>Feedback
</a>
<section className={styles.hero}>
<Navbar />
<div className={styles.overview}>
<div className={styles.left}>
<div className={styles.tagline}>
<p>Don't bother with other chat apps.</p>
<h1>Communication is critical.<br />Privacy is essential.</h1>
<JoinLinks />
</div>
</div>
<div className={styles.graphic}>
<img src="/client_vector.svg" draggable={false} />
</div>
</div>
</section>
<section className={styles.section} data-reverse="true">
<div className={styles.image}>
<img src="/appearance.jpg" draggable={false} style={{ borderRadius: '8px' }} />
</div>
<div className={styles.content}>
<div>
<h1>Familiar and simple,<br/>just how you like it.</h1>
<p>Revolt is built on the same technologies as other popular chat applications, so there won’t be any need to re-learn how to use it. If you don't like the default look, you can customize it to your heart’s content.</p>
</div>
</div>
</section>
<section className={styles.section}>
<div className={styles.content}>
<div>
<h1>Open source<br />to the public.</h1>
<p>We believe that there’s more to it than just code. Having the Revolt project open source means that we can create a transparent layer between us and the user.<br/><br/>You can contribute, create your own bot, or make your own version of the Revolt client.</p>
<a className={styles.link} href={URLs.GitHub} target="_blank"><ArrowRight size={24} strokeWidth={2}/>View project on GitHub</a>
</div>
</div>
<div className={styles.image}>
<img src="/opensource.svg" draggable={false} />
</div>
</section>
<section className={styles.section} data-reverse="true">
<div className={styles.image}>
<img src="/everywhere.svg" draggable={false} />
</div>
<div className={styles.content}>
<div>
<h1>Available<br/>everywhere.</h1>
<p>From desktop to mobile, the Revolt app is available wherever you are, so you can hang out, coordinate a meetup, or hop in a video call, even if you're not in front of your computer.</p>
</div>
</div>
</section>
<section className={styles.section}>
<div className={styles.content}>
<div>
<h1>Your data should be yours,<br/>not ours.</h1>
<p>Privacy has become a major concern over the past few years, and we wanted to take action by building a <u>privacy-first, open source chat platform.</u></p>
</div>
</div>
<div className={styles.image}>
<img src="/privacy.svg" draggable={false} />
</div>
</section>
<JoinPrompt />
<Footer />
</main>
</div>
);
}
import URLs from '../urls';
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { useRouter } from 'next/dist/client/router';
import { ExternalLink } from '@styled-icons/feather';
export default function Onboarding() {
const { query } = useRouter();
const { code } = query;
return (
<div>
<Head>
<title>Welcome to Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<h1 className={styles.title}>Welcome to Revolt</h1>
<p>
If you've been linked to this page, you likely applied to join the beta and have now been invited to sign up. To sign up, use the invite code below from the app or click the button below to be taken straight to the account creation screen.
</p>
{ code && <p>
You've been given an invite code: <code className={styles.inviteCode}>{ code }</code>
</p> }
<span>
<a className="button red"
target="_blank"
href={code ? `${URLs.App}/login/create?code=${code}` : URLs.App}>
<ExternalLink size={24} /> Open App
</a>
</span>
<h3>Having problems?</h3>
<p>
We have a number of channels you can contact us directly through for help.
</p>
<ul>
<li>Email support: <a href="mailto:contact@revolt.chat">contact@revolt.chat</a></li>
<li>Online support: <a href="https://help.revolt.chat" target="_blank">help.revolt.chat</a></li>
<li>Matrix channel: <a href="https://matrix.to/#revolt-chat:clustor.net" target="_blank">#revolt-chat:clustor.net</a></li>
<li>Discord server: <a href="https://discord.gg/AWFZeCc" target="_blank">discord.gg/AWFZeCc</a></li>
</ul>
</div>
<Footer />
</main>
</div>
);
}
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { Markdown } from '../components/Markdown';
export default function Home({ content }: { content: string }) {
return (
<div>
<Head>
<title>Privacy Policy - Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<Markdown content={content} />
</div>
<Footer />
</main>
</div>
);
}
export async function getStaticProps() {
const { readFile } = require('fs/promises');
const file = await readFile('./legal/Privacy Policy.md');
const content = file.toString();
return { props: { content } }
}
import URLs from '../urls';
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { ExternalLink } from '@styled-icons/feather';
import { JoinLinks } from '../components/JoinLinks';
import classNames from 'classnames';
export default function Beta() {
return (
<div>
<Head>
<title>Revolt Public Beta</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<h1 className={styles.title}>Revolt Public Beta</h1>
<h3>
Hi there! <img src="https://static.revolt.chat/emoji/mutant/1f44b-10160a.svg" style={{ height: '1.2em', verticalAlign: 'top' }} />
</h3>
<p>
Before we let you in, there's just a few ground rules:
</p>
<ul style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>
<li><b style={{ fontWeight: 700 }}>Be respectful to others in our public spaces.</b><br/>
We have a steadily growing and friendly community in the public tester server, please be nice to others when you join.</li>
<li><b style={{ fontWeight: 700 }}>Follow our Acceptable Usage policy.</b><br/>
Failure to do so may result in your access being revoked.</li>
<li><b style={{ fontWeight: 700 }}>Expect some bugs!</b><br/>
We're trying our best to keep everything stable but sometimes things slip through.<br/>
Most of the time we don't run into issues, but if you do have any issues please report them through the app.</li>
</ul>
<p>
Thank you!
</p>
<p>
<a className={classNames("button", "red")} href={URLs.GenerateCode}>
Continue
</a>
</p>
</div>
<Footer />
</main>
</div>
);
}
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { Markdown } from '../components/Markdown';
export default function Home({ content }: { content: string }) {
return (
<div>
<Head>
<title>Roadmap - Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<Markdown content={content} />
</div>
<Footer />
</main>
</div>
);
}
export async function getStaticProps() {
const { readFile } = require('fs/promises');
const file = await readFile('./ROADMAP.md');
const content = file.toString();
return { props: { content } }
}
import Head from 'next/head';
import { Footer } from '../components/Footer';
import { Navbar } from '../components/Navbar';
import styles from '../styles/Legal.module.scss';
import { Markdown } from '../components/Markdown';
export default function Home({ content }: { content: string }) {
return (
<div>
<Head>
<title>Terms of Service - Revolt</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
</Head>
<main>
<Navbar />
<div className={styles.content}>
<Markdown content={content} />
</div>
<Footer />
</main>
</div>
);
}
export async function getStaticProps() {
const { readFile } = require('fs/promises');
const file = await readFile('./legal/Terms of Service.md');
const content = file.toString();
return { props: { content } }
}
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "chat.revolt.app.twa",
"sha256_cert_fingerprints": [
"6E:62:C1:BF:5A:2D:11:31:A3:22:91:8D:22:2B:2C:49:D3:70:F3:A1:45:DF:11:6A:97:DC:4C:A9:3B:C3:AA:FB"
]
}
}]
\ No newline at end of file
This is a Brave Rewards publisher verification file.
Domain: revolt.chat
Token: 7ea0349109bdaa858f46e1af41e207da54854e67418a3373557f0f3a49b3de9e
public/appearance.jpg

199 KiB

This diff is collapsed.
This diff is collapsed.
public/embed_new.png

58.5 KiB

This diff is collapsed.
public/favicon.ico

14.7 KiB | W: 48px | H: 48px

public/favicon.ico

66.1 KiB | W: 128px | H: 128px

public/favicon.ico
public/favicon.ico
public/favicon.ico
public/favicon.ico
  • 2-up
  • Swipe
  • Onion skin
public/header.png

40 KiB