feat: replace sponsorships page with placeholder, move content to staging

Move full sponsorship tiers/packages to votc-sponsorship-staging.jeffemmett.com
while showing "details coming soon" on the public /sponsorships page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-09 15:29:21 -07:00
parent 18cd1cc1d3
commit a0500457fd
4 changed files with 367 additions and 216 deletions

View File

@ -30,6 +30,17 @@ services:
- traefik-public
- listmonk-internal
votc-sponsorship-staging:
build: ./staging/sponsorships
container_name: votc-sponsorship-staging
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.votc-sponsorship-staging.rule=Host(`votc-sponsorship-staging.jeffemmett.com`)"
- "traefik.http.services.votc-sponsorship-staging.loadbalancer.server.port=80"
networks:
- traefik-public
votc-db:
image: postgres:16-alpine
container_name: votc-db

View File

@ -17,11 +17,6 @@
--color-accent: #000;
--color-link: #000;
--font-sans: 'Urbanist', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--spacing-xs: 0.5rem;
--spacing-sm: 1rem;
--spacing-md: 2rem;
--spacing-lg: 4rem;
--max-width: 900px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
@ -32,6 +27,9 @@
background: var(--color-bg);
line-height: 1.6;
font-size: 18px;
min-height: 100vh;
display: flex;
flex-direction: column;
}
.header {
@ -41,9 +39,9 @@
}
.header-container {
max-width: var(--max-width);
max-width: 900px;
margin: 0 auto;
padding: 0 var(--spacing-md);
padding: 0 2rem;
display: flex;
justify-content: space-between;
align-items: center;
@ -61,9 +59,15 @@
.header a:hover { text-decoration: underline; }
.content {
max-width: var(--max-width);
max-width: 900px;
margin: 0 auto;
padding: var(--spacing-lg) var(--spacing-md);
padding: 4rem 2rem;
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
}
h1 {
@ -71,146 +75,34 @@
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: var(--spacing-xs);
margin-bottom: 0.5rem;
}
.subtitle {
font-size: 1.2rem;
color: var(--color-text-light);
margin-bottom: var(--spacing-lg);
margin-bottom: 2rem;
}
.intro {
.coming-soon {
font-size: 1.1rem;
margin-bottom: var(--spacing-lg);
max-width: 700px;
}
.tiers {
display: grid;
gap: var(--spacing-md);
margin-bottom: var(--spacing-lg);
}
.tier {
border: 2px solid #e5e5e5;
padding: var(--spacing-md);
transition: border-color 0.2s;
}
.tier:hover {
border-color: var(--color-accent);
}
.tier-header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: var(--spacing-sm);
flex-wrap: wrap;
gap: var(--spacing-xs);
}
.tier-name {
font-size: 1.3rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.tier-price {
font-size: 1.5rem;
font-weight: 700;
}
.tier-tagline {
font-style: italic;
color: var(--color-text-light);
margin-bottom: var(--spacing-sm);
max-width: 500px;
margin-bottom: 2rem;
}
.tier ul {
list-style: none;
padding: 0;
}
.tier ul li {
padding: 0.3rem 0;
padding-left: 1.5rem;
position: relative;
.contact {
font-size: 1rem;
}
.tier ul li::before {
content: "—";
position: absolute;
left: 0;
color: var(--color-text-light);
}
.tier .highlight {
.contact a {
color: var(--color-link);
font-weight: 600;
}
h2 {
font-size: 1.5rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: var(--spacing-sm);
}
.alternatives {
margin-bottom: var(--spacing-lg);
}
.alternatives ul {
list-style: none;
padding: 0;
}
.alternatives ul li {
padding: 0.5rem 0;
border-bottom: 1px solid #f0f0f0;
font-size: 1rem;
}
.alternatives ul li strong {
display: inline;
}
.cta-block {
background: var(--color-accent);
color: var(--color-bg);
padding: var(--spacing-lg);
text-align: center;
margin-bottom: var(--spacing-lg);
}
.cta-block h2 {
color: var(--color-bg);
margin-bottom: var(--spacing-sm);
}
.cta-block p {
margin-bottom: var(--spacing-sm);
font-size: 1.1rem;
}
.cta-block a {
color: var(--color-bg);
text-decoration: underline;
font-weight: 600;
font-size: 1.2rem;
}
.cta-block a:hover {
text-decoration: none;
}
.footer {
border-top: 1px solid #e5e5e5;
padding: var(--spacing-md) 0;
padding: 2rem 0;
text-align: center;
color: var(--color-text-light);
font-size: 14px;
@ -222,13 +114,6 @@
}
.footer a:hover { text-decoration: underline; }
@media (max-width: 600px) {
.content { padding: var(--spacing-md); }
.tier { padding: var(--spacing-sm); }
.tier-header { flex-direction: column; }
.cta-block { padding: var(--spacing-md); }
}
</style>
</head>
<body>
@ -242,85 +127,8 @@
<div class="content">
<h1>Sponsorships</h1>
<p class="subtitle">Aug 24 Sep 20, 2026 · Höllental, Austrian Alps</p>
<p class="intro">Valley of the Commons is a four-week pop-up village where commons practitioners, governance innovators, and housing co-op builders come together to prototype life beyond extractive systems. We're seeking partners who share this vision.</p>
<div class="tiers">
<div class="tier">
<div class="tier-header">
<span class="tier-name">Mycelium Partner</span>
<span class="tier-price">€10,000</span>
</div>
<p class="tier-tagline">Become part of the Valley ecosystem</p>
<ul>
<li><span class="highlight">4 complimentary full passes</span> (4 weeks each — €4,800 value)</li>
<li>60-minute sponsored session slot</li>
<li>Private dinner with organizers and community leaders</li>
<li>Logo on hero section, all pages, and signage</li>
<li>Featured in opening and closing ceremonies</li>
<li>Pre &amp; post-event spotlight</li>
</ul>
</div>
<div class="tier">
<div class="tier-header">
<span class="tier-name">Spore Partner</span>
<span class="tier-price">€5,000</span>
</div>
<p class="tier-tagline">Plant seeds for regenerative futures</p>
<ul>
<li><span class="highlight">2 complimentary full passes</span> (€2,400 value)</li>
<li>30-minute workshop slot</li>
<li>Logo on sponsor section and signage</li>
<li>Social media recognition</li>
</ul>
</div>
<div class="tier">
<div class="tier-header">
<span class="tier-name">Symbiont Supporter</span>
<span class="tier-price">€2,500</span>
</div>
<p class="tier-tagline">Support commons-building infrastructure</p>
<ul>
<li><span class="highlight">1 complimentary full pass</span> (€1,200 value)</li>
<li>Priority registration</li>
<li>Logo on sponsor section</li>
<li>Newsletter mention</li>
</ul>
</div>
<div class="tier">
<div class="tier-header">
<span class="tier-name">Friend of the Commons</span>
<span class="tier-price">€1,000</span>
</div>
<p class="tier-tagline">Show solidarity with the movement</p>
<ul>
<li><span class="highlight">1 discounted pass</span> (50% off — €600 value)</li>
<li>Name on supporters section</li>
<li>Social media thank-you</li>
</ul>
</div>
</div>
<div class="alternatives">
<h2>Alternative Partnerships</h2>
<ul>
<li><strong>Theme / Week Sponsorship</strong> — Naming rights and session curation for a themed week</li>
<li><strong>Accommodation Sponsorship</strong> (€3,0008,000) — Cover housing for participants who need support</li>
<li><strong>Meal Sponsorship</strong> (€2,0006,000) — Sponsor shared meals for a week or the full event</li>
<li><strong>Documentation Sponsorship</strong> (~€2,000) — Support professional photography, videography, and summaries</li>
<li><strong>Travel Grants</strong> — Fund travel scholarships for underrepresented participants</li>
<li><strong>Technology Partnership</strong> — Provide tools, platforms, or fab lab equipment in-kind</li>
</ul>
</div>
<div class="cta-block">
<h2>Let's Talk</h2>
<p>We're seeking partners, not advertisers. If your organization is building toward commons-based, cooperative, regenerative futures — we want to collaborate.</p>
<a href="mailto:team@valleyofthecommons.com">team@valleyofthecommons.com</a>
</div>
<p class="coming-soon">Details coming soon. We're finalizing sponsorship packages for Valley of the Commons and will share more here shortly.</p>
<p class="contact">Interested? Reach out at <a href="mailto:team@valleyofthecommons.com">team@valleyofthecommons.com</a></p>
</div>
<footer class="footer">

View File

@ -0,0 +1,2 @@
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html

View File

@ -0,0 +1,330 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/svg+xml" href="icon.svg">
<link rel="alternate icon" href="icon.svg">
<title>Sponsorships - Valley of the Commons</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap" rel="stylesheet">
<style>
:root {
--color-text: #1a1a1a;
--color-text-light: #666;
--color-bg: #ffffff;
--color-accent: #000;
--color-link: #000;
--font-sans: 'Urbanist', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--spacing-xs: 0.5rem;
--spacing-sm: 1rem;
--spacing-md: 2rem;
--spacing-lg: 4rem;
--max-width: 900px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-sans);
color: var(--color-text);
background: var(--color-bg);
line-height: 1.6;
font-size: 18px;
}
.header {
background: var(--color-bg);
border-bottom: 1px solid #e5e5e5;
padding: 1rem 0;
}
.header-container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 var(--spacing-md);
display: flex;
justify-content: space-between;
align-items: center;
}
.header a {
color: var(--color-link);
text-decoration: none;
text-transform: uppercase;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.05em;
}
.header a:hover { text-decoration: underline; }
.content {
max-width: var(--max-width);
margin: 0 auto;
padding: var(--spacing-lg) var(--spacing-md);
}
h1 {
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: var(--spacing-xs);
}
.subtitle {
font-size: 1.2rem;
color: var(--color-text-light);
margin-bottom: var(--spacing-lg);
}
.intro {
font-size: 1.1rem;
margin-bottom: var(--spacing-lg);
max-width: 700px;
}
.tiers {
display: grid;
gap: var(--spacing-md);
margin-bottom: var(--spacing-lg);
}
.tier {
border: 2px solid #e5e5e5;
padding: var(--spacing-md);
transition: border-color 0.2s;
}
.tier:hover {
border-color: var(--color-accent);
}
.tier-header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: var(--spacing-sm);
flex-wrap: wrap;
gap: var(--spacing-xs);
}
.tier-name {
font-size: 1.3rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.tier-price {
font-size: 1.5rem;
font-weight: 700;
}
.tier-tagline {
font-style: italic;
color: var(--color-text-light);
margin-bottom: var(--spacing-sm);
}
.tier ul {
list-style: none;
padding: 0;
}
.tier ul li {
padding: 0.3rem 0;
padding-left: 1.5rem;
position: relative;
font-size: 1rem;
}
.tier ul li::before {
content: "—";
position: absolute;
left: 0;
color: var(--color-text-light);
}
.tier .highlight {
font-weight: 600;
}
h2 {
font-size: 1.5rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: var(--spacing-sm);
}
.alternatives {
margin-bottom: var(--spacing-lg);
}
.alternatives ul {
list-style: none;
padding: 0;
}
.alternatives ul li {
padding: 0.5rem 0;
border-bottom: 1px solid #f0f0f0;
font-size: 1rem;
}
.alternatives ul li strong {
display: inline;
}
.cta-block {
background: var(--color-accent);
color: var(--color-bg);
padding: var(--spacing-lg);
text-align: center;
margin-bottom: var(--spacing-lg);
}
.cta-block h2 {
color: var(--color-bg);
margin-bottom: var(--spacing-sm);
}
.cta-block p {
margin-bottom: var(--spacing-sm);
font-size: 1.1rem;
}
.cta-block a {
color: var(--color-bg);
text-decoration: underline;
font-weight: 600;
font-size: 1.2rem;
}
.cta-block a:hover {
text-decoration: none;
}
.footer {
border-top: 1px solid #e5e5e5;
padding: var(--spacing-md) 0;
text-align: center;
color: var(--color-text-light);
font-size: 14px;
}
.footer a {
color: var(--color-link);
text-decoration: none;
}
.footer a:hover { text-decoration: underline; }
@media (max-width: 600px) {
.content { padding: var(--spacing-md); }
.tier { padding: var(--spacing-sm); }
.tier-header { flex-direction: column; }
.cta-block { padding: var(--spacing-md); }
}
</style>
</head>
<body>
<header class="header">
<div class="header-container">
<a href="/">Valley of the Commons</a>
<a href="/apply.html">Apply Now</a>
</div>
</header>
<div class="content">
<h1>Sponsorships</h1>
<p class="subtitle">Aug 24 Sep 20, 2026 · Höllental, Austrian Alps</p>
<p class="intro">Valley of the Commons is a four-week pop-up village where commons practitioners, governance innovators, and housing co-op builders come together to prototype life beyond extractive systems. We're seeking partners who share this vision.</p>
<div class="tiers">
<div class="tier">
<div class="tier-header">
<span class="tier-name">Mycelium Partner</span>
<span class="tier-price">€10,000</span>
</div>
<p class="tier-tagline">Become part of the Valley ecosystem</p>
<ul>
<li><span class="highlight">4 complimentary full passes</span> (4 weeks each — €4,800 value)</li>
<li>60-minute sponsored session slot</li>
<li>Private dinner with organizers and community leaders</li>
<li>Logo on hero section, all pages, and signage</li>
<li>Featured in opening and closing ceremonies</li>
<li>Pre &amp; post-event spotlight</li>
</ul>
</div>
<div class="tier">
<div class="tier-header">
<span class="tier-name">Spore Partner</span>
<span class="tier-price">€5,000</span>
</div>
<p class="tier-tagline">Plant seeds for regenerative futures</p>
<ul>
<li><span class="highlight">2 complimentary full passes</span> (€2,400 value)</li>
<li>30-minute workshop slot</li>
<li>Logo on sponsor section and signage</li>
<li>Social media recognition</li>
</ul>
</div>
<div class="tier">
<div class="tier-header">
<span class="tier-name">Symbiont Supporter</span>
<span class="tier-price">€2,500</span>
</div>
<p class="tier-tagline">Support commons-building infrastructure</p>
<ul>
<li><span class="highlight">1 complimentary full pass</span> (€1,200 value)</li>
<li>Priority registration</li>
<li>Logo on sponsor section</li>
<li>Newsletter mention</li>
</ul>
</div>
<div class="tier">
<div class="tier-header">
<span class="tier-name">Friend of the Commons</span>
<span class="tier-price">€1,000</span>
</div>
<p class="tier-tagline">Show solidarity with the movement</p>
<ul>
<li><span class="highlight">1 discounted pass</span> (50% off — €600 value)</li>
<li>Name on supporters section</li>
<li>Social media thank-you</li>
</ul>
</div>
</div>
<div class="alternatives">
<h2>Alternative Partnerships</h2>
<ul>
<li><strong>Theme / Week Sponsorship</strong> — Naming rights and session curation for a themed week</li>
<li><strong>Accommodation Sponsorship</strong> (€3,0008,000) — Cover housing for participants who need support</li>
<li><strong>Meal Sponsorship</strong> (€2,0006,000) — Sponsor shared meals for a week or the full event</li>
<li><strong>Documentation Sponsorship</strong> (~€2,000) — Support professional photography, videography, and summaries</li>
<li><strong>Travel Grants</strong> — Fund travel scholarships for underrepresented participants</li>
<li><strong>Technology Partnership</strong> — Provide tools, platforms, or fab lab equipment in-kind</li>
</ul>
</div>
<div class="cta-block">
<h2>Let's Talk</h2>
<p>We're seeking partners, not advertisers. If your organization is building toward commons-based, cooperative, regenerative futures — we want to collaborate.</p>
<a href="mailto:team@valleyofthecommons.com">team@valleyofthecommons.com</a>
</div>
</div>
<footer class="footer">
<p>&copy; 2026 Commons Hub · <a href="mailto:team@valleyofthecommons.com">team@valleyofthecommons.com</a> · <a href="/privacy.html">Privacy Policy</a> · <a href="/">Home</a></p>
</footer>
</body>
</html>