From d4b75612bb2c6215adc73f9ec610b74ac6954378 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:12:21 +0200 Subject: [PATCH 1/3] copy(compute): align page copy with messaging skills MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apply the Prisma communication skills (prisma-copy-review + prisma-product-messaging) to the Compute landing page copy. - Remove all em dashes from user-facing copy (page hero/meta, feature bullets, comparison card benefits, How-it-works tabs). - Cut fluff and vague intensifiers: "actually", "ultra-low latency", "grows into jobs", and the "felt as good as the code" line, which is reframed around the integrated-platform narrative from the positioning doc (fewer separate build/hosting/database tools). - Replace dramatic fragments ("Push code. It runs.", "Sockets stay open. Streams flow uninterrupted.") with single workflow sentences, and name the mechanism (long-lived process on Bun) in the hero/meta. - Fix a broken cross-reference ("See the AI workloads section above" — no such section exists). - Mark capabilities not yet covered by the Compute docs as "Coming soon": co-located database (feature card + bento + How-it-works tab) and reliability automation (auto scaling/recovery/OOM). Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/site/src/app/compute/components.tsx | 4 +-- apps/site/src/app/compute/how-it-works.tsx | 4 +-- apps/site/src/app/compute/page.tsx | 37 ++++++++++++---------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/apps/site/src/app/compute/components.tsx b/apps/site/src/app/compute/components.tsx index 6b8edb7c73..a86a5b21d8 100644 --- a/apps/site/src/app/compute/components.tsx +++ b/apps/site/src/app/compute/components.tsx @@ -111,7 +111,7 @@ const TEMPLATES = [ }, { title: "Hono API", - subtitle: "Lightweight API backend. A good starting point that grows into jobs.", + subtitle: "Lightweight API backend. A good starting point for APIs and background jobs.", command: "npx create-hono-api", href: "#", }, @@ -284,7 +284,7 @@ const US_SERVICES: ServiceRow[] = [ const US_BENEFITS = [ "No cold starts, no timeouts, no connection limits", - "Self-hosting — without the painful parts", + "Self-hosting, without the painful parts", ]; // --------------------------------------------------------------------------- diff --git a/apps/site/src/app/compute/how-it-works.tsx b/apps/site/src/app/compute/how-it-works.tsx index 259007ee05..9f9f21c722 100644 --- a/apps/site/src/app/compute/how-it-works.tsx +++ b/apps/site/src/app/compute/how-it-works.tsx @@ -1256,7 +1256,7 @@ const TABS = [ value: "co-located", label: "Co-Located", icon: "fa-regular fa-database", - title: "Database right next to your code.", + title: "Database right next to your code. (Coming soon)", Visual: ZeroConfigBYO, description: ( <> @@ -1265,7 +1265,7 @@ const TABS = [ processes.

- Works with any database — no lock-in. + Works with any database, no lock-in. ), }, diff --git a/apps/site/src/app/compute/page.tsx b/apps/site/src/app/compute/page.tsx index d8690f701f..9bd6824db6 100644 --- a/apps/site/src/app/compute/page.tsx +++ b/apps/site/src/app/compute/page.tsx @@ -114,18 +114,19 @@ const FEATURES = [ { content: ( <> -

+

Co-located database +

- Pair with Prisma Postgres; compute and database run in the same region, connected + Pair with Prisma Postgres so compute and database run in the same region, connected automatically.

), @@ -155,21 +156,21 @@ const DOES_IT_WORK = [ { title: "Running a Hono, Express, or Fastify API?", description: - "Long-lived processes are the default. No workarounds for WebSockets or streaming. Sockets stay open. Streams flow uninterrupted.", + "Long-lived processes are the default, so WebSockets and streaming work without workarounds. Sockets stay open and streams run uninterrupted.", icon: "fa-regular fa-rocket", badgeColor: "success" as const, }, { title: "Running background jobs or workers?", description: - "They run as long-lived processes alongside your API. Same repo, same runtime, same bill — no separate worker tier to pay for.", + "They run as long-lived processes alongside your API. Same repo, same runtime, same bill, with no separate worker tier to pay for.", icon: "fa-regular fa-clock-rotate-left", badgeColor: "success" as const, }, { title: "Building an AI agent?", description: - "Per-session sandboxes, long-lived runtimes, co-located memory. See the AI workloads section above for the full take.", + "Per-session sandboxes, long-lived runtimes, and co-located memory, on the same runtime that serves your API.", icon: "fa-regular fa-stars", badgeColor: "ppg" as const, }, @@ -238,8 +239,9 @@ const WHY_FEATURES = [ id: "db-connected", title: "DB connected by default", children: ( -
- Co-located with Prisma Postgres for ultra-low latency. Works with any database. +
+ Co-located with Prisma Postgres for low-latency access. Works with any database. +
), icon: "fa-regular fa-database", @@ -249,8 +251,9 @@ const WHY_FEATURES = [ id: "reliable", title: "Reliable by design", children: ( -
- Automatic scaling, automatic recovery, automatic handling of OOM conditions. +
+ Automatic scaling, recovery, and OOM handling. +
), icon: "fa-regular fa-shield-check", @@ -262,11 +265,11 @@ export async function generateMetadata(): Promise { return { title: "Prisma Compute", description: - "Deploy TypeScript to production. Push code, it runs. Long-running processes, background jobs, APIs, and AI agents — no cold starts, no timeouts.", + "Deploy TypeScript to production from your repo. APIs, background jobs, and AI agents run as long-lived processes on Bun, with no cold starts or execution timeouts.", openGraph: { title: "Prisma Compute", description: - "Deploy TypeScript to production. Push code, it runs. Long-running processes, background jobs, APIs, and AI agents — no cold starts, no timeouts.", + "Deploy TypeScript to production from your repo. APIs, background jobs, and AI agents run as long-lived processes on Bun, with no cold starts or execution timeouts.", url: "https://www.prisma.io/compute", type: "website", siteName: "Prisma", @@ -310,7 +313,8 @@ export default async function Page() {

- Push code. It runs. Long-running processes, background jobs, APIs, AI agents. + Push code, it runs. APIs, background jobs, and AI agents run as long-lived + TypeScript on Bun, with no cold starts.

$1 per million requests. Volume discounts apply. @@ -337,7 +341,7 @@ export default async function Page() { 01 / WHY-PRISMA-COMPUTE

- Built for the way TypeScript actually runs. + Built for the way TypeScript runs.

@@ -461,8 +465,9 @@ export default async function Page() { Why we built Prisma Compute

- We wanted a deployment platform that felt as good as the code we were writing. Push - a repo, get a URL, and stop thinking about infrastructure. + We wanted to ship TypeScript apps without stitching together separate build, + hosting, and database tools. Push a repo, get a URL, and keep working in your + codebase.

From af5314d30a10976a044108c6efb51b84b0846838 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:11:53 +0200 Subject: [PATCH 2/3] copy(compute): second skill pass on empty language + SEO Drop the "Coming soon" markers and tighten remaining empty language, plus SEO fields. - Remove "Coming soon" badges/label (co-located feature card, two bento cards, How-it-works tab). - Empty/slogan language replaced with concrete claims: - "Compute keeps it all together." -> "One service for your app, assets, and jobs." (matches the comparison cards below it) - "No runtime constraints." -> "not a constrained edge runtime" - SEO: page title and OG title now carry the primary keyword phrase ("Deploy TypeScript apps to production") instead of the bare brand name; meta description tightened under ~155 chars; OG image alt made descriptive. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/site/src/app/compute/how-it-works.tsx | 2 +- apps/site/src/app/compute/page.tsx | 23 ++++++++++------------ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/apps/site/src/app/compute/how-it-works.tsx b/apps/site/src/app/compute/how-it-works.tsx index 9f9f21c722..12ac3fad3b 100644 --- a/apps/site/src/app/compute/how-it-works.tsx +++ b/apps/site/src/app/compute/how-it-works.tsx @@ -1256,7 +1256,7 @@ const TABS = [ value: "co-located", label: "Co-Located", icon: "fa-regular fa-database", - title: "Database right next to your code. (Coming soon)", + title: "Database right next to your code.", Visual: ZeroConfigBYO, description: ( <> diff --git a/apps/site/src/app/compute/page.tsx b/apps/site/src/app/compute/page.tsx index 9bd6824db6..bdfdbd67a5 100644 --- a/apps/site/src/app/compute/page.tsx +++ b/apps/site/src/app/compute/page.tsx @@ -87,7 +87,7 @@ const FEATURES = [ Any TypeScript workload

- Standard TypeScript on Bun. No V8 isolate limits. No runtime constraints. + Standard TypeScript on Bun, not a constrained edge runtime. No V8 isolate limits.

  • Backend APIs and full-stack apps
  • @@ -114,9 +114,8 @@ const FEATURES = [ { content: ( <> -

    +

    Co-located database -

    Pair with Prisma Postgres so compute and database run in the same region, connected @@ -239,9 +238,8 @@ const WHY_FEATURES = [ id: "db-connected", title: "DB connected by default", children: ( -

    +
    Co-located with Prisma Postgres for low-latency access. Works with any database. -
    ), icon: "fa-regular fa-database", @@ -251,9 +249,8 @@ const WHY_FEATURES = [ id: "reliable", title: "Reliable by design", children: ( -
    +
    Automatic scaling, recovery, and OOM handling. -
    ), icon: "fa-regular fa-shield-check", @@ -263,13 +260,13 @@ const WHY_FEATURES = [ export async function generateMetadata(): Promise { return { - title: "Prisma Compute", + title: "Prisma Compute: Deploy TypeScript apps to production", description: - "Deploy TypeScript to production from your repo. APIs, background jobs, and AI agents run as long-lived processes on Bun, with no cold starts or execution timeouts.", + "Deploy TypeScript apps from your repo. APIs, background jobs, and AI agents run as long-lived processes on Bun, with no cold starts or timeouts.", openGraph: { - title: "Prisma Compute", + title: "Prisma Compute: Deploy TypeScript apps to production", description: - "Deploy TypeScript to production from your repo. APIs, background jobs, and AI agents run as long-lived processes on Bun, with no cold starts or execution timeouts.", + "Deploy TypeScript apps from your repo. APIs, background jobs, and AI agents run as long-lived processes on Bun, with no cold starts or timeouts.", url: "https://www.prisma.io/compute", type: "website", siteName: "Prisma", @@ -278,7 +275,7 @@ export async function generateMetadata(): Promise { url: "/og/og-compute.png", width: 1200, height: 630, - alt: "Prisma Compute", + alt: "Prisma Compute: Deploy TypeScript apps to production", }, ], }, @@ -413,7 +410,7 @@ export default async function Page() { 04 / WHAT MAKES IT UNIQUE

    - Compute keeps it all together. + One service for your app, assets, and jobs.

    From 12902eba239d2041ed453e3b85009a3beceb96ad Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:10:04 +0200 Subject: [PATCH 3/3] copy(compute): adjust AI-agent card to avoid co-location claim The "Building an AI agent?" card carried a green YES badge while claiming "co-located memory", which reads as an availability promise for the database co-location story. Reword to "in-process memory", which describes the long-lived stateful runtime the page already presents as available, so the card no longer implies co-location availability. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/site/src/app/compute/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/src/app/compute/page.tsx b/apps/site/src/app/compute/page.tsx index bdfdbd67a5..56e4a92488 100644 --- a/apps/site/src/app/compute/page.tsx +++ b/apps/site/src/app/compute/page.tsx @@ -169,7 +169,7 @@ const DOES_IT_WORK = [ { title: "Building an AI agent?", description: - "Per-session sandboxes, long-lived runtimes, and co-located memory, on the same runtime that serves your API.", + "Per-session sandboxes, long-lived runtimes, and in-process memory, on the same runtime that serves your API.", icon: "fa-regular fa-stars", badgeColor: "ppg" as const, },