feat(landing): Introduce OpenWork Coworker#2316
Conversation
- New /cloud route explaining the Cloud offering (control plane for shared skills, members, providers) with a looping chat animation showing the Cloud MCP inviting a teammate and sharing skills from plain English. - Mark hosted workers as 'Coming soon' and drop all 'always-on' messaging. - Slim the home page down to a teaser that links to /cloud instead of bouncing visitors straight to app.openworklabs.com. - Point nav + footer 'Cloud' links at the internal /cloud route.
- New /coworker page announcing OpenWork Coworker: design AI coworkers from the desktop chat, connect the tools that matter, and deploy to Slack, email, and beyond — no infra to host, no platform lock-in. - Auto-playing chat demo showing the full create → connect → deploy flow. - Problem framing (self-host vs locked-in SaaS) followed by the OpenWork way (design it your way, connect what matters, deploy from chat). - Beta CTA with note that OpenWork Models / Cloud teams get access first. - Home page teaser section linking to /coworker.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
2 issues found across 11 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="ee/apps/landing/app/cloud/page.tsx">
<violation number="1" location="ee/apps/landing/app/cloud/page.tsx:20">
P2: Defaulting `NEXT_PUBLIC_CAL_URL` to `""` breaks the Cloud page's Contact sales CTA when the optional env var is unset.</violation>
</file>
<file name="ee/apps/landing/components/landing-cloud-section.tsx">
<violation number="1" location="ee/apps/landing/components/landing-cloud-section.tsx:1">
P2: Unnecessary "use client" directive — component is server-compatible and does not require client-side bundling.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
|
||
| export default async function CloudPage() { | ||
| const github = await getGithubData(); | ||
| const cal = process.env.NEXT_PUBLIC_CAL_URL ?? ""; |
There was a problem hiding this comment.
P2: Defaulting NEXT_PUBLIC_CAL_URL to "" breaks the Cloud page's Contact sales CTA when the optional env var is unset.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At ee/apps/landing/app/cloud/page.tsx, line 20:
<comment>Defaulting `NEXT_PUBLIC_CAL_URL` to `""` breaks the Cloud page's Contact sales CTA when the optional env var is unset.</comment>
<file context>
@@ -0,0 +1,29 @@
+
+export default async function CloudPage() {
+ const github = await getGithubData();
+ const cal = process.env.NEXT_PUBLIC_CAL_URL ?? "";
+
+ return (
</file context>
| @@ -0,0 +1,33 @@ | |||
| "use client"; | |||
There was a problem hiding this comment.
P2: Unnecessary "use client" directive — component is server-compatible and does not require client-side bundling.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At ee/apps/landing/components/landing-cloud-section.tsx, line 1:
<comment>Unnecessary "use client" directive — component is server-compatible and does not require client-side bundling.</comment>
<file context>
@@ -0,0 +1,33 @@
+"use client";
+import { Cloud } from "lucide-react";
+import Link from "next/link";
</file context>
- Rework the homepage hero around outcome-driven copy, direct desktop download, and a zero-friction install snippet. - Add crawlable proof above the fold: GitHub stars, downloads, providers, YC, and real user logos/counts for Toyota, Lenovo, IBM, Tesla, Stanford, and MIT. - Add an OpenWork vs Claude Cowork comparison section for buyer-intent SEO/AEO. - Update homepage metadata, sitemap, and markdown responses for Cloud/Coworker discoverability.
|
Updated the PR with homepage conversion improvements based on the audit:
Verification:
|
|
Follow-up: stripped the heavy/inaccurate homepage conversion pass back down to one small proof element. Final homepage change is now intentionally minimal:
Verified locally: / returns 200, proof strip renders, removed comparison/download-copy no longer appears. |
What
Introduces OpenWork Coworker — a new
/coworkerlanding page announcing the ability to design, connect, and deploy AI coworkers from the OpenWork desktop chat.Changes
/coworkerpage (app/coworker/page.tsx+components/landing-coworker.tsx):components/landing-coworker-section.tsx): lightweight section linking to/coworkercomponents/landing-coworker-chat-demo.tsx): looping animation showing a user creating a coworker, connecting Slack + HubSpot, and deploying it — all from the chat interfaceVisual evidence
The dev server compiles cleanly and both routes return 200:
/): teaser section renders with "OpenWork Coworker" + "Private beta" badge + "Learn more" link/coworker): full page renders with hero, problem framing, solution, and beta CTAVerified via SSR content checks — the chat demo's first message and chrome header are server-rendered, with subsequent steps animating in client-side.
Testing
curl http://localhost:3001/coworker→ 200, content verifiedcurl http://localhost:3001/→ 200, teaser section verifiednext dev)