website: add pricing waitlist and blog post (#5058)

* pricing

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* update

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* website: add pricing waitlist and blog post

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* Apply suggestions from code review

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Jens L. <jens@beryju.org>

* fix lint

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Jens L. <jens@beryju.org>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
This commit is contained in:
Jens L 2023-03-23 21:34:34 +01:00 committed by GitHub
parent 9a52d8db83
commit 35d2e9cd5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 366 additions and 6 deletions

View File

@ -0,0 +1,76 @@
---
title: Whats new with authentik - March 2023
slug: 2023-03-23-whats-new-with-authentik-march-2023
authors:
- name: Jens Langhammer
title: CTO at Authentik Security Inc
url: https://github.com/BeryJu
image_url: https://github.com/BeryJu.png
- name: Tana Berry
title: Sr. Technical Content Editor at Authentik Security Inc
url: https://github.com/tanberry
image_url: https://github.com/tanberry.png
tags:
- announcement
hide_table_of_contents: false
---
In a blog from last November 2022, titled “[Next steps for authentik](https://goauthentik.io/blog/2022-11-02-the-next-step-for-authentik)”, I wrote about the launch of [Authentik Security](https://goauthentik.io/), our open core company built around the open source project [authentik](https://github.com/goauthentik/authentik).
In this post, wed like to provide updates on our progress in building out Authentik Security the company, ramping up the feature set in our open source identity provider, and taking the first steps in developing and offering an enterprise-level feature set for the Cloud or self-hosting. We are enthusiastic about our path forward and our plans to take authentik from a project to a product.
<!--truncate-->
## Company Updates
Authentik Security is now officially almost 6 months old. The energy and vitality of our community-based authentik project continues, and now with a growing staff we can keep the open source product expanding with new releases and also work on launching and growing the company. Mixed into that balance is defining our feature sets for each of our offerings, and developing new functionality for companies that want to deploy authentik at the enterprise level, either self-hosted or on the Cloud as a SaaS offering by Authentik Security.
We have a lot of exciting work in front of us. Check out our [job posts](https://goauthentik.io/jobs/) and consider joining us!
## New features for authentik
Authentik Security aims to always be open and transparent, and our trust in our communitys awesomeness means that we realize you all are experts in the field, the ones working in the security and identity management industry every day (and night!), so we look forward to strengthening our collaboration and communication with you, our user.
We have a roadmap with several new features, and we want to hear your opinions on them. You can write us directly at hello@goauthentik.io or open a [GitHub issue](https://github.com/goauthentik/authentik/issues). For more targeted conversations, we will reach out to schedule calls with users who want to provide more in-depth collaboration and feedback.
### Coming up
Roadmapped features include:
- **RBAC ~~tighter access control~~**
- Currently theres only the option of users to be superusers or regular users, and superusers can edit everything, including all authentic objects. This goes against the security principle of [least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege), and as such goes against our security-focused mantra. Role-based access control (RBAC) restricts CRUD rights on authentik objects based on a specific _role,_ providing even more fine-grained control.
- **UX improvements**
- Ease of use and clear, intuitive UIs is always one of our main goals, and were now focusing yet more on making the experience of using authentik even better. Less jumping around in the UI and more helpful context actions, suggestions, and recommendations.
- **Push-notification multifactor authentication** (Enterprise)
- authentik recognizes the important of MFA (Multifactor Authentication); in some cases, the old username/password combination alone is less-than-sufficient.
- **Desktop authentication** (Enterprise)
- robust cross-platform desktop authentication to secure access to all machines running in the environment.
- **AI-based risk assessment** (Enterprise)
- AI provides the ability to analyze massive amounts of data that are relevant to security and access, accelerating risk assessment.
### Were listening
As we grow the company and the feature sets, we are focused on building and maintaining a strong process for consistent communication and collaboration between our product team and our users. We want to hear what are the top features that you would like to see prioritized for our product and development teams. We look forward to conducting user interviews, requests for new features via GitHub Issues, and even surveys fueled by swag giveaways!
## Announcing the new Plans page
We are excited to announce that we will publish a new page on our product website, where we explain our product plans and the pricing for each offering. Its important to us that we get this right, so we will also implement a communication and input process to gather feedback on our pricing and all offering details.
One of the primary ways for us to hear your input will be right there on the new page. We have created a “waitlist” for each pricing plan, in order to gauge interest in the plans feature sets and to learn what feedback you have on the pricing in general. Please join the list and the conversation!
### About the plans
The following offerings are described in detail on the new page (coming soon!) in our website.
- Open Source
Our forever-free offering, the open source authentik project, has been active for over 5 years, and now has the support of Authentik Security. For self-hosted environments, works using all major authentication protocols (OAuth2/OpenID Connect, SAML, LDAP, and proxy authentication), with an advanced, customizable policy engine, and community support.
- Enterprise Self-hosted
Our Enterprise Self-hosted plan offers all of the features of open source authentic (and is still source-available), plus releases with long-term-support (LTS), an enterprise-level support plan, and additional features for larger organizations such as AI-based risk assessment and multifactor authentication (MFA) with push notification.
- Enterprise Cloud
The Enterprise Cloud plan provides the convenience of our enterprise-level product as a SaaS offering, hosted and managed by Authentik Security. For many organizations, the benefits of decreased operational costs and universal data access (no VPN, servers, and network configuration required) make SaaS the best choice. With the cloud offering, the same enterprise-level support plan is included, and migrating to self-hosted is always an option.
Take a look at the new [Plans page](https://goauthentik.io/pricing/), and if youre interested in the upcoming feature sets and learning more about our Cloud or self-hosted offerings, join the wait list and lets start talking about what your company needs.
Thanks for reading, and being part of authentik.

View File

@ -24,25 +24,26 @@ module.exports = {
{ to: "blog", label: "Blog", position: "left" },
{
to: "docs/",
activeBasePath: "docs",
label: "Documentation",
label: "Docs",
position: "left",
},
{
to: "integrations/",
activeBasePath: "integrations",
label: "Integrations",
position: "left",
},
{
to: "developer-docs/",
activeBasePath: "developer-docs",
label: "Developer",
position: "left",
},
{
to: "pricing/",
label: "Pricing",
position: "left",
},
{
to: "jobs/",
activeBasePath: "jobs",
label: "Jobs",
position: "left",
},

View File

@ -74,3 +74,8 @@
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
[dev]
command = "npm run watch"
targetPort = 3000
publish = "build"

View File

@ -0,0 +1,52 @@
import React, { useState } from "react";
interface CardProps {
title: string;
body: string;
}
const Card = ({ title, body }: CardProps): JSX.Element => {
const [isActive, setIsActive] = useState(false);
return (
<div>
<div
style={{
padding: "1rem",
marginBottom: "1rem",
marginTop: "1rem",
display: "flex",
flexDirection: "column",
cursor: "pointer",
}}
className="card"
onClick={() => setIsActive((state) => !state)}
>
<div
style={{
display: "flex",
flexDirection: "row",
}}
>
<div
style={{
marginLeft: "0.5rem",
}}
>
{title}
</div>
</div>
{isActive && (
<div
className="card__body"
dangerouslySetInnerHTML={{ __html: body }}
>
{}
</div>
)}
</div>
</div>
);
};
export default Card;

View File

@ -2,7 +2,6 @@ import React from "react";
import Layout from "@theme/Layout";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import { useColorMode } from "@docusaurus/theme-common";
import BrowserOnly from "@docusaurus/core/lib/client/exports/BrowserOnly";
import { useEffect } from "react";
function JobBoardWrapper() {

View File

@ -0,0 +1,62 @@
import React from "react";
import styles from "./waitlist.module.css";
import clsx from "clsx";
export function WaitListForm(props) {
return (
<section>
<div
className="container"
style={{ marginTop: "2rem", marginBottom: "4rem" }}
>
<h2 style={{ textAlign: "center" }}>Join the waitlist</h2>
<p style={{ textAlign: "center" }}>
Sign up to be notified once authentik Enterprise becomes
ready!
</p>
<div className={"row"}>
<div className={"col col--4 margin-vert--md"}></div>
<div className={"col col--4 margin-vert--md"}>
<form
name="enterprise-waitlist-v1"
method="post"
data-netlify="true"
netlify-honeypot="bot-field"
>
<p style={{ visibility: "hidden" }}>
<label>
Don't fill this out if you're human:{" "}
<input name="bot-field" />
</label>
</p>
<input
type="hidden"
name="form-name"
value="enterprise-waitlist-v1"
/>
<input
type="hidden"
name="product"
value={props.product}
/>
<input
type="email"
name="email"
className={clsx(styles.emailInput)}
placeholder="Your Email address"
/>
<button
className="button button--primary button--lg button--block"
type="submit"
>
Join
</button>
</form>
</div>
<div className={"col col--4 margin-vert--md"}></div>
</div>
</div>
</section>
);
}

View File

@ -0,0 +1,137 @@
import React from "react";
import Layout from "@theme/Layout";
import Link from "@docusaurus/Link";
import Card from "../../components/PricingQuestions/Card";
export default function pricingPage() {
return (
<Layout title="Pricing">
<section>
<div
className="container"
style={{ marginTop: "2rem", marginBottom: "4rem" }}
>
<h1 style={{ textAlign: "center" }}>Pricing</h1>
<p style={{ textAlign: "center" }}>
All variants include security patches for all supported
versions.
</p>
<div className={"row"}>
<div className={"col col--4 margin-vert--md"}>
<div className="card" style={{ height: "28rem" }}>
<div className="card__header">
<h3>Open Source</h3>
</div>
<div className="card__body">
<li>Open source</li>
<li>Self-hosted</li>
<li>Supports OAuth2/OpenID Connect</li>
<li>Supports SAML</li>
<li>Supports LDAP</li>
<li>Supports Proxy authentication</li>
<li>Advanced policy engine</li>
<li>Community support</li>
</div>
<div className="card__footer">
<h1>Free, forever</h1>
<Link
className="button button--primary button--block"
href={"/docs/"}
>
Get Started
</Link>
</div>
</div>
</div>
<div className={"col col--4 margin-vert--md"}>
<div className="card" style={{ height: "28rem" }}>
<div className="card__header">
<h3>Enterprise Self-Hosted</h3>
</div>
<div className="card__body">
<li>Self-hosted</li>
<li>Source-available</li>
<li>Long-term-support releases</li>
<li>Enterprise support plan (50 Users+)</li>
<li>Push-notification MFA (planned)</li>
<li>Desktop authentication (planned)</li>
<li>AI-based risk assessment (planned)</li>
</div>
<div className="card__footer">
<h1>
$5 <small>/user/month</small>
</h1>
<a
className="button button--info button--block"
href="./waitlist/enterprise"
>
Join waitlist
</a>
</div>
</div>
</div>
<div className={"col col--4 margin-vert--md"}>
<div className="card" style={{ height: "28rem" }}>
<div className="card__header">
<h3>Enterprise Cloud</h3>
</div>
<div className="card__body">
<li>Hosted and Managed by authentik</li>
<li>
Easily shift to self-hosted if needed
</li>
<li>Source-available</li>
<li>Long-term-support releases</li>
<li>Enterprise support plan (50 Users+)</li>
<li>Push-notification MFA (planned)</li>
<li>Desktop authentication (planned)</li>
<li>AI-based risk assessment (planned)</li>
</div>
<div className="card__footer">
<h4>Minimum 100 users</h4>
<h1>
$5 <small>/user/month</small>
</h1>
<a
className="button button--info button--block"
href="./waitlist/cloud"
>
Join waitlist
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<section>
<div className="container" style={{ marginBottom: "3rem" }}>
<div class="row">
<div className="col col--8 col--offset-2">
<p className="hero__subtitle margin--md">
Frequently Asked Questions
</p>
<div class="card-demo margin--md">
<Card
body="No. As part of our core principal, we will not move any features from the open source version to the enterprise version. Features from the enterprise version are periodically moved to the open source version."
title="Will any feature of the open-source version ever become enterprise?"
/>
<Card
body="We're always curious to hear what our customers are interested in and what they want to see in authentik, so if you have any questions about features send an email to <a href='mailto:hello@goauthentik.io'>hello@goauthentik.io</a>."
title="Are you planning to add X to authentik?"
/>
<Card
body="Anyone that wants to use the enterprise features listed above. There's no minimum user amount required for enterprise."
title="Who should use Enterprise plans?"
/>
</div>
</div>
</div>
</div>
</section>
</Layout>
);
}

View File

@ -0,0 +1,6 @@
.emailInput {
width: 100%;
line-height: 2rem;
margin-bottom: 2rem;
padding: 0.5rem 1rem;
}

View File

@ -0,0 +1,11 @@
import React from "react";
import { WaitListForm } from "../_waitlist.jsx";
import Layout from "@theme/Layout";
export default function waitlistCloud() {
return (
<Layout title="Waitlist">
<WaitListForm product="cloud"></WaitListForm>
</Layout>
);
}

View File

@ -0,0 +1,11 @@
import React from "react";
import { WaitListForm } from "../_waitlist.jsx";
import Layout from "@theme/Layout";
export default function waitListEnterprise() {
return (
<Layout title="Waitlist">
<WaitListForm product="enterprise"></WaitListForm>
</Layout>
);
}