diff --git a/apps/site/src/components/product/illustrations/branched-stack.tsx b/apps/site/src/components/product/illustrations/branched-stack.tsx
index 761eb72b673..47259bd89f4 100644
--- a/apps/site/src/components/product/illustrations/branched-stack.tsx
+++ b/apps/site/src/components/product/illustrations/branched-stack.tsx
@@ -2,9 +2,11 @@ import { AppWindow, Database, GitBranch } from "@/components/icons/forma";
import { cn } from "@/lib/utils";
import { Bar, CardChrome, SurfaceCard } from "./parts";
-// "Branch your stack per PR" — production above, a PR branch below, and both
-// halves of the stack peeling off together. The pairing is the point, so app and
-// database always appear as one row, never as two independent things.
+// "A preview per pushed branch": production above, a pushed branch's preview
+// below, and both halves of the stack appearing together. The pairing is the
+// point, so app and database always appear as one row, never as two
+// independent things. Nothing here says the preview's data comes from
+// production, because it does not.
function StackRow({ label, accent }: { label: string; accent?: boolean }) {
const chip = cn(
@@ -32,7 +34,7 @@ function StackRow({ label, accent }: { label: string; accent?: boolean }) {
export function BranchedStack() {
return (
-
+
@@ -52,7 +54,7 @@ export function BranchedStack() {
- branched from production
+ its own app and database
diff --git a/apps/site/src/components/product/illustrations/co-located.tsx b/apps/site/src/components/product/illustrations/co-located.tsx
index 6dba5a728eb..c35492cfc14 100644
--- a/apps/site/src/components/product/illustrations/co-located.tsx
+++ b/apps/site/src/components/product/illustrations/co-located.tsx
@@ -1,17 +1,17 @@
-import { AppWindow, Database, XCircle } from "@/components/icons/forma";
+import { AppWindow, CheckBold, Database, XCircle } from "@/components/icons/forma";
import { CardChrome, SectionLabel, SurfaceCard } from "./parts";
-// "Microsecond queries, no code changes" — the round trip that disappears. Two
-// vendors above with the network hop struck out, one machine below with the app
-// and the database sitting next to each other. The only unit shown is µs, which
-// the copy itself claims; no numbers are invented.
+// "App and database on one platform": two vendors above, with the hop between
+// them struck out, and one platform below with the app and the database side
+// by side. No unit and no figure is shown. The docs state no latency number,
+// so the illustration claims none.
export function CoLocated() {
return (
-
+
- {/* two vendors: the hop you pay for */}
+ {/* two vendors: two dashboards, two bills, a network hop between them */}
Two vendors
@@ -21,26 +21,28 @@ export function CoLocated() {
db
-
network round trip
+
+ two dashboards, two bills
+
- {/* one machine: no hop at all */}
+ {/* one platform: the same project and plan */}
-
One machine
+
One platform
-
no code changes
+
one project, one plan
diff --git a/apps/site/src/components/product/illustrations/deploy-log.tsx b/apps/site/src/components/product/illustrations/deploy-log.tsx
index 5ff3abaac77..6004055575c 100644
--- a/apps/site/src/components/product/illustrations/deploy-log.tsx
+++ b/apps/site/src/components/product/illustrations/deploy-log.tsx
@@ -1,18 +1,24 @@
import { AppWindow, CheckBold, Database } from "@/components/icons/forma";
import { CardChrome, HeroPanel, StatRow } from "./parts";
-// Stop two of the /compute hero tour — "Deploy". The deploy itself, running:
-// services detected, everything built, the database branched and migrated
-// alongside the app, then a live URL. Real: the command, the step names, the
-// service names and the hostname shape. The timings are this build's own — they
-// are not a platform performance claim, and nothing here is a latency figure.
+// Stop two of the /compute hero tour, "Deploy". The deploy itself, running:
+// the services module.ts declares, uploaded from your build output, the
+// database provisioned and migrated alongside the app, then a live URL. Real:
+// the command shape and the hostname shape. The step names paraphrase what
+// deploy does: it assembles what your build produced and does not build for
+// you (cli/deploy.mdx, composer/deploying.mdx), so no step here says "built".
+// The migrations step is what composer/databases.mdx describes for a database
+// typed by a Prisma ORM contract. There is no health-check step: the docs
+// describe one only for the Alchemy route (compute/alchemy.mdx), not for
+// prisma deploy. The timings are this build's own: they are not a platform
+// performance claim, and nothing here is a latency figure. The "deployed in"
+// row is their sum, so change both together.
const STEPS = [
- { label: "detected 3 services", detail: "web · api · worker", time: "0.4s" },
- { label: "built services", detail: "3 of 3", time: "18.2s" },
- { label: "provisioned branched database", detail: "from main", time: "2.1s" },
+ { label: "read module.ts", detail: "web · api · worker", time: "0.4s" },
+ { label: "uploaded services", detail: "3 of 3", time: "18.2s" },
+ { label: "provisioned database", detail: "postgres", time: "2.1s" },
{ label: "ran migrations", detail: "3 applied", time: "1.3s" },
- { label: "health check", detail: "200 OK", time: "0.9s" },
];
function Chip({ icon: Icon, label }: { icon: typeof AppWindow; label: string }) {
@@ -26,7 +32,7 @@ function Chip({ icon: Icon, label }: { icon: typeof AppWindow; label: string })
export function DeployLog() {
return (
-
+
$
- prisma deploy
+ prisma deploy module.ts
{STEPS.map(({ label, detail, time }) => (
@@ -90,7 +96,7 @@ export function DeployLog() {
-
+
diff --git a/apps/site/src/components/product/illustrations/deployments.tsx b/apps/site/src/components/product/illustrations/deployments.tsx
index ee50ac1c00a..a14dbd20e94 100644
--- a/apps/site/src/components/product/illustrations/deployments.tsx
+++ b/apps/site/src/components/product/illustrations/deployments.tsx
@@ -4,10 +4,11 @@ import { cn } from "@/lib/utils";
import { Bar, CardChrome, HeroPanel, SectionLabel } from "./parts";
// The /compute hero abstraction: the platform's core claim in one frame — a
-// production deploy and a per-PR preview, each carrying an app and a database
-// that were branched together. Real: the environment names, the preview
-// hostname shape, and the deploy command. Abstracted: every commit subject and
-// measured value.
+// production deploy and a preview for a pushed branch, each carrying an app
+// and its own database. Real: the environment names, the preview hostname
+// shape, and the deploy command. Abstracted: every commit subject and measured
+// value. The preview's database is its own, not a copy of production's, so the
+// frame says "preview branch" rather than anything about branching data.
function Pair({ accent }: { accent?: boolean }) {
return (
@@ -40,7 +41,7 @@ function Pair({ accent }: { accent?: boolean }) {
export function Deployments() {
return (
-
+
- {/* the preview that branches both halves together */}
+ {/* the preview, carrying both halves */}