Skip to content

Commit 4de17c9

Browse files
docs: refactor sidebar navigation, rename "Context Engineers" to "Developers", and expand Mesh deployment guides. (#2080)
* Added MCP mesh deploy docs to deco CMS docs * Update documentation and navigation for MCP Mesh and Studio - Refactored sidebar component to prioritize MCP Mesh and Studio documentation. - Updated package.json scripts for documentation deployment. - Removed outdated context engineers documentation and redirected to developers. - Enhanced introduction and deployment guides for clarity and added official links. - Improved navigation links to reflect recent changes in documentation structure. * Update PostgreSQL connection examples in local Docker Compose documentation - Changed `DATABASE_URL` examples to use service name `postgres` instead of `localhost` for containerized PostgreSQL. - Updated local PostgreSQL example to use `host.docker.internal` for better compatibility with Docker Desktop. - Added a callout note clarifying the use of `localhost` within containers and connection instructions for local and remote PostgreSQL setups.
1 parent 18b8607 commit 4de17c9

File tree

16 files changed

+612
-133
lines changed

16 files changed

+612
-133
lines changed

apps/docs/client/src/components/ui/Sidebar.astro

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,11 @@ function groupLegacyAdminSections(nodes: TreeNode[]): TreeNode[] {
176176
}
177177
: null;
178178
179-
// Keep legacy guides grouped and listed before Mesh/Studio.
180-
// This also ensures Mesh isn't forced to the top by this grouping layer.
179+
// Put MCP Mesh and MCP Studio at the top, then group legacy docs under Legacy Admin.
181180
const next: TreeNode[] = [...files];
182-
if (legacyFolder) next.push(legacyFolder);
183181
if (mcpMesh) next.push(mcpMesh);
184182
if (mcpStudio) next.push(mcpStudio);
183+
if (legacyFolder) next.push(legacyFolder);
185184
return next;
186185
}
187186

apps/docs/client/src/components/ui/Sidebar.tsx

Lines changed: 38 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ function TreeItem({
130130
}`}
131131
>
132132
{/* Indentation spacer for nested items */}
133-
{node.depth > 1 && <div className="w-6 shrink-0" />}
133+
{node.depth > 0 && (
134+
<div className="shrink-0" style={{ width: `${node.depth * 24}px` }} />
135+
)}
134136

135137
{/* Icon */}
136138
{node.type === "folder" ? (
@@ -243,35 +245,21 @@ function TreeList({
243245
needsSeparator = true;
244246
}
245247

246-
// Add section title for root folders
247-
const needsSectionTitle = node.type === "folder" && node.depth === 0; // All root folders get section titles
248-
249248
return (
250249
<React.Fragment key={node.id}>
251250
{needsSeparator && (
252251
<li className="my-3">
253252
<div className="h-px bg-border/50" />
254253
</li>
255254
)}
256-
{needsSectionTitle && (
257-
<li className="mt-3 first:mt-0">
258-
<div className="px-3 py-2">
259-
<h3 className="text-sm font-medium text-foreground">
260-
{translations[`sidebar.section.${node.name}`] || node.name}
261-
</h3>
262-
</div>
263-
</li>
264-
)}
265-
{!needsSectionTitle && (
266-
<TreeItem
267-
node={node}
268-
isVisible={isVisible}
269-
isExpanded={isExpanded}
270-
onToggle={onToggle}
271-
locale={locale}
272-
translations={translations}
273-
/>
274-
)}
255+
<TreeItem
256+
node={node}
257+
isVisible={isVisible}
258+
isExpanded={isExpanded}
259+
onToggle={onToggle}
260+
locale={locale}
261+
translations={translations}
262+
/>
275263
</React.Fragment>
276264
);
277265
})}
@@ -289,10 +277,35 @@ export default function Sidebar({ tree, locale, translations }: SidebarProps) {
289277
);
290278
const initialState = new Map();
291279

292-
// Initialize tree state - default to expanded
280+
// If the current page is inside a folder, ensure its ancestor folders are expanded
281+
// so the active item is visible (even if the default is collapsed).
282+
const currentPath = globalThis.location.pathname;
283+
const relativePath = currentPath.replace(`/${locale}/`, "");
284+
const parts = relativePath.split("/").filter(Boolean);
285+
const expandedAncestors = new Set<string>();
286+
for (let i = 1; i <= parts.length - 1; i++) {
287+
expandedAncestors.add(parts.slice(0, i).join("/"));
288+
}
289+
290+
// Initialize tree state - default to expanded (with a few collapsed-by-default sections)
293291
tree.forEach((node) => {
294292
if (node.type === "folder") {
295-
initialState.set(node.id, savedState[node.id] !== false);
293+
const saved = savedState[node.id];
294+
// Default: show "Legacy Admin" open, but keep its sections closed (as a compact TOC).
295+
const collapsedByDefault = new Set<string>([
296+
"admin-decocms-com/getting-started",
297+
"admin-decocms-com/no-code-guides",
298+
"admin-decocms-com/full-code-guides",
299+
]);
300+
const defaultExpanded = collapsedByDefault.has(node.id) ? false : true;
301+
302+
const shouldExpand =
303+
typeof saved === "boolean" ? saved : defaultExpanded;
304+
305+
initialState.set(
306+
node.id,
307+
expandedAncestors.has(node.id) ? true : shouldExpand,
308+
);
296309
}
297310
});
298311

apps/docs/client/src/content/en/getting-started/context-engineers.mdx renamed to apps/docs/client/src/content/en/getting-started/developers.mdx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: For Context Engineers
2+
title: For Developers
33
description: Set up your local development environment and deploy your first MCP server
44
icon: Code
55
---
@@ -23,15 +23,15 @@ npm install
2323
deco login
2424
```
2525

26-
Opens browser for authentication. You can create a new account if you don’t have one.
26+
Opens browser for authentication. You can create a new account if you don’t have one.
2727

2828
### Local Development
2929

3030
```bash
3131
npm run dev
3232
```
3333

34-
Starts local server on port 8787 with hot reload enabled. The preview URL is accessible anywhere now.
34+
Starts local server on port 8787 with hot reload enabled. The preview URL is accessible anywhere now.
3535

3636
### Project Structure
3737

@@ -49,11 +49,12 @@ The server serves both:
4949
### Deploy
5050

5151
When you are ready to share your MCP:
52+
5253
```bash
5354
npm run deploy
5455
```
5556

56-
This builds and deploys your MCP app to Cloudflare Workers, making it available on your organization's private registry.
57+
This builds and deploys your MCP app to Cloudflare Workers, making it available on your organization's private registry.
5758

5859
## Understanding the Current Workflow
5960

@@ -108,3 +109,5 @@ deco project import --from ./my-project --org <org>
108109
**Get Help:** [Discord](https://decocms.com/discord)
109110

110111
**Non-developer?** See [For AI Builders](/en/getting-started/ai-builders) for no-code workflow.
112+
113+

apps/docs/client/src/content/en/introduction.mdx

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,51 @@ import Callout from "../../components/ui/Callout.astro";
88

99
![deco](https://assets.decocache.com/mcp/9a3facd8-1199-4635-becc-bdc3f5ee7ab1/deco-banner-capy.png)
1010

11-
## Welcome
12-
13-
These docs are primarily **developer docs** for **MCP Mesh** and the broader **deco CMS** platform.
14-
1511
## What is deco CMS?
1612

1713
**deco CMS** is an open-source **Context Management System** for AI-native operations.
1814

19-
If MCP is the standard interface for tool access, deco CMS is the **production layer around it**: connect MCP servers, enforce governance, and get observability as usage scales across teams and environments.
15+
If MCP is the standard interface for tool access, deco CMS is the **production layer around it**: connect MCP servers, enforce governance, and get observability as usage scales across teams and environments. The broader platform also includes a **builder framework** (MCP Studio — coming soon, replacing the legacy admin) and **distribution capabilities** (pre-built modules and store).
16+
17+
**Official links:**
18+
19+
- **deco CMS**: [decocms.com](https://www.decocms.com/)
20+
- **The MCP Mesh**: [decocms.com/mesh](https://www.decocms.com/mesh)
21+
- **MCP Studio**: [decocms.com/mcp-studio](https://www.decocms.com/mcp-studio)
22+
23+
If you know us from before (as **deco.cx**) and you’re looking for **headless CMS + storefront** capabilities, visit [deco.cx](https://www.decocms.com/use-case/deco-cx). See the deco.cx docs at [docs.deco.cx](https://docs.deco.cx/en/getting-started/overview).
24+
25+
## Quick start (Mesh)
26+
27+
### Option A: one-command local Mesh setup
28+
29+
```bash
30+
npx @decocms/mesh init
31+
```
32+
33+
### Option B: run from source
34+
35+
```bash
36+
git clone https://github.com/decocms/mesh.git
37+
cd mesh
38+
bun install
39+
bun run dev
40+
```
41+
42+
## Deploy (Mesh)
43+
44+
- **[Local: Docker Compose](/en/mcp-mesh/deploy/local-docker-compose)**
45+
- **[Kubernetes: Helm Chart](/en/mcp-mesh/deploy/kubernetes-helm-chart)**
2046

2147
<Callout type="warning">
2248
**Docs split (quick guide):**
2349

24-
- **MCP Mesh** → Self-hosting, deploying, and operating the Mesh (recommended).
50+
- **The MCP Mesh** → Self-hosting, deploying, and operating the Mesh (recommended).
2551
- **Legacy Admin** → If you’re using `admin.decocms.com` (still supported, **deprecated soon**).
2652

2753
We’re launching **MCP Studio** (on top of Mesh), which will bring the current SaaS admin capabilities to the Mesh (including a hosted option by us) and replace the legacy SaaS over time.
2854
</Callout>
2955

30-
## Start here (most common paths)
31-
32-
- **[Deploy MCP Mesh locally (Docker Compose)](/en/mcp-mesh/deploy/local-docker-compose)**
33-
- **[Deploy MCP Mesh on Kubernetes (Helm)](/en/mcp-mesh/deploy/kubernetes-helm-chart)**
34-
3556
## Problem (and what the Mesh fixes)
3657

3758
When AI moves from demos to production, teams usually hit the same constraints:
@@ -41,18 +62,18 @@ When AI moves from demos to production, teams usually hit the same constraints:
4162
- **Operational blind spots**: debugging is slow; failures and costs are hard to trace end-to-end
4263
- **Context obesity**: bloated prompts and tool lists degrade quality and increase cost
4364

44-
MCP Mesh centralizes those cross-cutting concerns **once** so you don’t rebuild them in every agent/app.
65+
The MCP Mesh centralizes those cross-cutting concerns **once** so you don’t rebuild them in every agent/app.
4566

4667
## Platform structure: Mesh → Studio → Distribution
4768

48-
### MCP Mesh (foundation)
69+
### The MCP Mesh (foundation)
4970
An open-source **control plane for MCP traffic**. It sits between your MCP clients (Cursor, Claude, VS Code, custom agents) and your MCP servers, providing a unified layer for auth, policy, and observability.
5071

5172
### MCP Studio (development)
5273
A no-code admin + SDK to package MCP capabilities as reusable building blocks.
5374

5475
<Callout type="info">
55-
**Coming soon:** This is the successor to the current SaaS admin, built on top of MCP Mesh.
76+
**Coming soon:** This is the successor to the current SaaS admin, built on top of the MCP Mesh.
5677
</Callout>
5778

5879
### MCP Apps & Store (distribution)
@@ -73,26 +94,9 @@ MCP gives you a standard interface. deco CMS provides the **control plane** arou
7394
- **Auditable**: centralized policies, logs, and traces across tool + model calls
7495
- **No lock-in**: your context, your infrastructure
7596

76-
## Quick start
77-
78-
### Option A: one-command local Mesh setup
79-
80-
```bash
81-
npx @decocms/mesh init
82-
```
83-
84-
### Option B: run from source
85-
86-
```bash
87-
git clone https://github.com/decocms/mesh.git
88-
cd mesh
89-
bun install
90-
bun run dev
91-
```
92-
9397
## Legacy Admin quick start (admin.decocms.com)
9498

9599
If you’re using the current SaaS admin at `admin.decocms.com` (still supported, deprecated soon), start here:
96100

97101
- **[For AI Builders](/en/getting-started/ai-builders)**
98-
- **[For Context Engineers](/en/getting-started/context-engineers)**
102+
- **[For Developers](/en/getting-started/developers)**

0 commit comments

Comments
 (0)