VegaStack Pages docs
Home Open app

Getting started

Quickstart

Sign up or self-host, create a page from source or template, and share it for review.

This page gets you to a shared review page. Pick managed hosting or self-hosting first.

Option A: Managed hosting

  1. Open pages.vegastack.com/app/signup.
  2. Enter your display name, email, and a workspace name.
  3. Check your inbox for the magic link and click it.
  4. Open the seeded workspace page.

Managed hosting runs on the same app and storage model as self-hosting. VegaStack operates the infrastructure.

Managed MCP endpoint:

https://pages.vegastack.com/mcp

Option B: Self-host on Cloudflare

git clone https://github.com/vegastack/vegastack-pages.git
cd vegastack-pages
corepack enable
pnpm install
export VPG_BASE_URL=https://pages.example.com
export VPG_SETUP_TOKEN="$(openssl rand -base64 32)"
pnpm deploy:cloudflare -- --apply-migrations --deploy

Open https://pages.example.com/app/setup and enter the same VPG_SETUP_TOKEN value. The full Cloudflare install reference is in install/cloudflare/README.md.

Publish a page

From the app, click New page, paste Markdown or MDX, and save.

To start from a template, click New from template and choose a built-in template such as PRD, RFC, runbook, launch plan, or meeting notes.

Connect an MCP client

Three ways to connect, from least to most setup:

  • Browser-based clients (Claude.ai, ChatGPT custom connectors, Cursor remote MCP, …). Paste https://pages.vegastack.com/mcp (or your self-host equivalent) into the connector form. The client discovers OAuth via /.well-known/oauth-protected-resource, opens a consent popup, you sign in and pick a workspace, done.
  • Manual bearer. Open Settings → My Connections, click Create token, copy the value. Use it as Authorization: Bearer <token> from Claude Desktop, Cursor local MCP, MCP-over-stdio bridges, or anything that accepts a static token.
  • CLI login. vpg login starts the browser device-code flow against the managed service. For CI or headless use, vpg login --token <token> stores a manual bearer locally and pins a workspace.

From an MCP client, call:

await mcp.call("create_page", {
  workspace_id: "wks_123",
  title: "Plan",
  source_type: "markdown",
  source: "# Plan\n\nDraft content for review.",
});

Or create from a template — create_page takes an optional template_id:

await mcp.call("create_page", {
  workspace_id: "wks_123",
  template_id: "prd",
  title: "Search redesign",
  properties: {
    owner: "platform",
    status: "review",
  },
});

From the CLI:

vpg pages create --title "Plan" --file ./plan.md
vpg pages create --template prd --title "Search redesign" --set owner=platform --set status=review

# Same calls, --agent mode (single-line JSON to stdout, exit code 0–8):
vpg --agent pages create --template prd --title "Search redesign" --set owner=platform

Share it

Open the share dialog from the page header. Choose Comment, copy the link, and send it. The page lives at /p/page-title-abc123000000 and is reachable by anyone with the link.

Let the agent wait

await mcp.call("wait_for_review", {
  workspace_id: "wks_123",
  page_id: "pg_123",
  until: "first_response",
  timeout_ms: 600000,
});

Or from a shell / agent harness:

vpg pages wait pg_123 --until first-response --timeout 600
vpg --agent pages wait pg_123 --until first-response --timeout 600

When the reviewer comments, the agent can read the thread via fetch with include=["comments","edit_tokens"], write a update_page find/replace with a current base_version_id, reply through update_thread, and wait again. See MCP and CLI for the full reference.

Last updated