This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/website/src/pages/index.jsx

268 lines
12 KiB
JavaScript

import React from "react";
import clsx from "clsx";
import Layout from "@theme/Layout";
import Link from "@docusaurus/Link";
import Head from "@docusaurus/Head";
import BrowserOnly from "@docusaurus/BrowserOnly";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import useBaseUrl from "@docusaurus/useBaseUrl";
import styles from "./styles.module.css";
import Comparison from "../components/Comparison";
import "react-before-after-slider-component/dist/build.css";
import { NewsBar } from "../components/NewsBar";
import { TextSlide } from "../components/TextSlide";
function Feature({ imageUrl, title, description }) {
const imgUrl = useBaseUrl(imageUrl);
return (
<div className={clsx("col col--4", styles.feature)}>
{imgUrl && (
<div className="text--center">
<img
className={styles.featureImage}
src={imgUrl}
alt={title}
/>
</div>
)}
<h3>{title}</h3>
<p>{description}</p>
</div>
);
}
function Home() {
const context = useDocusaurusContext();
const { siteConfig = {} } = context;
return (
<Layout title="Welcome" description={siteConfig.tagline}>
<Head>
<meta
name="go-import"
content="goauthentik.io git https://github.com/goauthentik/authentik"
></meta>
</Head>
<header className={clsx("hero hero--primary", styles.heroBanner)}>
<div className="container">
<div className={clsx("row", styles.headerRow)}>
<div className="col padding-top--lg">
<h1
className={clsx(
"hero__title",
styles.ak_hero__title,
)}
>
<div>Replace</div>
<TextSlide
words={[
"Active Directory",
"Okta",
"Auth0",
]}
></TextSlide>
<div>with a unified platform.</div>
</h1>
<p className="hero__subtitle">
Unify all of your identity needs into a single
platform
</p>
<div className={styles.buttons}>
<Link
className={clsx(
"button button--outline button--primary button--lg",
)}
to={useBaseUrl("docs/installation/")}
>
Get Started
</Link>
<Link
className={clsx(
"button button--outline button--primary button--lg",
)}
to="#comparison"
>
Reasons to switch
</Link>
</div>
</div>
<div
className={clsx(
"col text--center",
styles.heroImage,
styles.hiddenOnMobile,
)}
>
<img
alt="authentik logo"
src={useBaseUrl("img/landing_login_card.png")}
/>
</div>
</div>
</div>
</header>
<main>
<section className={styles.features}>
<div className="container">
<div className={clsx("row", styles.row)}>
<Feature
title="Easy to use"
description={
<>
Identity made easy. authentik makes
single-sign on (SSO), user enrollment,
and access control simple.
</>
}
/>
<Feature
title="Realize your workflow"
description={
<>
authentik lets you build your workflow
as you need it, no limitations.
</>
}
/>
<Feature
title="Powered by Python"
description={
<>
Implement custom verification or access
control logic using Python code.
</>
}
/>
</div>
</div>
<div
className={clsx(
"row",
styles.rowDark,
styles.rowFullWidth,
styles.newsBar,
styles.hiddenOnMobile,
)}
>
<div className="container">
<NewsBar />
</div>
</div>
<div className="container">
<div className={clsx("row", styles.row)}>
<div className="col col--5">
<BrowserOnly>
{() => {
const ReactBeforeSliderComponent = require("react-before-after-slider-component");
return (
<ReactBeforeSliderComponent
firstImage={{
id: 1,
imageUrl: useBaseUrl(
"img/landing_screen_apps_dark.jpg",
),
}}
secondImage={{
id: 2,
imageUrl: useBaseUrl(
"img/landing_screen_apps_light.jpg",
),
}}
/>
);
}}
</BrowserOnly>
</div>
<div className="col col--5 col--offset-2 padding-vert--xl">
<h2>What is authentik?</h2>
<p>
authentik is an open-source Identity
Provider focused on flexibility and
versatility. You can use authentik in an
existing environment to add support for new
protocols, implement sign-up/recovery/etc.
in your application so you don't have to
deal with it, and many other things.
</p>
</div>
</div>
<div className={clsx("row", styles.row)}>
<div className="col col--5 col--offset-2 padding-vert--xl">
<h2>Utmost flexibility</h2>
<p>
You can adopt authentik to your environment,
regardless of your requirements. Need an
Active-Directory integrated SSO Provider? Do
you want to implement a custom enrollment
process for your customers? Are you
developing an application and don't want to
deal with User verification and recovery?
authentik can do all of that, and more!
</p>
</div>
<div className="col col--5">
<BrowserOnly>
{() => {
const ReactBeforeSliderComponent = require("react-before-after-slider-component");
return (
<ReactBeforeSliderComponent
firstImage={{
id: 1,
imageUrl: useBaseUrl(
"img/landing_screen_admin_dark.jpg",
),
}}
secondImage={{
id: 2,
imageUrl: useBaseUrl(
"img/landing_screen_admin_light.jpg",
),
}}
/>
);
}}
</BrowserOnly>
</div>
</div>
</div>
</section>
<section>
<div className="container">
<Comparison></Comparison>
</div>
</section>
<section>
<div
className={clsx(
styles.footerCTA,
styles.rowAuthentik,
styles.rowFullWidth,
)}
>
<h1>Try authentik now!</h1>
<div className={styles.buttons}>
<Link
className={clsx(
"button button--outline button--primary button--lg",
)}
to={useBaseUrl("docs/installation/")}
>
Get Started
</Link>
<Link
className={clsx(
"button button--outline button--primary button--lg",
)}
to={useBaseUrl("pricing/")}
>
Learn about enterprise
</Link>
</div>
</div>
</section>
</main>
</Layout>
);
}
export default Home;