diff --git a/src/components/marketing/diagrams/DeploymentBoundaryDiagram.tsx b/src/components/marketing/diagrams/DeploymentBoundaryDiagram.tsx
index 4531f2b1..80633bf7 100644
--- a/src/components/marketing/diagrams/DeploymentBoundaryDiagram.tsx
+++ b/src/components/marketing/diagrams/DeploymentBoundaryDiagram.tsx
@@ -1,22 +1,30 @@
-import { Icon, faDatabase, faNodeJs, faRust } from "@rivet-gg/icons";
+import {
+ Icon,
+ faAws,
+ faCloudflare,
+ faDatabase,
+ faGoogleCloud,
+ faMicrosoft,
+ faNodeJs,
+ faRust,
+ type IconProp,
+} from "@rivet-gg/icons";
import { ACTOR_TYPES } from "@/data/actor-types";
import { productLogos } from "@/sitemap/productLogos";
import { wordmarkMaskStyle } from "@/lib/product-accent";
-import foundationDbLogo from "../images/platforms/foundationdb.svg";
-import postgresLogo from "../images/platforms/postgres.svg";
/**
- * What sits inside the customer's boundary, top to bottom: a Rivet Worker
- * running their code (the Actor types it hosts, on Node.js or Rust), the Rivet
- * Control Plane scheduling it, and the storage underneath. The dashed frame is
- * the boundary itself.
+ * What sits inside the customer's boundary, top to bottom: the nodes running
+ * their code (the Actor types they host, on Node.js or Rust), the Rivet
+ * Control Plane scheduling them, and WarpDrive underneath, offloading to the
+ * customer's own bucket. The dashed frame is the boundary itself.
*
* The three layers are drawn as a stacked isometric deck — the 2:1 dimetric
* plates with extruded walls from the retired "Everything agents need" stack
* on the old homepage, over that figure's hairline grid — with a leader from
* each plate's front edge to a card naming the layer. Upper plates paint over
* the ones beneath so the deck reads as one object. Plates are painted in
- * neutral theme tokens; the only accent is the awake Actor slots on the worker.
+ * neutral theme tokens; the only accent is the awake Actor slots on the nodes.
*/
// --- Plate geometry ---------------------------------------------------------
@@ -85,10 +93,10 @@ const highlight = (alpha: number) =>
// --- Motifs ------------------------------------------------------------------
/**
- * Worker: a 4×4 grid of Actor slots centred on the face, a few of them awake.
+ * Nodes: a 4×4 grid of Actor slots centred on the face, a few of them awake.
* Static; the plate is a diagram, not a live view.
*/
-const WorkerMotif = () => {
+const NodesMotif = () => {
const n = 4;
const size = 14;
const gap = 6;
@@ -287,22 +295,14 @@ const Pill = ({ children }: { children: React.ReactNode }) => (
);
-const StorageBadge = ({
- label,
- imageSrc,
- imageClassName = "h-3.5 w-3.5",
-}: {
- label: string;
- imageSrc: string;
- imageClassName?: string;
-}) => (
+/**
+ * One bucket backend. The marks are monochrome glyphs in the pill's text color,
+ * like `CloudStrip`, so they retint with the theme and the row reads as one
+ * set. A backend without a glyph gets a text-only pill.
+ */
+const StorageBadge = ({ label, icon }: { label: string; icon?: IconProp }) => (