diff --git a/packages/landing/.gitignore b/packages/landing/.gitignore
index 0e1f66fd..272e2116 100644
--- a/packages/landing/.gitignore
+++ b/packages/landing/.gitignore
@@ -1,3 +1,4 @@
.vercel
.env
.env.*
+.env*.local
diff --git a/packages/landing/README.md b/packages/landing/README.md
index 6f9389b5..010e4d83 100644
--- a/packages/landing/README.md
+++ b/packages/landing/README.md
@@ -7,6 +7,11 @@
2. Run the app:
`pnpm --filter @different-ai/openwork-landing dev`
+### Optional env vars
+
+- `NEXT_PUBLIC_CAL_URL` - enterprise booking link
+- `NEXT_PUBLIC_DEN_CHECKOUT_URL` - Polar checkout URL for the Den preorder CTA
+
## Deploy (recommended)
This app is ready for Vercel or any Node-compatible Next.js host.
diff --git a/packages/landing/app/den/page.tsx b/packages/landing/app/den/page.tsx
new file mode 100644
index 00000000..3d4ea107
--- /dev/null
+++ b/packages/landing/app/den/page.tsx
@@ -0,0 +1,118 @@
+import { SiteFooter } from "../../components/site-footer";
+import { SiteNav } from "../../components/site-nav";
+import { OpenCodeLogo } from "../../components/opencode-logo";
+import { getGithubData } from "../../lib/github";
+
+export const metadata = {
+ title: "OpenWork — Den",
+ description: "Hosted OpenWork for teams with priority onboarding.",
+};
+
+export default async function Den() {
+ const github = await getGithubData();
+ const checkoutUrl = process.env.NEXT_PUBLIC_DEN_CHECKOUT_URL ?? "";
+
+ return (
+
+
+
+
+
+
+
+ OpenWork hosted
+
+
Den
+
+ Hosted OpenWork for teams
+
+
+ Den gives your team a managed OpenWork runtime with priority
+ onboarding and custom workflows, so you can ship automations
+ without running infrastructure yourself.
+