Control Every Edge.
-The modern web interface for Caddy Server. Automatic HTTPS, geo blocking, traffic analytics, and a full audit trail โ all in one place.
+The modern web interface for Caddy Server. Automatic HTTPS, geo blocking, traffic analytics, and a full audit trail. All in one place.
Reverse Proxy
-Configure upstream pools, load balancing, custom headers, and per-host enable/disable with a clean editor.
+Configure multiple upstreams, load balancing, custom headers, and per-host enable/disable with a clean editor.
Auto HTTPS
-Automatic TLS for every proxy host via Caddy ACME. Let's Encrypt, ZeroSSL, and Cloudflare DNS-01 out of the box.
+Automatic TLS for every proxy host via Caddy ACME. Let's Encrypt, ZeroSSL, and Cloudflare DNS-01 out of the box.
Geo Blocking
-Block or allow by country, continent, ASN, CIDR, or exact IP โ per host, with priority allow-override rules.
+Block or allow by country, continent, ASN, CIDR, or exact IP per host, with priority allow-override rules.
Certificate Visibility
-Issuer, expiry status, and health for every ACME-managed cert โ no more guessing what Caddy obtained.
+Issuer, expiry status, and health for every ACME-managed cert. No more guessing what Caddy obtained.
Every reverse proxy,
one interface.
- Search across all hosts, toggle them on or off instantly, and configure upstreams, load balancing, and access lists โ without touching a config file.
+Search across all hosts, toggle them on or off instantly, and configure upstreams, load balancing, and access lists without touching a config file.
diff --git a/site/styles.css b/site/styles.css
index 42c0eddf..1dcd47ad 100644
--- a/site/styles.css
+++ b/site/styles.css
@@ -23,7 +23,9 @@ body {
color: var(--fg);
font-family: var(--font-sans);
line-height: 1.6;
+ text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
overflow-x: hidden;
}
@@ -92,7 +94,7 @@ header {
/* โโ Hero โโ */
.hero {
- padding: 9rem 0 5rem;
+ padding: 6.5rem 0 4rem;
text-align: center;
}
@@ -107,11 +109,12 @@ header {
}
.hero h1 {
- font-size: clamp(3rem, 7vw, 5.5rem);
+ font-size: clamp(3rem, 7vw, 5.25rem);
font-weight: 900;
letter-spacing: -0.04em;
- line-height: 1.0;
- margin-bottom: 1.5rem;
+ line-height: 1.08;
+ margin-bottom: 1.25rem;
+ padding: 0 0.04em 0.12em;
background: linear-gradient(160deg, #fff 0%, #86868b 100%);
background-clip: text;
-webkit-background-clip: text;
@@ -121,8 +124,8 @@ header {
.hero > p {
font-size: 1.2rem;
color: var(--fg-muted);
- max-width: 580px;
- margin: 0 auto 2.5rem;
+ max-width: 680px;
+ margin: 0 auto 2rem;
line-height: 1.7;
}
@@ -130,7 +133,7 @@ header {
display: flex;
justify-content: center;
gap: 0.75rem;
- margin-bottom: 5rem;
+ margin-bottom: 3rem;
}
.btn {
@@ -387,7 +390,7 @@ footer p {
.spotlight-text { max-width: 100%; }
- .hero { padding: 6rem 0 4rem; }
+ .hero { padding: 5rem 0 3.5rem; }
.grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
@@ -396,6 +399,10 @@ footer p {
@media (max-width: 600px) {
.nav-links { display: none; }
- .hero h1 { font-size: 2.75rem; }
+ .hero h1 {
+ font-size: 2.75rem;
+ line-height: 1.12;
+ padding-bottom: 0.1em;
+ }
.btn-group { flex-direction: column; align-items: center; }
}