From 8f694325d364ccc61fe91020f29cd0e1b38b5ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?batuhan=20i=C3=A7=C3=B6z?= Date: Sat, 10 Oct 2026 22:36:08 +0000 Subject: [PATCH 1/2] Move object storage docs off reserved runtime route --- content/(dynamic)/meta.ts | 11 ++++++++++- content/(dynamic)/{storage.mdx => object-storage.mdx} | 0 content/(dynamic)/wordpress.mdx | 4 ++-- content/(dynamic)/zero-runtime.mdx | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) rename content/(dynamic)/{storage.mdx => object-storage.mdx} (100%) diff --git a/content/(dynamic)/meta.ts b/content/(dynamic)/meta.ts index 242b483e..ad3ba01d 100644 --- a/content/(dynamic)/meta.ts +++ b/content/(dynamic)/meta.ts @@ -4,5 +4,14 @@ export default defineMeta({ title: "Dynamic", collapsed: false, order: 5, - pages: ["zero-runtime", "functions", "database", "environment-variables", "crons", "storage", "logs", "wordpress"], + pages: [ + "zero-runtime", + "functions", + "database", + "environment-variables", + "crons", + "object-storage", + "logs", + "wordpress", + ], }); diff --git a/content/(dynamic)/storage.mdx b/content/(dynamic)/object-storage.mdx similarity index 100% rename from content/(dynamic)/storage.mdx rename to content/(dynamic)/object-storage.mdx diff --git a/content/(dynamic)/wordpress.mdx b/content/(dynamic)/wordpress.mdx index cefde388..5226d211 100644 --- a/content/(dynamic)/wordpress.mdx +++ b/content/(dynamic)/wordpress.mdx @@ -5,7 +5,7 @@ description: Every Space runs a WordPress behind its static files. Run WP-CLI ag After this page you can run any WP-CLI command against a Space, call the Abilities its runtime publishes with a token you mint from the API, and know where the database console lives. -Every Space is backed by a WordPress install. Your published files serve in front of it, so a static Space never touches it and never pays for it. It is there because it is what makes a Space more than a bucket: [Zero](/zero-runtime) apps run on it, [Storage](/storage) is its media library, and [Database](/database) is its MySQL. This page covers the two ways to reach that WordPress directly. +Every Space is backed by a WordPress install. Your published files serve in front of it, so a static Space never touches it and never pays for it. It is there because it is what makes a Space more than a bucket: [Zero](/zero-runtime) apps run on it, [Storage](/object-storage) is its media library, and [Database](/database) is its MySQL. This page covers the two ways to reach that WordPress directly. ## `sf wp` @@ -84,7 +84,7 @@ The table prints `ABILITY | CATEGORY | MODE | REQUIRES`. The `REQUIRES` column i ### Storage Abilities -Five Abilities in the `zero-storage` category are registered by the runtime, so every Space publishes them whether or not it has ever published an app. They are the media library, the same objects [Storage](/storage) manages. +Five Abilities in the `zero-storage` category are registered by the runtime, so every Space publishes them whether or not it has ever published an app. They are the media library, the same objects [Storage](/object-storage) manages. | Ability | Mode | Does | Needs | | --- | --- | --- | --- | diff --git a/content/(dynamic)/zero-runtime.mdx b/content/(dynamic)/zero-runtime.mdx index faef910e..94d441a3 100644 --- a/content/(dynamic)/zero-runtime.mdx +++ b/content/(dynamic)/zero-runtime.mdx @@ -51,7 +51,7 @@ sf publish | Queries, mutations, and actions | The read, transactional write, and outbound-work paths your client calls. Queries are live. | This page | | Environment variables | `ctx.env`, from `.env.server` or `sf env`. | [Environment variables](/environment-variables) | | Crons | Scheduled GETs against your own paths, declared in `sf.jsonc`. | [Crons](/crons) | -| Storage | Runtime object storage for visitor uploads. | [Storage](/storage) | +| Storage | Runtime object storage for visitor uploads. | [Storage](/object-storage) | | Logs | What your handlers wrote, plus every request the edge served. | [Logs](/logs) | ## The `@spacefast/zero` package From 287599603275c5a8566106909178ec949dd68f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?batuhan=20i=C3=A7=C3=B6z?= Date: Sat, 10 Oct 2026 22:43:09 +0000 Subject: [PATCH 2/2] Preserve the public storage docs URL --- scripts/redirect-rules.mjs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/redirect-rules.mjs b/scripts/redirect-rules.mjs index 0506749d..cb954fe1 100644 --- a/scripts/redirect-rules.mjs +++ b/scripts/redirect-rules.mjs @@ -18,6 +18,11 @@ const authoredRedirectRules = [ status: 301, to: `${deploymentBase}/zero-runtime`, }, + { + from: `${deploymentBase}/storage`, + status: 301, + to: `${deploymentBase}/object-storage`, + }, ]; const aliasFamilies = [