From 7e4d8a0176a5382b6e9475e5df087b56fd8903d0 Mon Sep 17 00:00:00 2001 From: Prakash Sundaresan Date: Mon, 7 Sep 2026 23:13:14 +0000 Subject: [PATCH] feat(docs): two-product shell and the approved tagline (WS4) Tagline: docusaurus.config.js carried a FOURTH tagline nobody had decided on ("A radically simpler way to build and deploy production-ready cloud apps"). Replaced with the product tagline, which is what a docs site should carry. Structure: ADD, do not move. Every one of the 84 existing doc URLs is unchanged, so none of the 49 entries in redirects.json needed touching and no new redirect was added. The five sections that were top-level navbar items (Overview, Tutorials, Concepts, Providers, CLI) are now grouped in a "Deploy" dropdown, and "Station" is a new top-level item. Added docs/station/station.mdx as a placeholder at /docs/station, plus a stationSidebar entry. It states plainly that Station is in development and contrasts the two products. Verified with a local docusaurus build: exit 0, /docs/intro, /docs/concepts, /docs/tutorials and /docs/providers all still build, /docs/station builds, and the rendered navbar shows one Deploy dropdown plus Station. Note for reviewers: `npm run build` runs scripts/prebuild.sh, which needs Go to generate docs/cli. Without it the CLI sidebar is empty and EVERY page fails to render ("Sidebar with ID cliSidebar doesn't have anything to be linked to"). That happens on main too and is not caused by this change. NOT ANNOUNCED: this puts "Defang Station" and "Deploy" on public docs. Hold until launch. Co-Authored-By: Claude Opus 5 --- docs/station/station.mdx | 26 ++++++++++++++++++ docusaurus.config.js | 57 +++++++++++++++++++++++----------------- sidebars.js | 3 +++ 3 files changed, 62 insertions(+), 24 deletions(-) create mode 100644 docs/station/station.mdx diff --git a/docs/station/station.mdx b/docs/station/station.mdx new file mode 100644 index 0000000000..0306cc7a47 --- /dev/null +++ b/docs/station/station.mdx @@ -0,0 +1,26 @@ +--- +sidebar_position: 1 +title: Defang Station +description: Defang Station is a persistent cloud workspace for AI coding agents. +--- + +# Defang Station + +Defang Station is a persistent cloud workspace for AI coding agents. Your agent +keeps running when you close your laptop, and the work it does stays where you +left it. + +:::info +Station is in development. This section is a placeholder so the two products +have a home in the docs. Documentation lands when Station ships. +::: + +## How it relates to Defang Deploy + +| | What it is for | +|---|---| +| **[Defang Deploy](/docs/intro)** | Getting an app or an agent into production on your own cloud | +| **Defang Station** | Giving an AI coding agent a machine to work on | + +Station runs on Defang's cloud. It is open source, so you can also run it on +your own infrastructure. Defang Deploy still deploys into your cloud account. diff --git a/docusaurus.config.js b/docusaurus.config.js index a52bfab2b7..40b7fa6f65 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -17,8 +17,7 @@ const config = { }, ], title: "Defang", - tagline: - "A radically simpler way to build and deploy production-ready cloud apps", + tagline: "Develop Once, Deploy Anywhere.", favicon: "/img/favicon.ico", headTags: [ { @@ -78,33 +77,43 @@ const config = { href: "https://defang.io/", }, items: [ + // Defang Deploy keeps every existing URL. The dropdown only groups the + // sections that were previously top-level, so no redirects are needed. { - to: "/docs/intro", - position: "left", - label: "Overview", - }, - { - type: "docSidebar", - sidebarId: "tutorialsSidebar", - label: "Tutorials", - position: "left", - }, - { - type: "docSidebar", - sidebarId: "conceptsSidebar", - label: "Concepts", - position: "left", - }, - { - type: "docSidebar", - sidebarId: "providersSidebar", - label: "Providers", + type: "dropdown", + label: "Deploy", position: "left", + items: [ + { + to: "/docs/intro", + label: "Overview", + }, + { + type: "docSidebar", + sidebarId: "tutorialsSidebar", + label: "Tutorials", + }, + { + type: "docSidebar", + sidebarId: "conceptsSidebar", + label: "Concepts", + }, + { + type: "docSidebar", + sidebarId: "providersSidebar", + label: "Providers", + }, + { + type: "docSidebar", + sidebarId: "cliSidebar", + label: "CLI", + }, + ], }, { type: "docSidebar", - sidebarId: "cliSidebar", - label: "CLI", + sidebarId: "stationSidebar", + label: "Station", position: "left", }, { to: "https://defang.io/blog", label: "Blog", position: "left" }, diff --git a/sidebars.js b/sidebars.js index 64894bdc43..9eb02e6248 100644 --- a/sidebars.js +++ b/sidebars.js @@ -33,6 +33,9 @@ const sidebars = { cliSidebar: [ { type: 'autogenerated', dirName: 'cli' }, ], + stationSidebar: [ + { type: 'autogenerated', dirName: 'station' }, + ], }; module.exports = sidebars;