Thicker animation strokes; clarify blogpost (#1800)

This commit is contained in:
Jamil
2023-07-18 15:31:00 -07:00
committed by GitHub
parent 9a06a9bb14
commit eba9081ca7
14 changed files with 164 additions and 162 deletions

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -33,14 +33,13 @@ started building what became the first version of Firezone.
When we [launched on Hacker News](https://news.ycombinator.com/item?id=28683231)
nearly two years ago, we never envisioned Firezone to be more than a simple tool
deploying your own WireGuard-based VPN server.
for deploying your own WireGuard-based VPN server.
Fast-forward
[4,500 GitHub stars](https://github.com/firezone/firezone/stargazers), a
[Y Combinator backed funding round](https://techcrunch.com/2022/03/30/ycombinator-open-source-startups-winter-22-demo-day/),
and [130 releases](https://github.com/firezone/firezone/releases) later --
Firezone has now grown into something more than just a self-hosted tool to
manage your WireGuard configurations.
Firezone has now grown into something more.
We now count over <strong>3,000</strong> Firezone instances running in the wild
(possibly much more -- we allow users to
@@ -57,13 +56,13 @@ hobbyists, schools, non-profits, and businesses with hundreds of employees.
To be clear, Firezone is successful in large part because WireGuard itself is
successful. In an industry brimming with enterprise security bloatware and
endless acronyms, WireGuard's a breath of fresh air. Every issue I've thought I
had with it turned out to be user error. How we ever got by without it is a
mystery to me.
acronyms galore, WireGuard's a breath of fresh air. It's almost boring how well
it works. I suppose I could go on and on about WireGuard's strengths, but I
won't. After all, this post is supposed to be about Firezone 1.0.
But I could go on and on about WireGuard's strengths. Let's back up for a minute
-- what is a VPN, and why is one needed at all? To answer that we'll need to go
back to the formation of the Internet itself.
So let's back up -- what is a VPN anyway, and why is one needed at all? To
answer that we'll need to go back in time to the formation of the early
Internet.
#### The purpose of a VPN
@@ -73,11 +72,11 @@ universities, and other large institutions could justify the cost.
So when you connected your organization to the Internet and began receiving
packets, it was clear which entity it was from based on its allocated IPv4
address range. Since there were so few entities connected, it was clear who you
communicated with. It was clear who to contact (and blame) in case any issues
arose.
address range. Since there were so few entities connected, you could easily know
who you were communicating with, and who to contact (and blame) in case any
issues arose.
But, as access to the Internet became cheaper, more types of entities could
But as access to the Internet became cheaper, more types of entities could
afford to connect. As more entities connected, the number of resources on the
Internet grew, and its
[value increased quadratically](https://en.wikipedia.org/wiki/Metcalfe%27s_law).
@@ -102,21 +101,22 @@ do.
/>
</object>
And this worked well for some time. However, as the Internet grew even larger, a
problem arose: firewalls required you to know _in advance_ who you'd like to
communicate with, adding them to your configuration, and likewise removing the
ones you didn't. As you might imagine, it quickly became unwieldy to keep these
configurations up to date.
And this worked well for some time. However, the Internet grew even larger (as
networks tend to do). And then a problem arose: firewalls required you to know
_in advance_ who you'd like to communicate with, adding them to your
configuration, and likewise removing the ones you didn't. As you might imagine,
it quickly became unwieldy to keep these configurations up to date.
So a clever solution was developed: what if you could dynamically add and remove
entities to the firewall configuration on the fly?
entities to the firewall configuration, on the fly?
And thus, stateful firewalls were born. I should pause here and clarify that
And thus stateful firewalls were born. I should pause here and clarify that
stateful firewalls are sometimes confused with
[Network Address Translation (NAT)](https://en.wikipedia.org/wiki/Network_address_translation),
since they're often found on the same device. But there's an important
distinction: A stateful firewall _remembers_ stuff it's seen in order to to
update its configuration dynamically, whereas NAT can behave statically.
update its configuration dynamically, whereas a NAT device is primarily
concerned with static operation.
Stateful firewalls exist in nearly every consumer router and datacenter gateway
connected to the Internet today. There's a very high likelihood the Internet
@@ -133,7 +133,7 @@ been largely successful at serving their intended purpose.
/>
</object>
However, this post wouldn't be very interesting if we stopped there.
But this post wouldn't be very interesting if we stopped there.
You see, there's still one fundamental problem with stateful firewalls,
particularly as it relates to remote access. For two-way communication to occur,
@@ -177,7 +177,7 @@ Then how does an entity come to be trusted? We still authenticate them as usual,
but there's a key difference: with ZTA, we authenticate entities each time the
communication is requested, on the fly. Not once at the perimeter. And since the
perimeter is gone, the protected entity itself (or a proxy) authenticates the
untrusted entity. But wait, what happened to the firewall?
untrusted entity. But wait, hold on a minute -- what happened to the firewall?
This presents a dilemma. If we use a firewall to protect entities, they're
shielded outside the perimeter, but left unprotected inside the perimeter. And
@@ -214,24 +214,27 @@ works as follows:
So we're able to both authenticate the untrusted entity at the time of request,
yet also keep our protected entity behind a firewall to keep it invisible to the
public Internet. In fact, _both_ entities can live behind a stateful firewall
and the technique would still work -- the principles are the same.
and this technique would still work -- the principles are the same.
As it turns out, this approach is nothing new. It's how web browsers and VoIP
systems have established peer to peer connections for low-latency audio and
video chat for decades.
As it turns out, this approach is
[nothing new](https://bford.info/pub/net/p2pnat/). It's how web browsers and
VoIP systems have established peer to peer connections for low-latency audio and
video chat [for over a decade](https://en.wikipedia.org/wiki/WebRTC).
Firezone 1.0 makes this process transparent, but also goes one step further by
exposing granular controls to allow or deny access based on attributes like
which group a user is a member of and so on.
Firezone 1.0 not only makes this process seamless for connectivity, but also
goes one step further by exposing granular controls to allow or deny access
based on attributes like which group a user is a member of and so on.
Of course if you wanted to use Firezone 1.0 like a traditional perimeter-based
VPN and then transition to finer-grined access controls over time, you can do
that as well. We understand the realities of legacy processes and systems, so we
designed 1.0 to be flexible enough to suit the needs of both.
And while we were at it, we decided to build a slew of new features for 1.0 as
well, most notably a cloud-managed admin portal and native clients. Check our
[product roadmap](/product/roadmap) for more details on what's coming in 1.0.
While we were at it, we decided to build a slew of new features for 1.0 in
addition to the architecture improvements laid out in this post. Most notably, a
cloud-managed admin portal, native clients, and high availability support. But
there's much more. Check our [product roadmap](/product/roadmap) for more
details on what's coming in 1.0.
#### Next steps

View File

@@ -22,16 +22,16 @@ export default function Page() {
return (
<>
<section className="bg-gradient-to-b from-primary-50 to-neutral-100 pt-24">
<div className="px-4 py-8 mx-auto max-w-screen-xl sm:text-center lg:py-16 lg:px-12">
<div className="px-4 py-8 mx-auto max-w-screen-xl text-center lg:py-16 lg:px-12">
<h1 className="mb-4 md:text-6xl text-5xl justify-center font-extrabold tracking-tight leading-none text-neutral-900">
Fast, effortless secure access.
</h1>
<h2 className="mb-8 text-xl tracking-tight font-medium text-neutral-900 sm:px-16 xl:px-48 ">
<h2 className="mb-8 text-xl tracking-tight text-neutral-800 sm:px-16 xl:px-48">
Firezone is an open-source remote access platform built on
WireGuard®, a modern VPN protocol that's 4-6x faster than OpenVPN.
Deploy on your infrastructure and start onboarding users in minutes.
</h2>
<div className="flex flex-col mb-8 lg:mb-16 space-y-4 sm:flex-row sm:justify-center sm:space-y-0 sm:space-x-4">
<div className="flex mb-8 lg:mb-16 flex-row justify-center space-y-0 space-x-4">
<Link href="/docs/deploy">
<button
type="button"
@@ -106,7 +106,7 @@ export default function Page() {
{/* Features sections */}
<section className="border-t border-neutral-200 bg-gradient-to-b from-white via-neutral-50 to-white py-24">
<div className="mx-4 flex flex-col justify-center items-center">
<h2 className="justify-center mb-4 text-4xl tracking-tight font-bold text-neutral-900 ">
<h2 className="text-center justify-center mb-4 text-4xl tracking-tight font-bold text-neutral-900 ">
A modern alternative to legacy VPNs
</h2>
</div>
@@ -129,20 +129,20 @@ export default function Page() {
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Integrate any identity provider to enforce 2FA / MFA
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Define user-scoped access rules
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Manage access with a snappy admin dashboard
</span>
</li>
@@ -188,8 +188,8 @@ export default function Page() {
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
<Link
className="text-accent-600 hover:underline"
href="https://www.wireguard.com/protocol/"
@@ -199,8 +199,8 @@ export default function Page() {
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Auditable and{" "}
<Link
className="text-accent-600 hover:underline"
@@ -211,8 +211,8 @@ export default function Page() {
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
<Link
className="text-accent-600 hover:underline"
href="https://www.wireguard.com/performance/"
@@ -242,20 +242,20 @@ export default function Page() {
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
VPC, data center, or on-prem
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Auto-renewing SSL certs from Let's Encrypt via ACME
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Flexible and configurable
</span>
</li>
@@ -279,15 +279,15 @@ export default function Page() {
<section className="border-t border-neutral-200 bg-gradient-to-b from-neutral-100 to-primary-50 py-24">
<div className="mx-4 flex flex-col justify-center items-center">
<h2 className="mb-4 text-4xl tracking-tight font-bold text-neutral-900 ">
<h2 className="mb-4 text-4xl justify-center text-center tracking-tight font-bold text-neutral-900 ">
Integrate your identity provider to enforce 2FA / MFA
</h2>
<p className="my-4 text-xl max-w-screen-lg text-center text-primary-900 ">
<h3 className="my-4 text-xl tracking-tight max-w-screen-lg text-center text-neutral-800 ">
Only allow connections from authenticated users and automatically
disable access for employees who have left. Firezone integrates with
any OIDC and SAML 2.0 compatible identity provider for single
sign-on (SSO).
</p>
</h3>
</div>
<div className="mx-auto gap-8 max-w-screen-xl grid justify-items-center sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6 px-16 pt-8">
<Link href="/docs/authenticate/oidc/keycloak/">
@@ -343,51 +343,51 @@ export default function Page() {
<section className="border-t border-neutral-200 py-24 bg-white">
<div className="mx-4 flex flex-col justify-center items-center">
<h2 className="mb-4 text-4xl tracking-tight font-bold text-neutral-900 ">
<h2 className="mb-4 justify-center text-center text-4xl tracking-tight font-bold text-neutral-900 ">
Who can benefit using Firezone?
</h2>
<p className="my-4 text-xl max-w-screen-lg sm:text-center text-primary-900 ">
<h3 className="my-4 text-xl tracking-tight max-w-screen-lg text-center text-neutral-800 ">
Easy to deploy and manage for individuals and organizations alike.
Only allow connections from authenticated users and automatically
disable access for employees who have left. Firezone integrates with
any OIDC and SAML 2.0 compatible identity provider for single
sign-on (SSO).
</p>
</h3>
</div>
<div className="gap-4 items-center pt-8 px-4 mx-auto max-w-screen-xl lg:grid lg:grid-cols-2 xl:gap-8 sm:pt-16 lg:px-6 ">
<div className="bg-neutral-100 p-8 rounded-md shadow-md">
<div className="flex items-center space-x-2.5">
<HiHome className="flex-shrink-0 w-5 h-5 text-primary-450" />
<h3 className="text-xl tracking-tight font-bold text-primary-900 ">
<h3 className="text-xl tracking-tight font-bold text-neutral-900 ">
Individuals and homelab users
</h3>
</div>
<p className="mt-8 text-primary-900 text-xl">
<p className="mt-8 text-neutral-900 text-xl">
Lightweight and fast. Access your home network securely when on
the road.
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Effortless to deploy on any infrastructure
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Community plan supports unlimited devices
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Lightweight with minimal resource usage
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Open-source and self-hosted
</span>
</li>
@@ -402,36 +402,36 @@ export default function Page() {
<div className="bg-neutral-100 p-8 rounded-md shadow-md">
<div className="flex items-center space-x-2.5">
<HiRocketLaunch className="flex-shrink-0 w-5 h-5 text-primary-450" />
<h3 className="text-xl tracking-tight font-bold text-primary-900 ">
<h3 className="text-xl tracking-tight font-bold text-neutral-900 ">
Growing businesses
</h3>
</div>
<p className="mt-8 text-primary-900 text-xl">
<p className="mt-8 text-neutral-900 text-xl">
Keep up with increasing network and compliance demands as you
scale your team and infrastructure.
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Integrate your identity provider
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Quickly onboard/offboard employees{" "}
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Segment access for contractors
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
High performance, reduce bottlenecks
</span>
</li>
@@ -446,36 +446,36 @@ export default function Page() {
<div className="bg-neutral-100 p-8 rounded-md shadow-md">
<div className="flex items-center space-x-2.5">
<HiGlobeAlt className=" lex-shrink-0 w-5 h-5 text-primary-450" />
<h3 className="text-xl tracking-tight font-bold text-primary-900 ">
<h3 className="text-xl tracking-tight font-bold text-neutral-900 ">
Remote organizations
</h3>
</div>
<p className="mt-8 text-primary-900 text-xl">
<p className="mt-8 text-neutral-900 text-xl">
Transitioning to remote? Perfect timing to replace the legacy VPN.
Improve your security posture and reduce support tickets.
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Require periodic re-authentication
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Enforce MFA / 2FA
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Self-serve user portal
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Export logs to your observability platform
</span>
</li>
@@ -490,36 +490,36 @@ export default function Page() {
<div className="bg-neutral-100 p-8 rounded-md shadow-md">
<div className="flex items-center space-x-2.5">
<HiWrenchScrewdriver className=" lex-shrink-0 w-5 h-5 text-primary-450" />
<h3 className="text-xl tracking-tight font-bold text-primary-900 ">
<h3 className="text-xl tracking-tight font-bold text-neutral-900 ">
Technical IT teams
</h3>
</div>
<p className="mt-8 text-primary-900 text-xl">
<p className="mt-8 text-neutral-900 text-xl">
Firezone runs on your infrastructure. Customize it to suit your
needs and architecture.
</p>
<ul role="list" className="my-6 lg:mb-0 space-y-4">
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Built on WireGuard®
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
No vendor lock-in
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Supports OIDC and SAML 2.0
</span>
</li>
<li className="flex space-x-2.5">
<HiCheck className="flex-shrink-0 w-5 h-5 text-primary-900 font-bold " />
<span className="leading-tight text-lg text-primary-900 ">
<HiCheck className="flex-shrink-0 w-5 h-5 text-neutral-900 font-bold " />
<span className="leading-tight text-lg text-neutral-900 ">
Flexible and configurable
</span>
</li>
@@ -537,15 +537,14 @@ export default function Page() {
<JoinOurCommunity />
<section className="border-t border-neutral-200 py-24 bg-gradient-to-b from-accent-800 to-accent-700">
<div className="flex flex-col justify-center items-center">
<h2 className="mb-4 text-4xl tracking-tight font-bold text-neutral-50 ">
<div className="flex flex-col px-4 justify-center items-center">
<h2 className="mb-4 text-4xl tracking-tight text-center font-bold text-neutral-50">
Ready to get started?
</h2>
<p className="my-4 font-semibold text-xl max-w-screen-md text-center text-neutral-200 ">
Set up secure access and start onboarding users in minutes.
<br />
Copy and paste the command below on any Docker-supported host.
</p>
<h3 className="my-4 font-medium text-xl max-w-screen-md tracking-tight text-center text-neutral-200 ">
Set up secure access and start onboarding users in minutes. Copy and
paste the command below on any Docker-supported host.
</h3>
<div className="mt-8">
<CodeBlock
language="bash"

View File

@@ -21,7 +21,7 @@ export default function EarlyAccess() {
<h1 className="mb-4 text-4xl sm:text-5xl justify-center lg:justify-end font-extrabold tracking-tight text-neutral-900 xl:text-6xl">
Request early access
</h1>
<h2 className="flex flex-wrap mb-4 text-lg tracking-tight text-neutral-900 sm:text-xl justify-center lg:justify-end">
<h2 className="flex flex-wrap mb-4 text-lg tracking-tight text-neutral-800 sm:text-xl justify-center lg:justify-end">
<strong className="mr-1">Firezone 1.0 is coming!</strong>
<span className="font-medium">
Sign up below to get early access.

View File

@@ -5,13 +5,13 @@ export default function Page() {
<div className="bg-neutral-100 ">
<div className="py-8 px-4 mx-auto max-w-screen-xl lg:py-16 lg:px-6">
<div className="mx-auto max-w-screen-md sm:text-center">
<h1 className="justify-center mb-4 text-2xl font-extrabold tracking-tight text-neutral-900 sm:text-6xl">
<h1 className="justify-center mb-4 text-5xl font-extrabold text-center leading-none tracking-tight text-neutral-900 sm:text-6xl">
Firezone Newsletter
</h1>
<p className="mx-auto mb-8 max-w-2xl text-neutral-900 md:mb-12 text-lg sm:text-xl">
<h2 className="mx-auto mb-8 max-w-2xl tracking-tight text-center text-neutral-800 md:mb-12 text-xl">
Sign up with your email to receive roadmap updates, how-to guides,
and product announcements from the Firezone team.
</p>
</h2>
</div>
<NewsletterSignup />
</div>

View File

@@ -106,10 +106,10 @@ export default function Page() {
<div className="bg-neutral-100">
<div className="py-8 px-4 mx-auto max-w-screen-xl lg:py-16 lg:px-6">
<div className="mx-auto max-w-screen-md">
<h1 className="sm:justify-center mb-4 text-2xl font-extrabold tracking-tight text-neutral-900 sm:text-6xl ">
<h1 className="mb-4 md:mb-12 justify-center text-center text-5xl sm:text-6xl font-extrabold tracking-tight leading-none text-neutral-900">
Product Roadmap
</h1>
<h2 className="mx-auto sm:text-center mb-8 max-w-2xl tracking-tight font-medium text-neutral-900 md:mb-12 sm:text-xl ">
<h2 className="mx-auto text-xl text-center mb-8 md:mb-12 max-w-2xl tracking-tight text-neutral-800">
Take a peek below to learn what we're working on and how you can get
involved.
</h2>

View File

@@ -125,15 +125,14 @@ export default function Page() {
<section className="bg-neutral-100 ">
<div className="py-8 px-4 mx-auto max-w-screen-lg text-center lg:py-16 lg:px-6">
<div className="text-neutral-800 sm:text-lg ">
<h1 className="mb-14 justify-center text-6xl tracking-tight font-extrabold text-neutral-900 ">
<h1 className="mb-14 justify-center md:text-6xl text-5xl tracking-tight font-extrabold text-neutral-900 leading-none">
People are everything.
</h1>
<p className="mb-4 sm:text-2xl">
Here at Firezone we know that it's people who make all the
difference.
<br /> We strive to hire the best and brightest and give them the
tools they need to succeed.
</p>
<h2 className="mb-8 text-xl tracking-tight text-neutral-800 sm:px-16 xl:px-48">
We know that it's people who make all the difference. We strive to
hire the best and brightest and give them the tools they need to
succeed.
</h2>
</div>
<div className="text-neutral-800 sm:text-lg ">
<h3 className="justify-center pb-4 pt-14 text-2xl tracking-tight font-bold text-neutral-900 border-b border-neutral-300">

View File

@@ -28,7 +28,7 @@ export default function SummaryCard({
</span>
<span className="text-sm font-semibold">{date}</span>
</div>
<h2 className="mb-2 text-2xl font-bold tracking-tight text-neutral-900 ">
<h2 className="mb-2 text-2xl font-bold tracking-tight text-neutral-800 ">
{title}
</h2>
<div className="mb-5 font-medium text-neutral-800 ">{children}</div>

View File

@@ -11,7 +11,7 @@ export default function EarlyAccessForm() {
<h3 className="mb-4 lg:text-2xl md:text-xl font-bold tracking-tight text-neutral-900 text-lg ">
Why sign up for early access?
</h3>
<ul className="md:text-xl mb-6 list-inside list-disc space-y-2">
<ul className="md:text-lg mb-6 list-inside list-disc space-y-2">
<li>Be among the first to try Firezone 1.0</li>
<li>Accelerate the roadmap with prioritized feedback</li>
<li>Dedicated Slack channel for onboarding and support</li>
@@ -20,22 +20,23 @@ export default function EarlyAccessForm() {
<h3 className="mb-4 lg:text-2xl md:text-xl font-bold tracking-tight text-neutral-900 text-lg ">
What's new in 1.0?
</h3>
<ul className="md:text-xl mb-6 list-inside list-disc space-y-2">
<p className="md:text-lg mb-6">
Quite a lot, as it turns out! Here are some of the highlights:
</p>
<ul className="md:text-lg mb-6 list-inside list-disc space-y-2">
<li>Native clients for most major platforms</li>
<li>A new, snappy SaaS-delivered admin portal</li>
<li>STUN peer discovery with firewall holepunching</li>
<li>Group-based access policies built on zero trust principles</li>
<li>Automated user provisioning for supported IdPs</li>
<li>Split DNS with configurable upstream provider</li>
<li>Split DNS with configurable upstreams</li>
<li>All-new REST API</li>
{/*
<li>Automatic failover, load balancing</li>
*/}
</ul>
<h3 className="mb-4 lg:text-2xl md:text-xl font-bold tracking-tight text-neutral-900 text-lg ">
How much will it cost?
</h3>
<p className="md:text-xl mb-6">
<p className="md:text-lg mb-6">
We're still working out pricing details for the 1.0 release and will
launch an updated pricing page when we have more to share. Our goal is
to price Firezone competitively among other products in the space with

View File

@@ -8,10 +8,10 @@ export default function JoinOurCommunity() {
<h2 className="mb-4 text-4xl tracking-tight font-bold text-neutral-900 ">
Join our community
</h2>
<p className="mx-2 my-4 text-xl max-w-screen-lg text-center text-primary-900 ">
<h3 className="mx-2 my-4 text-xl max-w-screen-lg text-center text-neutral-800 tracking-tight">
Participate in Firezone's development, suggest new features, and
collaborate with other Firezone users.
</p>
</h3>
</div>
<div className="gap-4 items-center pt-4 px-4 mx-auto max-w-screen-lg lg:grid lg:grid-cols-3 xl:gap-8 sm:pt-8 lg:px-6 ">
<div className="py-8 rounded-md shadow-md text-center bg-white">

View File

@@ -32,20 +32,20 @@ export default function RootLayout({
<div className="min-h-screen h-auto antialiased">
<RootNavbar />
<Banner active>
<p className="text-md font-medium tracking-tight text-center w-full text-neutral-50 ">
Announcing Firezone 1.0: cloud, clients, and{" "}
<p className="text-md font-medium tracking-tight text-center w-full text-neutral-50">
Announcing{" "}
<Link
href="/blog/firezone-1-0"
className="underline text-accent-500 hover:no-underline"
>
more
Firezone 1.0
</Link>
. Request{" "}
: cloud, clients, and more.{" "}
<Link
href="/product/early-access"
className="group text-accent-500 items-center inline-flex underline hover:no-underline"
>
early access
Request early access
<HiArrowLongRight className="group-hover:translate-x-0.5 group-hover:scale-105 duration-100 transform transition ml-1 w-5 h-5" />
</Link>
</p>

View File

@@ -3,11 +3,11 @@ import HubspotForm from "@/components/HubspotForm";
export default function SalesLeadForm() {
return (
<div className="py-8 px-4 mx-auto max-w-screen-xl lg:py-16 lg:px-6">
<div className="mx-auto max-w-screen-md sm:text-center">
<h1 className="justify-center mb-4 text-2xl font-extrabold tracking-tight text-neutral-900 sm:text-6xl ">
<div className="mx-auto max-w-screen-md text-center">
<h1 className="justify-center mb-8 md:mb-12 text-5xl font-extrabold tracking-tight text-neutral-900 sm:text-6xl ">
Talk to a Firezone expert.
</h1>
<h2 className="mx-auto mb-8 max-w-2xl tracking-tight font-medium text-neutral-900 md:mb-12 sm:text-xl ">
<h2 className="mx-auto mb-8 max-w-2xl tracking-tight text-neutral-800 md:mb-12 text-xl">
Ready to manage secure remote access for your organization? Learn how
Firezone can help.
</h2>