From 35d2e9cd5f7d99ae89f859826134eae4276f5d1d Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 23 Mar 2023 21:34:34 +0100 Subject: [PATCH] website: add pricing waitlist and blog post (#5058) * pricing Signed-off-by: Jens Langhammer * update Signed-off-by: Jens Langhammer * website: add pricing waitlist and blog post Signed-off-by: Jens Langhammer * Apply suggestions from code review Co-authored-by: Tana M Berry Signed-off-by: Jens L. * fix lint Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Signed-off-by: Jens L. Co-authored-by: Tana M Berry --- .../item.md} | 0 .../item.md} | 0 .../item.md | 76 ++++++++++ website/docusaurus.config.js | 11 +- website/netlify.toml | 5 + .../src/components/PricingQuestions/Card.tsx | 52 +++++++ website/src/pages/jobs.jsx | 1 - website/src/pages/pricing/_waitlist.jsx | 62 ++++++++ website/src/pages/pricing/index.jsx | 137 ++++++++++++++++++ website/src/pages/pricing/waitlist.module.css | 6 + website/src/pages/pricing/waitlist/cloud.jsx | 11 ++ .../src/pages/pricing/waitlist/enterprise.jsx | 11 ++ 12 files changed, 366 insertions(+), 6 deletions(-) rename website/blog/{2022-11-02-the-next-step-for-authentik.md => 2022-11-02-the-next-step-for-authentik/item.md} (100%) rename website/blog/{2023-02-07-cloudflare-is-destroying-the-open-internet.md => 2023-02-07-cloudflare-is-destroying-the-open-internet/item.md} (100%) create mode 100644 website/blog/2023-03-23-whats-new-with-authentik-march-2023/item.md create mode 100644 website/src/components/PricingQuestions/Card.tsx create mode 100644 website/src/pages/pricing/_waitlist.jsx create mode 100644 website/src/pages/pricing/index.jsx create mode 100644 website/src/pages/pricing/waitlist.module.css create mode 100644 website/src/pages/pricing/waitlist/cloud.jsx create mode 100644 website/src/pages/pricing/waitlist/enterprise.jsx diff --git a/website/blog/2022-11-02-the-next-step-for-authentik.md b/website/blog/2022-11-02-the-next-step-for-authentik/item.md similarity index 100% rename from website/blog/2022-11-02-the-next-step-for-authentik.md rename to website/blog/2022-11-02-the-next-step-for-authentik/item.md diff --git a/website/blog/2023-02-07-cloudflare-is-destroying-the-open-internet.md b/website/blog/2023-02-07-cloudflare-is-destroying-the-open-internet/item.md similarity index 100% rename from website/blog/2023-02-07-cloudflare-is-destroying-the-open-internet.md rename to website/blog/2023-02-07-cloudflare-is-destroying-the-open-internet/item.md diff --git a/website/blog/2023-03-23-whats-new-with-authentik-march-2023/item.md b/website/blog/2023-03-23-whats-new-with-authentik-march-2023/item.md new file mode 100644 index 000000000..6f6836fb9 --- /dev/null +++ b/website/blog/2023-03-23-whats-new-with-authentik-march-2023/item.md @@ -0,0 +1,76 @@ +--- +title: What’s 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, we’d 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. + + + +## 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 community’s 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 there’s 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 we’re 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. + +### We’re 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. It’s 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 you’re interested in the upcoming feature sets and learning more about our Cloud or self-hosted offerings, join the wait list and let’s start talking about what your company needs. + +Thanks for reading, and being part of authentik. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 426ebc442..a9ef08f48 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -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", }, diff --git a/website/netlify.toml b/website/netlify.toml index 52ceb1d1a..89a39d39c 100644 --- a/website/netlify.toml +++ b/website/netlify.toml @@ -74,3 +74,8 @@ for = "/*" [headers.values] X-Frame-Options = "DENY" + +[dev] + command = "npm run watch" + targetPort = 3000 + publish = "build" diff --git a/website/src/components/PricingQuestions/Card.tsx b/website/src/components/PricingQuestions/Card.tsx new file mode 100644 index 000000000..79511daa5 --- /dev/null +++ b/website/src/components/PricingQuestions/Card.tsx @@ -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 ( +
+
setIsActive((state) => !state)} + > +
+
+ {title} +
+
+ {isActive && ( +
+ {} +
+ )} +
+
+ ); +}; + +export default Card; diff --git a/website/src/pages/jobs.jsx b/website/src/pages/jobs.jsx index 43ce59500..1f4138f1e 100644 --- a/website/src/pages/jobs.jsx +++ b/website/src/pages/jobs.jsx @@ -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() { diff --git a/website/src/pages/pricing/_waitlist.jsx b/website/src/pages/pricing/_waitlist.jsx new file mode 100644 index 000000000..2aa949ec7 --- /dev/null +++ b/website/src/pages/pricing/_waitlist.jsx @@ -0,0 +1,62 @@ +import React from "react"; +import styles from "./waitlist.module.css"; +import clsx from "clsx"; + +export function WaitListForm(props) { + return ( +
+
+

Join the waitlist

+

+ Sign up to be notified once authentik Enterprise becomes + ready! +

+ +
+
+
+
+

+ +

+ + + + +
+
+
+
+
+
+ ); +} diff --git a/website/src/pages/pricing/index.jsx b/website/src/pages/pricing/index.jsx new file mode 100644 index 000000000..28662366b --- /dev/null +++ b/website/src/pages/pricing/index.jsx @@ -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 ( + +
+
+

Pricing

+

+ All variants include security patches for all supported + versions. +

+ +
+
+
+
+

Open Source

+
+
+
  • Open source
  • +
  • Self-hosted
  • +
  • Supports OAuth2/OpenID Connect
  • +
  • Supports SAML
  • +
  • Supports LDAP
  • +
  • Supports Proxy authentication
  • +
  • Advanced policy engine
  • +
  • Community support
  • +
    +
    +

    Free, forever

    + + Get Started + +
    +
    +
    +
    +
    +
    +

    Enterprise Self-Hosted

    +
    +
    +
  • Self-hosted
  • +
  • Source-available
  • +
  • Long-term-support releases
  • +
  • Enterprise support plan (50 Users+)
  • +
  • Push-notification MFA (planned)
  • +
  • Desktop authentication (planned)
  • +
  • AI-based risk assessment (planned)
  • +
    +
    +

    + $5 /user/month +

    + + Join waitlist + +
    +
    +
    + +
    +
    +
    +

    Enterprise Cloud

    +
    +
    +
  • Hosted and Managed by authentik
  • +
  • + Easily shift to self-hosted if needed +
  • +
  • Source-available
  • +
  • Long-term-support releases
  • +
  • Enterprise support plan (50 Users+)
  • +
  • Push-notification MFA (planned)
  • +
  • Desktop authentication (planned)
  • +
  • AI-based risk assessment (planned)
  • +
    +
    +

    Minimum 100 users

    +

    + $5 /user/month +

    + + Join waitlist + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    + Frequently Asked Questions +

    +
    + + + +
    +
    +
    +
    +
    +
    + ); +} diff --git a/website/src/pages/pricing/waitlist.module.css b/website/src/pages/pricing/waitlist.module.css new file mode 100644 index 000000000..7bfd4a877 --- /dev/null +++ b/website/src/pages/pricing/waitlist.module.css @@ -0,0 +1,6 @@ +.emailInput { + width: 100%; + line-height: 2rem; + margin-bottom: 2rem; + padding: 0.5rem 1rem; +} diff --git a/website/src/pages/pricing/waitlist/cloud.jsx b/website/src/pages/pricing/waitlist/cloud.jsx new file mode 100644 index 000000000..46f25a202 --- /dev/null +++ b/website/src/pages/pricing/waitlist/cloud.jsx @@ -0,0 +1,11 @@ +import React from "react"; +import { WaitListForm } from "../_waitlist.jsx"; +import Layout from "@theme/Layout"; + +export default function waitlistCloud() { + return ( + + + + ); +} diff --git a/website/src/pages/pricing/waitlist/enterprise.jsx b/website/src/pages/pricing/waitlist/enterprise.jsx new file mode 100644 index 000000000..b155a1b3c --- /dev/null +++ b/website/src/pages/pricing/waitlist/enterprise.jsx @@ -0,0 +1,11 @@ +import React from "react"; +import { WaitListForm } from "../_waitlist.jsx"; +import Layout from "@theme/Layout"; + +export default function waitListEnterprise() { + return ( + + + + ); +}