Continue work on marketing pages

This commit is contained in:
Matthew Holt 2023-10-02 17:11:59 -06:00 committed by Francis Lavoie
parent 8d5010d0a6
commit 7c33410871
No known key found for this signature in database
GPG key ID: 0F66EE1687682239
8 changed files with 887 additions and 624 deletions

24
new/download.html Normal file
View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<title>Download Caddy</title>
{{include "/includes/head.html"}}
<link rel="stylesheet" href="/resources/css/download.css">
</head>
<body>
<div class="hero">
{{include "/includes/header.html" "light-header"}}
<main>
<div class="wrapper">
Hello, world!
</div>
</main>
{{include "/includes/footer.html"}}
</body>
</html>

View file

@ -22,217 +22,428 @@
</div> </div>
</div> </div>
<section class="diagonal up feature"> <main>
<div class="wrapper">
<h2>
Overview
</h2>
<p>
Caddy is essentially a configuration management system that can run various apps like an HTTP server, TLS certificate manager, PKI facilities, and more. It can be extended with plugins known as config modules.
</p>
<p>
Caddy sports a flexible and powerful HTTP reverse proxy, on-line configuration API, and a robust, production-ready static file server, and serves all sites over HTTPS by default with automagic TLS certificates.
</p>
<h3 class="green">Overall program technical specifications</h3> <section class="diagonal up feature">
<div class="wrapper">
<div class="legend">
Features in <span class="nonstandard">this color</span> are provided by available plugins.
</div>
<div class="feature-list"> <h2>
<div class="feature-row"> Overview
<h4>Language</h4> </h2>
<div class="benefits"> <p>
The language choice is crucial for a web server. Most servers (NGINX, Apache, HAProxy, etc.) and their dependencies are written in C, which are vulnerable to catastrophic memory safety bugs like Heartbleed. Go programs like Caddy are impervious to a whole class of security vulnerabilities. Caddy is essentially a configuration management system that can run various apps like an HTTP server, TLS certificate manager, PKI facilities, and more. It can be extended with plugins known as config modules.
</p>
<p>
Caddy sports a flexible and powerful HTTP reverse proxy, on-line configuration API, and a robust, production-ready static file server, and serves all sites over HTTPS by default with automagic TLS certificates.
</p>
<h3 class="green">Overall program technical specifications</h3>
<div class="feature-list">
<div class="feature-row">
<h4>Language</h4>
<div class="benefits">
The language choice is crucial for a web server. Most servers (NGINX, Apache, HAProxy, etc.) and their dependencies are written in C, which are vulnerable to catastrophic memory safety bugs like Heartbleed. Go programs like Caddy are impervious to a whole class of security vulnerabilities.
</div>
<div class="detail">
Go
</div>
</div> </div>
<div class="detail"> <div class="feature-row">
Go <h4>Build artifacts</h4>
<div class="benefits">
Caddy compiles directly to native CPU instructions. There is no interpreter required; and many instructions are architecture-optimized.
</div>
<div class="detail">
Platform-native static binary
</div>
</div>
<div class="feature-row">
<h4>Runtime dependencies</h4>
<div class="benefits">
Caddy is statically compiled. Dynamically-linked applications can easily break in production and may be less secure as shared executable resources are loaded from various places around the system. Generally, Caddy binaries do not necessarily require external libraries &mdash; not even libc.
</div>
<div class="detail">
None
</div>
</div>
<div class="feature-row">
<h4>Compile time</h4>
<div class="benefits">
On consumer hardware, standard Caddy builds compile in just a few seconds. This is crucial for rapid iteration, plugin development, and low-cost deployments.
</div>
<div class="detail">
5 seconds
</div>
</div>
<div class="feature-row">
<h4>Deployment environments</h4>
<div class="benefits">
Caddy can go practically anywhere and be deployed a variety of ways. In general, upgrading is as simple as replacing the binary.
</div>
<ul class="detail">
<li>Command line interface</li>
<li>System service</li>
<li>Containers</li>
<li>Kubernetes</li>
<li>Embedded</li>
</ul>
</div>
<div class="feature-row">
<h4>Supply chain and releases</h4>
<div class="benefits">
Go modules verify the integrity of our dependencies and we cryptographically sign our release artifacts so you know what you can trust.
</div>
<div class="detail">
Cryptographically verified
</div>
</div>
<div class="feature-row">
<h4>Operating systems</h4>
<div class="benefits">
Caddy runs on every major platform for which Go compiles.
</div>
<ul class="detail">
<li>Linux</li>
<li>Windows</li>
<li>macOS</li>
<li>FreeBSD</li>
<li>OpenBSD</li>
<li>NetBSD</li>
<li>Android</li>
</ul>
</div>
<div class="feature-row">
<h4>Microarchitectures</h4>
<div class="benefits">
Run Caddy with native code on numerous CPU platforms.
</div>
<ul class="detail">
<li>x86 (i386, i686)</li>
<li>x86-64 (AMD64)</li>
<li>ARM</li>
<li>ARM 64 (AArch64)</li>
<li>MIPS</li>
<li>MIPS64[LE]</li>
<li>PPC64[LE]</li>
<li>RISCV64</li>
<li>S390X</li>
<li>Apple Silicon (Apple ARM; M1, M2, etc.)</li>
</ul>
</div>
<div class="feature-row">
<h4>Regular expression engine</h4>
<div class="benefits">
Caddy's regular expression language is <a href="https://swtch.com/~rsc/regexp/regexp1.html">based on the Thompson NFA and has numerous performance improvements over PCRE</a> used by other web servers. It guarantees the runtime cost increases linearly instead of exponentially. This is ideal when evaluating untrusted input.
<p>
<a href="https://github.com/google/re2/wiki/Syntax">RE2 Syntax</a>
</p>
</div>
<div class="detail">
RE2
</div>
</div>
<div class="feature-row">
<h4>Concurrency model</h4>
<div class="benefits">
Go's runtime optimizes scheduled CPU time in smarter ways than the operating system can using lightweight user-space threads called goroutines. Caddy easily handles hundreds of thousands of requests per second.
</div>
<div class="detail">
Goroutines (epoll + kqueue)
</div>
</div>
<div class="feature-row">
<h4>Plugin model</h4>
<div class="benefits">
Caddy can be extended by compile-time plugins, which compile as native code, in a way that cannot be broken during deployments or by system upgrades. With no IPC or RPC calls, Caddy extensions perform equally well with native code.
</div>
<div class="detail">
Compile-time static
</div>
</div> </div>
</div> </div>
<div class="feature-row">
<h4>Build artifacts</h4> <h3 class="purple">High-level capabilities</h3>
<div class="benefits">
Caddy compiles directly to native CPU instructions. There is no interpreter required; and many instructions are architecture-optimized. <div class="feature-list">
<div class="feature-row">
<h4>Configuration changes</h4>
<div class="benefits">
With zero-downtime graceful reloads, Caddy's configuration can be changed while it is running. It's programmable/scriptable for powerful automation.
</div>
<ul class="detail">
<li>RESTful HTTP API</li>
<li>Config files</li>
<li>Secure remote access</li>
<!-- <li>Optimistic concurrency</li> -->
</ul>
</div> </div>
<div class="detail"> <div class="feature-row">
Platform-native static binary <h4>App modules</h4>
<div class="benefits">
Top-level configuration structures are called app modules, or Caddy apps. They provide the bulk of Caddy's functionality. Anyone can write app modules, and Caddy comes with several standard apps built-in.
</div>
<ul class="detail">
<li>HTTP</li>
<li>TLS</li>
<li>PKI</li>
<li>Events</li>
<li class="nonstandard">Raw TCP & UDP</li>
<li class="nonstandard">SSH</li>
<li class="nonstandard">PHP</li>
<li class="nonstandard">Dynamic DNS</li>
<li class="nonstandard">Security</li>
<li class="nonstandard">Process supervision</li>
<li class="nonstandard">Profiling</li>
</ul>
</div> </div>
</div> <div class="feature-row">
<div class="feature-row"> <h4>Logs</h4>
<h4>Runtime dependencies</h4> <div class="benefits">
<div class="benefits"> Caddy's logging can be configured as to format, verbosity, output, and more.
Caddy is statically compiled. Dynamically-linked applications can easily break in production and may be less secure as shared executable resources are loaded from various places around the system. Generally, Caddy binaries do not necessarily require external libraries &mdash; not even libc. </div>
<ul class="detail">
<li>Leveled</li>
<li>Structured</li>
<li>High efficiency, zero-allocation</li>
</ul>
</div> </div>
<div class="detail"> <div class="feature-row">
None <h4>Storage</h4>
</div> <div class="benefits">
</div> Assets and state, including certificates and OCSP staples, are stored in configurable storage backends. In fact, multiple instances of Caddy configured with the same storage are considered part of a cluster and can coordinate automatically.
<div class="feature-row"> </div>
<h4>Compile time</h4> <ul class="detail">
<div class="benefits"> <li>File system</li>
On consumer hardware, standard Caddy builds compile in just a few seconds. This is crucial for rapid iteration, plugin development, and low-cost deployments. <li>Embedded (in-memory)</li>
</div> <li class="nonstandard">Postgres</li>
<div class="detail"> <li class="nonstandard">Redis</li>
5 seconds <li class="nonstandard">Vault</li>
</div> <li class="nonstandard">Consul</li>
</div> </ul>
<div class="feature-row">
<h4>Deployment environments</h4>
<div class="benefits">
Caddy can go practically anywhere and be deployed a variety of ways. In general, upgrading is as simple as replacing the binary.
</div>
<ul class="detail">
<li>Command line interface</li>
<li>System service</li>
<li>Containers</li>
<li>Kubernetes</li>
<li>Embedded</li>
</ul>
</div>
<div class="feature-row">
<h4>Supply chain and releases</h4>
<div class="benefits">
Go modules verify the integrity of our dependencies and we cryptographically sign our release artifacts so you know what you can trust.
</div>
<div class="detail">
Cryptographically verified
</div>
</div>
<div class="feature-row">
<h4>Operating systems</h4>
<div class="benefits">
Caddy runs on every major platform for which Go compiles.
</div>
<ul class="detail">
<li>Linux</li>
<li>Windows</li>
<li>macOS</li>
<li>FreeBSD</li>
<li>OpenBSD</li>
<li>NetBSD</li>
<li>Android</li>
</ul>
</div>
<div class="feature-row">
<h4>Microarchitectures</h4>
<div class="benefits">
Run Caddy with native code on numerous CPU platforms.
</div>
<ul class="detail">
<li>x86 (i386, i686)</li>
<li>x86-64 (AMD64)</li>
<li>ARM</li>
<li>ARM 64 (AArch64)</li>
<li>MIPS</li>
<li>MIPS64[LE]</li>
<li>PPC64[LE]</li>
<li>RISCV64</li>
<li>S390X</li>
<li>Apple Silicon (Apple ARM; M1, M2, etc.)</li>
</ul>
</div>
<div class="feature-row">
<h4>Regular expression engine</h4>
<div class="benefits">
Caddy's regular expression language is <a href="https://swtch.com/~rsc/regexp/regexp1.html">based on the Thompson NFA and has numerous performance improvements over PCRE</a> used by other web servers. It guarantees the runtime cost increases linearly instead of exponentially. This is ideal when evaluating untrusted input.
<p>
<a href="https://github.com/google/re2/wiki/Syntax">RE2 Syntax</a>
</p>
</div>
<div class="detail">
RE2
</div>
</div>
<div class="feature-row">
<h4>Concurrency model</h4>
<div class="benefits">
Go's runtime optimizes scheduled CPU time in smarter ways than the operating system can using lightweight user-space threads called goroutines. Caddy easily handles hundreds of thousands of requests per second.
</div>
<div class="detail">
Goroutines (epoll + kqueue)
</div>
</div>
<div class="feature-row">
<h4>Plugin model</h4>
<div class="benefits">
Caddy can be extended by compile-time plugins, which compile as native code, in a way that cannot be broken during deployments or by system upgrades. With no IPC or RPC calls, Caddy extensions perform equally well with native code.
</div>
<div class="detail">
Compile-time static
</div> </div>
</div> </div>
</div> </div>
</section>
<h3 class="purple">High-level capabilities</h3>
<div class="feature-list">
<div class="feature-row">
<h4>Configuration changes</h4>
<div class="benefits">
With zero-downtime graceful reloads, Caddy's configuration can be changed while it is running. It's programmable/scriptable for powerful automation. <section class="diagonal down dark feature">
<div class="wrapper">
<h2>
Command line interface
</h2>
<p>
Caddy's CLI is not only useful&mdash;it's <i>helpful</i>. While most server CLIs merely run the process and reload config, Caddy's CLI goes the extra lightyear to help make administering your modern web server a breeze.
</p>
<p>
Plugins can register their own subcommands to extend Caddy's CLI.
</p>
<div class="feature-list">
<div class="feature-row">
<h4>Command help</h4>
<div class="benefits">
If you misspell a command or flag, miss an argument, or don't know the subcommand, help text is automatically printed. You can also access overall command help or subcommand help with <code>caddy help</code> or <code>-h</code>.
</div>
<div class="detail">
Built-in, automatic (<code>man</code> pages can also be generated)
</div>
</div> </div>
<ul class="detail"> <div class="feature-row">
<li>RESTful HTTP API</li> <h4>Admin API wrappers</h4>
<li>Config files</li> <div class="benefits">
<li>Secure remote access</li> Several subcommands use administration API endpoints for use with the CLI to help you perform common tasks like loading config from files or stopping the server.
<!-- <li>Optimistic concurrency</li> --> </div>
</ul> <ul class="detail">
</div> <li>Adapt config to JSON</li>
<div class="feature-row"> <li>Start the server, optionally with config</li>
<h4>App modules</h4> <li>Gracefully reload configuration</li>
<div class="benefits"> <li>Stop the server</li>
Top-level configuration structures are called app modules, or Caddy apps. They provide the bulk of Caddy's functionality. Anyone can write app modules, and Caddy comes with several standard apps built-in. </ul>
</div> </div>
<ul class="detail"> <div class="feature-row">
<li>HTTP</li> <h4>Binary utilities</h4>
<li>TLS</li> <div class="benefits">
<li>PKI</li> Since custom builds of Caddy are so common, several commands exist to help you manage and get detailed information about your build.
<li>Events</li> </div>
</ul> <ul class="detail">
</div> <li>Detailed build metadata</li>
<div class="feature-row"> <li>List installed config modules</li>
<h4>Logs</h4> <li>List dependencies</li>
<div class="benefits"> <li>Add and remove plugin packages</li>
Caddy's logging can be configured as to format, verbosity, output, and more. <li>Print the version</li>
<li>Upgrade the Caddy binary</li>
</ul>
</div> </div>
<ul class="detail"> <div class="feature-row">
<li>Leveled</li> <h4>Configuration utilities</h4>
<li>Structured</li> <div class="benefits">
<li>High efficiency, zero-allocation</li> If you choose to use configuration files, Caddy's CLI helps you manage them.
</ul> </div>
</div> <ul class="detail">
<div class="feature-row"> <li>Format Caddyfile</li>
<h4>Storage</h4> <li>Validate configuration</li>
<div class="benefits"> <li>List dependencies</li>
Assets and state are stored in configurable storage modules. Third-party plugins add databases like Postgres and Redis, or orchestrators like Consul and Vault. <li>Add and remove plugin packages</li>
<li>Print the version</li>
</ul>
</div> </div>
<div class="detail"> <div class="feature-row">
<li>File system</li> <h4>Module utilities</h4>
<li>Embedded (in-memory)</li> <div class="benefits">
Modules may register their own subcommands to provide common functionality that can be utilized without a config document.
</div>
<ul class="detail">
<li>Static file server</li>
<li>HTTP reverse proxy</li>
<li>Static HTTP responses (templateable)</li>
<li>Storage import/export (backup/restore)</li>
<li>Hash password for use with HTTP basic auth</li>
<li>Export file browse template</li>
</ul>
</div>
<div class="feature-row">
<h4>Integration utilities</h4>
<div class="benefits">
Several subcommands can help you integrate Caddy into your shell environment.
</div>
<ul class="detail">
<li>Generate shell completion script</li>
<li>Print the environment</li>
<li>Generate <code>man</code> pages</li>
<li>Install Caddy-managed root CA into trust stores</li>
<li>Remove Caddy-managed root CA from trust stores</li>
</ul>
</div>
<div class="feature-row">
<h4>System signals</h4>
<div class="benefits">
Caddy has support for common operating system signals/interrupts, with subtle differences in behavior for each one.
<p>
<a href="/docs/command-line#signals">Signal documentation</a>
</p>
</div>
<ul class="detail">
<li>INT (graceful stop)</li>
<li>QUIT</li>
<li>TERM</li>
</ul>
</div>
<div class="feature-row">
<h4>Exit codes</h4>
<div class="benefits">
Whether Caddy exits successfully or with an error, the <a href="/docs/command-line#exit-codes">exit code</a> can give a hint to your process supervisor or script how to handle that.
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </section>
</section>
<section class="feature">
<div class="wrapper">
<h2>
Configuration
</h2>
<p>
We've designed Caddy so that its configuration not only provides access to features, but <i>it IS a feature</i> in and of itself.
</p>
<p>
No more quibbling over which config file format is the best: use whatever you want! Caddy's <a href="/docs/config-adapters">config adapters</a> allow you to use whatever config format you prefer.
</p>
<div class="feature-list">
<div class="feature-row">
<h4>Native config format</h4>
<div class="benefits">
Caddy's native configuration format is ubiquitous: it has tooling in nearly every operating system, platform, programming language, and API ecosystem. Almost all other formats can be translated down into JSON, which balances human readability and programmability. You'll find it a powerful ally of your web server.
</div>
<div class="detail">
JSON
</div>
</div>
<div class="feature-row">
<h4>Config adapters</h4>
<div class="benefits">
You can always write your config in another format and with config adapters, Caddy will implicitly translate it into JSON for you so you can work with what you like.
</div>
<ul class="detail">
<li>Caddyfile</li>
<li class="nonstandard">JSON 5</li>
<li class="nonstandard">JSON-C</li>
<li class="nonstandard">NGINX Conf</li>
<li class="nonstandard">YAML</li>
<li class="nonstandard">CUE</li>
<li class="nonstandard">TOML</li>
<li class="nonstandard">HCL</li>
<li class="nonstandard">Dhall</li>
<li class="nonstandard">MySQL</li>
</ul>
</div>
<div class="feature-row">
<h4>Human-friendly config</h4>
<div class="benefits">
The Caddyfile is most users' favorite way to write their web server config by hand because its syntax is forgiving while also being designed with a structure that makes it easy to read and write. It is translated to JSON automatically.
</div>
<div class="detail">
Caddyfile
</div>
</div>
<div class="feature-row">
<h4>Export</h4>
<div class="benefits">
Caddy's administration API allows you to have runtime access to the current configuration in JSON format with a simple GET request.
</div>
</div>
<div class="feature-row">
<h4>Config API</h4>
<div class="benefits">
Caddy receives its configuration through an API endpoint, which can accept JSON or any other format it has a config adapter for.
</div>
</div>
<div class="feature-row">
<h4>Config files</h4>
<div class="benefits">
If you prefer normal commands to manage configuration, Caddy's CLI wraps the API endpoints for you.
</div>
</div>
</div>
</div>
</section>
<section class="light gray diagonal up feature">
<div class="wrapper">
<h2>
HTTP File Server
</h2>
<p>
Caddy's file server is best-in-class.
</p>
<div class="feature-list">
<div class="feature-row">
<h4>TODO...</h4>
<div class="benefits">
TODO...
</div>
<div class="detail">
TODO...
</div>
</div>
</div>
</div>
</section>
</main>
<section class="diagonal down dark feature">
<div class="wrapper">
<h2>
Command line interface
</h2>
<p>
Caddy's CLI is not only useful&mdash;it's <i>helpful</i>. While most server CLIs stop at running the process and reloading config, Caddy's CLI goes the extra lightyear to help make administering your web server a breeze.
</p>
<p>
Plugins can register their own subcommands to extend Caddy's CLI.
</p>
</div>
</section>
{{include "/includes/footer.html"}} {{include "/includes/footer.html"}}

View file

@ -123,291 +123,295 @@
</div> </div>
<div class="wavy-top"> <main>
<div class="bgtext">
Every<br>
<span class="site-on">site on</span><br>
HTTPS
</div>
<h2>
<b>By default, </b>Caddy <b>automatically obtains</b> and <b>renews</b> TLS certificates for <b>all your sites.</b>
</h2>
<div class="wrapper feature cols"> <div class="wavy-top">
<div class="col"> <div class="bgtext">
<h3 class="green">Dynamically provision certificates</h3> Every<br>
<p> <span class="site-on">site on</span><br>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains. HTTPS
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div> </div>
<h2>
<b>By default, </b>Caddy <b>automatically obtains</b> and <b>renews</b> TLS certificates for <b>all your sites.</b>
</h2>
<div class="sponsorship-primer"> <div class="wrapper feature cols">
<h3>software <b>assurance</b></h3> <div class="col">
<p> <h3 class="green">Dynamically provision certificates</h3>
Some text here that explains sponsorships <p>
</p> With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
<a href="/sponsor" class="button purple">See sponsorships</a> </p>
</div> </div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="sponsor-experience stripe"> <div class="sponsorship-primer">
<img src="/resources/images/sponsors/stripe.svg" class="experience-logo"> <h3>software <b>assurance</b></h3>
<div class="experience-content"> <p>
<div class="experience-quote"> Some text here that explains sponsorships
"Something good to say, hopefully. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet." </p>
</div> <a href="/sponsor" class="button purple">See sponsorships</a>
<div class="experience-credit"> </div>
<img src="" class="experience-picture">
<cite> <div class="sponsor-experience stripe">
<b>Firstname Last</b> <img src="/resources/images/sponsors/stripe.svg" class="experience-logo">
Position or credentials <div class="experience-content">
</cite> <div class="experience-quote">
"Something good to say, hopefully. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet."
</div>
<div class="experience-credit">
<img src="" class="experience-picture">
<cite>
<b>Firstname Last</b>
Position or credentials
</cite>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
<section class="light"> <section class="light">
<div class="section-upset"> <div class="section-upset">
<div class="wrapper">
<h2>
The <b>most advanced</b> HTTPS server <b>in the world</b>
</h2>
</div>
</div>
<div class="wrapper">
<div class="feature cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
<div class="demobox">
<h2>Experience it</h2>
<p>
<b>Discover Caddy's automagic HTTPS features.</b>
</p>
<p>
Point any subdomain named <b><code>caddydemo</code></b> to:
</p>
<p class="demo-ips">
<code>
<span class="record-type">A</span>
<span class="demo-ip">1.2.3.4</span>
</code>
<code>
<span class="record-type">AAAA</span>
<span class="demo-ip">::f00</span>
</code>
</p>
<p>
Then <b>visit it</b> in your browser.
</p>
<p>
You'll notice how Caddy <b>provisions a certificate</b> for your domain <b>automatically.</b>
</p>
<div class="demo-help">
<p>
Caddy is capable of serving TLS for any domains and IPs. This demo is intentionally restricted.
</p>
<p>
<b>Not working?</b> Make sure to use a subdomain of a registered domain, not a "sub-subdomain."
Verify you have created the public DNS records shown above with the correct values.
You may have to allow time for propagation. Consult your DNS provider's documentation or support for more information.
</p>
<p>
<b>Example subdomains that could work:</b> <code>caddydemo.example.net</code>, <code>caddydemo.example.co.uk</code>
</p>
</div>
</div>
</div>
</section>
<section class="diagonal down dark feature">
<div class="wrapper"> <div class="wrapper">
<h2> <h2>
The <b>most advanced</b> HTTPS server <b>in the world</b> A truly forward-thinking reverse proxy
</h2> </h2>
</div>
</div>
<div class="wrapper">
<div class="feature cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
<div class="demobox">
<h2>Experience it</h2>
<p> <p>
<b>Discover Caddy's automagic HTTPS features.</b> Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p> </p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
<h2>
Production-grade static file server
</h2>
<p> <p>
Point any subdomain named <b><code>caddydemo</code></b> to: Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p> Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
<p class="demo-ips">
<code>
<span class="record-type">A</span>
<span class="demo-ip">1.2.3.4</span>
</code>
<code>
<span class="record-type">AAAA</span>
<span class="demo-ip">::f00</span>
</code>
</p> </p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
</div>
</section>
<section class="light feature">
<div class="wrapper">
<h2>
Flexible configuration for all production environments
</h2>
<p> <p>
Then <b>visit it</b> in your browser. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p> </p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
</div>
</section>
<section class="diagonal up light gray feature">
<div class="wrapper">
<h2>
Unparalleled extensibility
</h2>
<p> <p>
You'll notice how Caddy <b>provisions a certificate</b> for your domain <b>automatically.</b> Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p> </p>
<div class="demo-help"> <div class="cols">
<p> <div class="col">
Caddy is capable of serving TLS for any domains and IPs. This demo is intentionally restricted. <h3 class="green">Dynamically provision certificates</h3>
</p> <p>
<p> With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
<b>Not working?</b> Make sure to use a subdomain of a registered domain, not a "sub-subdomain." </p>
Verify you have created the public DNS records shown above with the correct values. </div>
You may have to allow time for propagation. Consult your DNS provider's documentation or support for more information. <div class="col">
</p> <h3 class="purple">Dynamically provision certificates</h3>
<p> <p>
<b>Example subdomains that could work:</b> <code>caddydemo.example.net</code>, <code>caddydemo.example.co.uk</code> With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p> </p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div> </div>
</div> </div>
</div> </section>
</section>
<section class="diagonal down dark feature">
<div class="wrapper"> <section class="light feature">
<h2> <div class="wrapper">
A truly forward-thinking reverse proxy <h2>
</h2> The gold standard web server
<p> </h2>
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. <p>
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Caddy keeps your sites up when other servers let you down.
</p> </p>
<div class="cols"> <div class="cols">
<div class="col"> <div class="col">
<h3 class="green">Dynamically provision certificates</h3> <h3 class="green">Dynamically provision certificates</h3>
<p> <p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains. With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p> </p>
</div> </div>
<div class="col"> <div class="col">
<h3 class="purple">Dynamically provision certificates</h3> <h3 class="purple">Dynamically provision certificates</h3>
<p> <p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains. With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p> </p>
</div> </div>
<div class="col"> <div class="col">
<h3 class="blue">Dynamically provision certificates</h3> <h3 class="blue">Dynamically provision certificates</h3>
<p> <p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains. With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p> </p>
</div>
</div> </div>
</div> </div>
</section>
<h2> </main>
Production-grade static file server
</h2>
<p>
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
</div>
</section>
<section class="light feature">
<div class="wrapper">
<h2>
Flexible configuration for all production environments
</h2>
<p>
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
</div>
</section>
<section class="diagonal up light gray feature">
<div class="wrapper">
<h2>
Unparalleled extensibility
</h2>
<p>
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
</p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
</div>
</section>
<section class="light feature">
<div class="wrapper">
<h2>
The gold standard web server
</h2>
<p>
Caddy keeps your sites up when other servers let you down.
</p>
<div class="cols">
<div class="col">
<h3 class="green">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="purple">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
<div class="col">
<h3 class="blue">Dynamically provision certificates</h3>
<p>
With On-Demand TLS, only Caddy obtains, renews, and maintains certificates on-the-fly during TLS handshakes. Perfect for customer-owned domains.
</p>
</div>
</div>
</div>
</section>
{{include "/includes/footer.html"}} {{include "/includes/footer.html"}}

View file

@ -103,15 +103,12 @@ body {
tab-size: 4; tab-size: 4;
background-color: var(--body-bg); background-color: var(--body-bg);
color: var(--text-color); color: var(--text-color);
background-image:
radial-gradient(at calc(50% - min(25vw, 800px)) -10%, hsl(137.64deg, 100%, 92.42%) 0px, transparent min(15%, 500px)),
radial-gradient(at calc(50% + min(25vw, 800px)) -10%, hsl(201.2deg, 68%, 90.2%) 0px, transparent min(15%, 500px));
} }
.dark body { section.dark,
background-image: footer {
radial-gradient(at calc(50% - min(35vw, 700px)) -10%, hsl(129.5deg, 100%, 12.4%) 0px, transparent min(25%, 600px)), background-color: #002020;
radial-gradient(at calc(50% + min(35vw, 700px)) -10%, hsl(201deg, 100%, 19.33%) 0px, transparent min(25%, 600px)) color: white;
} }
main a { main a {
@ -272,6 +269,16 @@ button,
align-items: center; align-items: center;
} }
.button {
color: rgb(54 206 255);
border: 1px solid rgb(54 206 255);
}
.button:hover {
color: white;
border-color: white;
}
button.primary, button.primary,
.button.primary { .button.primary {
background: linear-gradient(135deg, white 25%, rgba(167, 183, 193) 80%); background: linear-gradient(135deg, white 25%, rgba(167, 183, 193) 80%);

View file

@ -43,8 +43,10 @@ body {
background-image: background-image:
radial-gradient(at calc(50% - min(25vw, 800px)) -10%, hsl(137.64deg, 100%, 92.42%) 0px, transparent min(15%, 500px)), radial-gradient(at calc(50% - min(25vw, 800px)) -10%, hsl(137.64deg, 100%, 92.42%) 0px, transparent min(15%, 500px)),
radial-gradient(at calc(50% + min(25vw, 800px)) -10%, hsl(201.2deg, 68%, 90.2%) 0px, transparent min(15%, 500px)); radial-gradient(at calc(50% + min(25vw, 800px)) -10%, hsl(201.2deg, 68%, 90.2%) 0px, transparent min(15%, 500px));
background-repeat: no-repeat;
} }
.dark body { .dark body {
background-image: background-image:
radial-gradient(at calc(50% - min(35vw, 700px)) -10%, hsl(129.5deg, 100%, 12.4%) 0px, transparent min(25%, 600px)), radial-gradient(at calc(50% - min(35vw, 700px)) -10%, hsl(129.5deg, 100%, 12.4%) 0px, transparent min(25%, 600px)),

View file

@ -3,7 +3,7 @@
padding-bottom: 50px; padding-bottom: 50px;
} }
.datagrid { /* .datagrid {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 2em; gap: 2em;
@ -17,11 +17,30 @@
letter-spacing: 1px; letter-spacing: 1px;
margin-bottom: .5em; margin-bottom: .5em;
min-width: 200px; min-width: 200px;
} */
.legend {
margin-bottom: -100px;
margin-left: auto;
margin-right: auto;
font-size: 24px;
color: var(--text-color-muted);
text-align: center;
max-width: 750px;
line-height: 1.5;
}
.legend .nonstandard {
font-weight: bold;
} }
.feature-list { .feature-list {
font-size: 90%; font-size: 90%;
margin: 50px 0 100px; margin: 50px 0 125px;
}
.feature-list:last-child {
margin-bottom: 0;
} }
.feature-row { .feature-row {
@ -32,6 +51,10 @@
border-bottom: 2px dashed #a4c8ff25; /* #e6eaf0 */ border-bottom: 2px dashed #a4c8ff25; /* #e6eaf0 */
} }
.feature-row:last-child {
padding-bottom: 0;
}
.feature-row .benefits { .feature-row .benefits {
color: var(--text-color-muted); color: var(--text-color-muted);
font-weight: 500; font-weight: 500;
@ -53,6 +76,14 @@
border-bottom: none; border-bottom: none;
} }
.nonstandard {
color: #e76100; /* #005c94 */
}
.dark .nonstandard {
color: #fb8a26;
}
/* TODO: Figure this out */ /* TODO: Figure this out */
@media (max-width: 800px) { @media (max-width: 800px) {

View file

@ -78,15 +78,6 @@ h2 {
.button {
color: rgb(54 206 255);
border: 1px solid rgb(54 206 255);
}
.button:hover {
color: white;
border-color: white;
}
.button.cool { .button.cool {
position: relative; position: relative;
@ -196,12 +187,6 @@ section {
} }
section.dark,
footer {
background-color: #002020;
color: white;
}
section.gray { section.gray {
background-color: #f5f8f9; background-color: #f5f8f9;
} }
@ -310,7 +295,7 @@ h3.green {
color: #23a460; border-color: #23a460; color: #23a460; border-color: #23a460;
} }
h3.purple { h3.purple {
color: rgb(151, 39, 151); border-color: rgb(151, 39, 151); color: rgb(179, 59, 179); border-color: rgb(179, 59, 179);
} }
h3.blue { h3.blue {
color: rgb(14, 110, 189); border-color: rgb(14, 110, 189); color: rgb(14, 110, 189); border-color: rgb(14, 110, 189);

View file

@ -462,174 +462,173 @@
<main>
<section class="diagonal down dark feature">
<div class="wrapper">
<h2>
Sponsorship answers
</h2>
<p>
Too often we see the catastrophic results of deploying a web server haphazardly in a commercial environment, only to appeal to the community too late with too little information for a problem that takes too long to solve at that point&mdash;an incident that could have been mitigated with proper training and support.
</p>
<p>
Our take on sponsorships is that we expect all professional and business use of Caddy to keep an active sponsorship, just as we expect a tree trunk to keep its branches. Sponsorships are not just feel-good donations. They provide crucial value to companies while sustaining ongoing maintenance.
</p>
<p>
The original author of Caddy, Matt Holt, operates Dyanim, LLC to maintain the project and direct development alongside a global community. Sponsorships are fulfilled by Dyanim, LLC under the auspices of the executive sponsor, ZeroSSL.
</p>
<div class="cols cols-big">
<div class="col">
<h3 class="green">Are these software licenses?</h3>
<p>
<b>NO.</b> Sponsorships are separate products which provide support, development and training services, marketing, and various project management features for individuals, organizations, and companies. Your license to the software remains the same regardless of sponsorship status.
</p>
<h3 class="blue">What are professional services?</h3>
<section class="diagonal down dark feature"> <p>
<div class="wrapper"> These include any services that are supplemental to routine project maintenance, such as onboarding, training, presenting, and custom development work.
<h2> </p>
Sponsorship answers
</h2>
<p>
Too often we see the catastrophic results of deploying a web server haphazardly in a commercial environment, only to appeal to the community too late with too little information for a problem that takes too long to solve at that point&mdash;an incident that could have been mitigated with proper training and support.
</p>
<p>
Our take on sponsorships is that we expect all professional and business use of Caddy to keep an active sponsorship, just as we expect a tree trunk to keep its branches. Sponsorships are not just feel-good donations. They provide crucial value to companies while sustaining ongoing maintenance.
</p>
<p>
The original author of Caddy, Matt Holt, operates Dyanim, LLC to maintain the project and direct development alongside a global community. Sponsorships are fulfilled by Dyanim, LLC under the auspices of the executive sponsor, ZeroSSL.
</p>
<div class="cols cols-big">
<div class="col">
<h3 class="green">Are these software licenses?</h3>
<p>
<b>NO.</b> Sponsorships are separate products which provide support, development and training services, marketing, and various project management features for individuals, organizations, and companies. Your license to the software remains the same regardless of sponsorship status.
</p>
<h3 class="blue">What are professional services?</h3> <h3 class="purple">I need something not listed above.</h3>
<p> <p>
These include any services that are supplemental to routine project maintenance, such as onboarding, training, presenting, and custom development work. That's OK - contact us and tell us what you need!
</p> </p>
<h3 class="purple">I need something not listed above.</h3> <h3 class="green">Is the only way to pay through GitHub?</h3>
<p> <p>
That's OK - contact us and tell us what you need! Nope, our higher tiers can accommodate various forms of payment such as invoices, ACH, wire transfer, or even physical check if needed.
</p> </p>
<h3 class="green">Is the only way to pay through GitHub?</h3> <h3 class="blue">Will we have to approve a new vendor?</h3>
<p> <p>
Nope, our higher tiers can accommodate various forms of payment such as invoices, ACH, wire transfer, or even physical check if needed. Not likely! Our sponsorship subscriptions are managed by GitHub, which is often already an approved vendor for most businesses.
</p> </p>
<h3 class="blue">Will we have to approve a new vendor?</h3> <h3 class="purple">Can we do a one-time sponsorship?</h3>
<p> <p>
Not likely! Our sponsorship subscriptions are managed by GitHub, which is often already an approved vendor for most businesses. Yes! We call those donations, and welcome them warmly with gratitude.
</p> </p>
</div>
<div class="col">
<h3 class="purple">Why sponsorships?</h3>
<p>
Professionals and businesses have numerous requirements that are not satisfied by open source licenses, but the wider community has numerous requirements that are not satisfied by proprietary licenses. For example, companies require support and advanced features that are simply too difficult to provide or develop without a business relationship.
</p>
<p>
To bridge that gap, we offer sponsorships so that our software can remain freely usable while providing businesses the assurances they need when committing to such a crucial technology choice.
</p>
<p>
We also have a lower tier for individuals who just want to support the project without the means of company funding.
</p>
<p>
Our software is compelling because sponsorships keep it fully open without expensive, paid-only features that segment and divide the community. Instead, everyone running Caddy for their homelab or school project is using the same version of the software deployed by large enterprises around the world. That's really amazing, and sponsors make it possible.
</p>
<h3 class="purple">Can we do a one-time sponsorship?</h3> <h3 class="blue">What if we fall into a category we can't budget for?</h3>
<p> <p>
Yes! We call those donations, and welcome them warmly with gratitude. We would ask your product manager why they are deploying software without the means to support it. That said, a well-established business, for example, could sign up for a Startup-tier sponsorship if that is all the budget allows; it would be better than no safety net at all. However, your overall satisfaction will be higher with an appropriate sponsorship tier since we will be able to accommodate your situation better.
</p> </p>
</div>
</div> </div>
<div class="col">
<h3 class="purple">Why sponsorships?</h3>
<p>
Professionals and businesses have numerous requirements that are not satisfied by open source licenses, but the wider community has numerous requirements that are not satisfied by proprietary licenses. For example, companies require support and advanced features that are simply too difficult to provide or develop without a business relationship.
</p>
<p>
To bridge that gap, we offer sponsorships so that our software can remain freely usable while providing businesses the assurances they need when committing to such a crucial technology choice.
</p>
<p>
We also have a lower tier for individuals who just want to support the project without the means of company funding.
</p>
<p>
Our software is compelling because sponsorships keep it fully open without expensive, paid-only features that segment and divide the community. Instead, everyone running Caddy for their homelab or school project is using the same version of the software deployed by large enterprises around the world. That's really amazing, and sponsors make it possible.
</p>
<h3 class="blue">What if we fall into a category we can't budget for?</h3> </div>
<p> </section>
We would ask your product manager why they are deploying software without the means to support it. That said, a well-established business, for example, could sign up for a Startup-tier sponsorship if that is all the budget allows; it would be better than no safety net at all. However, your overall satisfaction will be higher with an appropriate sponsorship tier since we will be able to accommodate your situation better.
</p> <section class="light feature">
<div class="wrapper">
<h2>
Sponsorships are better
</h2>
<p>
Neither companies nor projects are sustainable at scale by open source licenses alone. Some sort of business relationship must be entered to support the company's operations as well as the project's ongoing development.
</p>
<p>
Typically this is solved by charging for the software or specific features, purchasing insurance, hiring a consultant, or tasking an in-house developer to learn and maintain the technology.
</p>
<p>
Sponsorships offer a simple and profound solution to this problem with many advantages over the alternatives:
</p>
<div class="cols">
<div class="col">
<h3 class="green">Consultants</h3>
<p>
Consulting fees are high ($250-500/hr.) to offset the variable nature of the profession, and typically billed hourly, which can be stressful for customers trying to minimize their costs.
</p>
<p>
Consultants vary and may have mixed skill sets rather than expertise in the topic at hand, for example a specific web server. You may also need to approve them as a vendor before doing business.
</p>
<p>
Sponsorships have an affordable regular rate without a hard limit of hours to dispell stress lower your costs. You'll get direct access to the world experts on the software, and you can pay through a known vendor, GitHub.
</p>
</div>
<div class="col">
<h3 class="purple">Insurance</h3>
<p>
Sponsorships are not insurance -- they don't pay back money when there's an incident and can't legally be classified as any kind of coverage. Instead, they help reduce the likelihood and magnitude of incidents in the first place with a comprehensive integration strategy. We'll get to know your setup and help you deploy in the best way possible.
</p>
<p>
Working with insurance is tedious and expensive, but sponsorships are much easier with less paperwork and legal complications.
</p>
</div>
<div class="col">
<h3 class="blue">In-house hire</h3>
<p>
The math is simple: a skilled, in-house developer salary may be $180,000/year. A sponsorship is one or two orders of magnitude less, usually $3k-12k/year, and it gives you access to the world experts.
</p>
<p>
Sponsorships circumvent HR and hiring processes, and because of their ability to train your existing employees, you can still retain that knowledge in-house.
</p>
<p>
If a hire leaves your company, so often does that knowledge. A sponsorship ensures that the skills can persist with your organization through turnover.
</p>
</div>
<div class="col">
<h3 class="blue">Nothing</h3>
<p>
It should go without saying that having <a href="https://words.filippo.io/dispatches/reciprocal/">direct access to the maintainers</a> of the software you rely on is better than having no support, no safety net, and no influence over the project's priorities.
</p>
<p>
With open source software, you're solely on your own. You can appeal to the community, but you won't have a high-attention relationship that can adjust the priorities of the maintainers.
</p>
</div>
</div> </div>
</div> </div>
</section>
</div>
</section>
<section class="light feature">
<div class="wrapper"> <section class="diagonal up light gray feature">
<h2> <div class="wrapper">
Sponsorships are better <h2>
</h2> Tangible business results
<p> </h2>
Neither companies nor projects are sustainable at scale by open source licenses alone. Some sort of business relationship must be entered to support the company's operations as well as the project's ongoing development. <p>
</p> Sponsorships help you keep your competitive edge, reduce your costs, and may even increase customer loyalty. You'll be able to meet requirements you never thought possible with pure open source.
<p> </p>
Typically this is solved by charging for the software or specific features, purchasing insurance, hiring a consultant, or tasking an in-house developer to learn and maintain the technology. <div class="cols">
</p> <div class="col">
<p> <h3 class="purple">Software assurance</h3>
Sponsorships offer a simple and profound solution to this problem with many advantages over the alternatives: <p>
</p> It's not insurance. <b>It's better</b>. Gain the peace of mind knowing that your sponsorship helps sustain continued development of the project and that you have direct access to the maintainer.
<div class="cols"> </p>
<div class="col"> </div>
<h3 class="green">Consultants</h3> <div class="col">
<p> <h3 class="green">Increased customer loyalty</h3>
Consulting fees are high ($250-500/hr.) to offset the variable nature of the profession, and typically billed hourly, which can be stressful for customers trying to minimize their costs. <p>
</p> Customers feel more loyal toward companies that openly sponsor projects, especially those they use. <b>Tens of thousands</b> of Caddy users are more likely to become and stay your customers when you sponsor the project.
<p> </p>
Consultants vary and may have mixed skill sets rather than expertise in the topic at hand, for example a specific web server. You may also need to approve them as a vendor before doing business. </div>
</p> <div class="col">
<p> <h3 class="blue">Lower costs, higher margins</h3>
Sponsorships have an affordable regular rate without a hard limit of hours to dispell stress lower your costs. You'll get direct access to the world experts on the software, and you can pay through a known vendor, GitHub. <p>
</p> Operate more efficiently with a Caddy sponsorship, which can prevent consulting fees, hiring expenses, catastrophic production failures, and inefficient configurations.
</div> </p>
<div class="col"> </div>
<h3 class="purple">Insurance</h3>
<p>
Sponsorships are not insurance -- they don't pay back money when there's an incident and can't legally be classified as any kind of coverage. Instead, they help reduce the likelihood and magnitude of incidents in the first place with a comprehensive integration strategy. We'll get to know your setup and help you deploy in the best way possible.
</p>
<p>
Working with insurance is tedious and expensive, but sponsorships are much easier with less paperwork and legal complications.
</p>
</div>
<div class="col">
<h3 class="blue">In-house hire</h3>
<p>
The math is simple: a skilled, in-house developer salary may be $180,000/year. A sponsorship is one or two orders of magnitude less, usually $3k-12k/year, and it gives you access to the world experts.
</p>
<p>
Sponsorships circumvent HR and hiring processes, and because of their ability to train your existing employees, you can still retain that knowledge in-house.
</p>
<p>
If a hire leaves your company, so often does that knowledge. A sponsorship ensures that the skills can persist with your organization through turnover.
</p>
</div>
<div class="col">
<h3 class="blue">Nothing</h3>
<p>
It should go without saying that having <a href="https://words.filippo.io/dispatches/reciprocal/">direct access to the maintainers</a> of the software you rely on is better than having no support, no safety net, and no influence over the project's priorities.
</p>
<p>
With open source software, you're solely on your own. You can appeal to the community, but you won't have a high-attention relationship that can adjust the priorities of the maintainers.
</p>
</div> </div>
</div> </div>
</div> </section>
</section>
<section class="diagonal up light gray feature">
<div class="wrapper">
<h2>
Tangible business results
</h2>
<p>
Sponsorships help you keep your competitive edge, reduce your costs, and may even increase customer loyalty. You'll be able to meet requirements you never thought possible with pure open source.
</p>
<div class="cols">
<div class="col">
<h3 class="purple">Software assurance</h3>
<p>
It's not insurance. <b>It's better</b>. Gain the peace of mind knowing that your sponsorship helps sustain continued development of the project and that you have direct access to the maintainer.
</p>
</div>
<div class="col">
<h3 class="green">Increased customer loyalty</h3>
<p>
Customers feel more loyal toward companies that openly sponsor projects, especially those they use. <b>Tens of thousands</b> of Caddy users are more likely to become and stay your customers when you sponsor the project.
</p>
</div>
<div class="col">
<h3 class="blue">Lower costs, higher margins</h3>
<p>
Operate more efficiently with a Caddy sponsorship, which can prevent consulting fees, hiring expenses, catastrophic production failures, and inefficient configurations.
</p>
</div>
</div>
</div>
</section>
</main>
{{include "/includes/footer.html"}} {{include "/includes/footer.html"}}