diff --git a/.env.sample b/.env.sample index 5b27a8e5d..27f6967bb 100644 --- a/.env.sample +++ b/.env.sample @@ -10,7 +10,7 @@ SECRET_KEY=F0E5AD933D7F6FD8F4DBB3E038C501C052DC0593C686D21ACB30AE205D2F634B PORT=3000 REDIS_URL=redis://redis:6379 URL=http://localhost:3000 -DEPLOYMENT=hosted +DEPLOYMENT=self ENABLE_UPDATES=true DEBUG=sql,cache,presenters,events diff --git a/public/jori.jpg b/public/jori.jpg new file mode 100644 index 000000000..337f97d1f Binary files /dev/null and b/public/jori.jpg differ diff --git a/public/tom.jpg b/public/tom.jpg new file mode 100644 index 000000000..6483497fc Binary files /dev/null and b/public/tom.jpg differ diff --git a/server/pages/About.js b/server/pages/About.js index 06635104c..e5b3f0ce1 100644 --- a/server/pages/About.js +++ b/server/pages/About.js @@ -1,19 +1,165 @@ // @flow import React from 'react'; import Grid from 'styled-components-grid'; +import styled from 'styled-components'; import { Helmet } from 'react-helmet'; -import Hero from './components/Hero'; +import Flex from '../../shared/components/Flex'; +import Header from './components/Header'; +import Content from './components/Content'; + +const Authors = styled(Flex).attrs({ + justify: 'center', +})` + margin: 40px 0; +`; + +const Author = styled(Flex).attrs({ + column: true, + align: 'center', +})` + margin-right: 60px; + + &:last-child { + margin-right: 0; + } +`; + +const Avatar = styled.img` + width: 60px; + height: 60px; + margin-bottom: 20px; + + border-radius: 50%; +`; export default function About() { return ( - About + About Us - -

About Outline

-

Just a proof of concept for multiple pages.

-
+
+

About Us

+

The team behind Outline

+
+ +

+ Outline is a wiki and knowledge base built for growing teams. We’re + focused on speed, usability and extensibility. +

+

+ The open source project is maintained by Jori Lallo and Tom Moor. + Having both run venture-backed software startups previously and seeing + many similar VC-funded products try and fail while the market need + remained we decided to try a different approach. So don’t worry, + Outline is here to last. +

+

+ + Outline is currently in public beta. The hosted service will stay + free during this period. After that we will offer Outline free for + teams up to 5 people and have reasonable plans for larger teams. + +

+ + + +
+ Jori Lallo +
+ +
+ + + +
+ Tom Moor +
+ +
+
+ +

Open Source

+

+ Outline is built by a group of core{' '} + + maintainers + , we believe in being honest and transparent. +

+ +

+ You can view Outline’s source code on{' '} + GitHub. +

+

FAQ

+

+

Why would I pay you if I can run Outline myself?

+ You don’t have to but you might have better things to do with your + time. When you sign up for Outline, you’ll always be running the + latest version, have all the features and we’ll answer the questions + your team might have. You’ll also help to keep Outline getting better + by supporting us financially. +

+

+

Can I use Google/GitHub/etc to signup for Outline?

+ We started with Slack as many teams are already using it and benefit + from the integrations. We’ll be adding more login methods soon. Please + let us know which one you would like to see next{' '} + + here + . +

+

+

How can I export my data if you go away?

+ We’re committed on making your data portable. We’ll soon add better + import and export options so you which will let you take your data and + view it in HTML form or upload to self-hosted Outline. Until then, you + can do this through our API. +

+

+

How can I get in touch with you?

+ You can drop us a note on our{' '} + Spectrum community or + email us at{' '} + hello@getoutline.com. +

+
); } diff --git a/server/pages/components/Content.js b/server/pages/components/Content.js index 713d4a677..a69c20cb2 100644 --- a/server/pages/components/Content.js +++ b/server/pages/components/Content.js @@ -4,6 +4,6 @@ import styled from 'styled-components'; export default styled.div` width: 100%; max-width: 720px; - margin: 0 auto; + margin: 0 auto 2em; padding: 0 2em; `; diff --git a/server/pages/components/Layout.js b/server/pages/components/Layout.js index e2321bc93..7683894d6 100644 --- a/server/pages/components/Layout.js +++ b/server/pages/components/Layout.js @@ -6,6 +6,11 @@ import Analytics from '../../../shared/components/Analytics'; import globalStyles from '../../../shared/styles/globals'; import { color } from '../../../shared/styles/constants'; +export const title = 'Outline'; +export const description = + 'Your team’s knowledge base - Team wiki, documentation, playbooks, onboarding & more…'; +export const screenshotUrl = `${process.env.URL}/screenshot.png`; + type Props = { children?: React$Element<*>, }; @@ -17,17 +22,26 @@ export default function Layout({ children }: Props) { - Outline + {title} - - + + + + + + + + + + + + + + Features - Blog + About Changelog @@ -51,7 +52,7 @@ function BottomNavigation() { Medium
- Twitter + Privacy
); diff --git a/server/routes.js b/server/routes.js index ece6031c4..86e968f0c 100644 --- a/server/routes.js +++ b/server/routes.js @@ -10,6 +10,7 @@ import serve from 'koa-static'; import subdomainRedirect from './middlewares/subdomainRedirect'; import renderpage from './utils/renderpage'; import { slackAuth } from '../shared/utils/routeHelpers'; +import { robotsResponse } from './utils/robots'; import Home from './pages/Home'; import About from './pages/About'; @@ -81,6 +82,9 @@ router.get('/', async ctx => { } }); +// Other +router.get('/robots.txt', ctx => (ctx.body = robotsResponse(ctx))); + // catch all for react app router.get('*', async ctx => { await renderapp(ctx); diff --git a/server/utils/robots.js b/server/utils/robots.js new file mode 100644 index 000000000..f7e08c8ee --- /dev/null +++ b/server/utils/robots.js @@ -0,0 +1,9 @@ +// @flow +import { type Context } from 'koa'; + +const DISALLOW_ROBOTS = `User-agent: * +Disallow: /`; + +export const robotsResponse = (ctx: Context): ?string => { + if (ctx.headers.host.indexOf('getoutline.com') < 0) return DISALLOW_ROBOTS; +}; diff --git a/shared/styles/base.js b/shared/styles/base.js index ff3856f0f..87d1978df 100644 --- a/shared/styles/base.js +++ b/shared/styles/base.js @@ -69,10 +69,14 @@ export default ` margin-bottom: 1em; } + li { + padding: .2em 0; + } + hr { border: 0; height: 0; border-top: 1px solid rgba(0, 0, 0, 0.1); border - bottom: 1px solid rgba(255, 255, 255, 0.3); -} +} `; diff --git a/shared/utils/routeHelpers.js b/shared/utils/routeHelpers.js index d3d854fc7..1997e6f48 100644 --- a/shared/utils/routeHelpers.js +++ b/shared/utils/routeHelpers.js @@ -52,3 +52,11 @@ export function changelog(): string { export function signin(): string { return '/auth/slack'; } + +export function about(): string { + return '/about'; +} + +export function privacy(): string { + return '/privacy'; +}