Skip to content

Add Wavelet documentation tab with full feature docs#1079

Merged
yingjunwu merged 1 commit intomainfrom
feat/wavelet-docs
Mar 25, 2026
Merged

Add Wavelet documentation tab with full feature docs#1079
yingjunwu merged 1 commit intomainfrom
feat/wavelet-docs

Conversation

@yingjunwu
Copy link
Contributor

Add comprehensive Wavelet documentation as a new top-level tab in the RisingWave docs site. Includes: overview, getting started guide, config reference, CLI reference, TypeScript SDK, React hooks, HTTP API, WebSocket protocol, JWT multi-tenant filtering, Postgres CDC sources, codegen, and MCP AI agent integration.

Description

[ Please provide a brief summary of the documentation changes and purpose. ]

Related code PR

[ Link to the related code pull request (if any). ]

Related doc issue

[ Link to the related documentation issue or task (if any). ]

Fix [ Provide the link to the doc issue here. ]

Checklist

  • I have run the documentation build locally to verify the updates are applied correctly.
  • For new pages, I have updated mint.json to include the page in the table of contents.
  • All links and references have been checked and are not broken.

Add comprehensive Wavelet documentation as a new top-level tab in the
RisingWave docs site. Includes: overview, getting started guide,
config reference, CLI reference, TypeScript SDK, React hooks, HTTP API,
WebSocket protocol, JWT multi-tenant filtering, Postgres CDC sources,
codegen, and MCP AI agent integration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 25, 2026 21:43
@mintlify
Copy link

mintlify bot commented Mar 25, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
risingwavelabs 🟢 Ready View Preview Mar 25, 2026, 9:45 PM

@yingjunwu yingjunwu merged commit cc2aa20 into main Mar 25, 2026
8 checks passed
@yingjunwu yingjunwu deleted the feat/wavelet-docs branch March 25, 2026 21:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new top-level Wavelet documentation tab to the RisingWave docs site, with a full set of Wavelet feature pages (getting started, config, CLI, SDK, server protocols, CDC sources, codegen, and MCP integration).

Changes:

  • Adds a Wavelet tab and page groups to docs.json navigation.
  • Introduces new Wavelet documentation pages under wavelet/ covering core concepts and references.
  • Adds an extra wavelet/docs-json-snippet.json navigation snippet file.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
docs.json Adds the new top-level “Wavelet” tab and page group navigation.
wavelet/overview.mdx Introduces Wavelet concepts, architecture, and package overview.
wavelet/getting-started.mdx End-to-end quickstart walkthrough (streams, views, HTTP writes, WebSocket diffs).
wavelet/config.mdx Reference for wavelet.config.ts structure and options.
wavelet/cli.mdx CLI command reference (init, dev, push, generate, status).
wavelet/sdk/client.mdx TypeScript SDK client API reference (views, streams, diffs, errors).
wavelet/sdk/react.mdx React hook usage and behavior (initWavelet, useWavelet, keyBy, params).
wavelet/server/http-api.mdx HTTP API endpoints for health/views/streams and event writes.
wavelet/server/websocket.mdx WebSocket subscription protocol and diff message format.
wavelet/server/jwt-auth.mdx JWT auth configuration and per-tenant diff filtering behavior.
wavelet/sources/postgres-cdc.mdx Postgres CDC source setup, naming, and generated DDL description.
wavelet/codegen.mdx Codegen behavior and type resolution strategy for generated clients.
wavelet/mcp.mdx MCP server setup and tool surface for AI agents.
wavelet/docs-json-snippet.json Standalone snippet intended to be copied into docs.json.

Comment on lines +41 to +46
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `viewName` | `string` | Yes | Name of the view to subscribe to |
| `options.keyBy` | `string` | No | Column to use as primary key for efficient merging |
| `options.params` | `Record<string, string>` | No | Query parameters for the initial HTTP fetch |

Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameters table uses || at the start of rows, which renders incorrectly as an extra empty column. Please update it to standard Markdown table formatting (single leading |).

Copilot uses AI. Check for mistakes.
Comment on lines +72 to +73
{data.map((row, i) => (
<tr key={i}>
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the React example, key={i} uses the array index as the React key. Since the rows include a stable identifier (player_id), prefer using that as the key to avoid incorrect re-renders when rows are inserted/removed/reordered.

Suggested change
{data.map((row, i) => (
<tr key={i}>
{data.map((row) => (
<tr key={row.player_id}>

Copilot uses AI. Check for mistakes.
Comment on lines +63 to +71
| Field | Type | Description |
|-------|------|-------------|
| `type` | `"diff"` | Message type discriminator |
| `view` | `string` | View name |
| `cursor` | `string` | RisingWave timestamp of this change |
| `inserted` | `object[]` | New rows added to the view |
| `updated` | `object[]` | Rows whose values changed (new values) |
| `deleted` | `object[]` | Rows removed from the view |

Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These tables start with ||, which creates an empty first column in Markdown rendering. Please change to a single leading | in the header and body rows (and apply across tables in this file).

Copilot uses AI. Check for mistakes.
## Prerequisites

- **Node.js** >= 20
- **RisingWave** — Wavelet will start it automatically in dev mode if you have it [installed](/deploy/risingwave-docker-compose.mdx), or you can use Docker
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link includes a .mdx file extension (/deploy/risingwave-docker-compose.mdx). Internal links in this repo typically omit the extension (e.g., /deploy/risingwave-docker-compose). Please update to the routed path to prevent broken links.

Suggested change
- **RisingWave** — Wavelet will start it automatically in dev mode if you have it [installed](/deploy/risingwave-docker-compose.mdx), or you can use Docker
- **RisingWave** — Wavelet will start it automatically in dev mode if you have it [installed](/deploy/risingwave-docker-compose), or you can use Docker

Copilot uses AI. Check for mistakes.
Comment on lines +57 to +61
| Type | RisingWave SQL type | TypeScript type |
|------|-------------------|-----------------|
| `'string'` | `VARCHAR` | `string` |
| `'int'` | `INT` | `number` |
| `'float'` | `DOUBLE` | `number` |
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tables here begin with ||, which renders as an extra empty column in Markdown. Change the header row and separator rows to start with a single | (and fix other tables in this file similarly).

Copilot uses AI. Check for mistakes.
Comment on lines +26 to +30
| Option | Type | Required | Description |
|--------|------|----------|-------------|
| `url` | `string` | Yes | Wavelet server URL (HTTP or WebSocket) |
| `token` | `string \| () => string \| Promise<string>` | No | JWT token or token provider function |

Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This options table starts each row with ||, which will render an unintended blank column. Convert it to a standard Markdown table with a single leading | (and fix other tables in this doc as well).

Copilot uses AI. Check for mistakes.
description: "Subscribe to computed SQL results over WebSocket. Wavelet turns RisingWave materialized views into live APIs with typed SDKs, JWT multi-tenant filtering, and AI agent tooling."
---

Wavelet is a real-time backend that sits on top of [RisingWave](/get-started/intro.mdx). You define SQL views in a config file, and Wavelet turns them into live APIs that push diffs to your frontend over WebSocket.
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The internal link includes the source file extension (/get-started/intro.mdx). Elsewhere in this docs repo, internal links omit .mdx and use the route path (e.g., /get-started/intro). Please update the link to the routed path to avoid broken links in the site build.

Suggested change
Wavelet is a real-time backend that sits on top of [RisingWave](/get-started/intro.mdx). You define SQL views in a config file, and Wavelet turns them into live APIs that push diffs to your frontend over WebSocket.
Wavelet is a real-time backend that sits on top of [RisingWave](/get-started/intro). You define SQL views in a config file, and Wavelet turns them into live APIs that push diffs to your frontend over WebSocket.

Copilot uses AI. Check for mistakes.
Comment on lines +109 to +116
| Config type | TypeScript type |
|-------------|----------------|
| `'string'` | `string` |
| `'int'` | `number` |
| `'float'` | `number` |
| `'boolean'` | `boolean` |
| `'timestamp'` | `string` |
| `'json'` | `unknown` |
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These tables use || at the start of rows, which produces an empty first column in Markdown. Please change them to standard Markdown tables with a single leading | (and apply across the other tables in this file).

Copilot uses AI. Check for mistakes.
Comment on lines +55 to +62
| Field | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `type` | `'postgres'` | Yes | — | Source type (only Postgres supported currently) |
| `connection` | `string` | Yes | — | PostgreSQL connection URL |
| `tables` | `string[]` | Yes | — | Tables to capture via CDC |
| `slotName` | `string` | No | `wavelet_{sourceName}` | Logical replication slot name |
| `publicationName` | `string` | No | `wavelet_{sourceName}_pub` | Publication name |

Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tables in this doc use || as the row prefix, which creates an extra blank column when rendered. Update to standard Markdown table formatting with a single leading |.

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +49
{
"_comment": "Add this tab to navigation.versions[0].tabs[] in docs.json",
"tab": "Wavelet",
"icon": "bolt",
"groups": [
{
"group": "Getting Started",
"pages": [
"wavelet/overview",
"wavelet/getting-started",
"wavelet/config"
]
},
{
"group": "CLI",
"pages": [
"wavelet/cli"
]
},
{
"group": "SDK",
"pages": [
"wavelet/sdk/client",
"wavelet/sdk/react"
]
},
{
"group": "Server",
"pages": [
"wavelet/server/http-api",
"wavelet/server/websocket",
"wavelet/server/jwt-auth"
]
},
{
"group": "Data Sources",
"pages": [
"wavelet/sources/postgres-cdc"
]
},
{
"group": "Advanced",
"pages": [
"wavelet/codegen",
"wavelet/mcp"
]
}
]
}
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This docs-json-snippet.json file does not appear to be referenced anywhere in the docs build and duplicates the change already made in docs.json. Consider removing it to avoid confusion and drift (future edits might update one but not the other).

Suggested change
{
"_comment": "Add this tab to navigation.versions[0].tabs[] in docs.json",
"tab": "Wavelet",
"icon": "bolt",
"groups": [
{
"group": "Getting Started",
"pages": [
"wavelet/overview",
"wavelet/getting-started",
"wavelet/config"
]
},
{
"group": "CLI",
"pages": [
"wavelet/cli"
]
},
{
"group": "SDK",
"pages": [
"wavelet/sdk/client",
"wavelet/sdk/react"
]
},
{
"group": "Server",
"pages": [
"wavelet/server/http-api",
"wavelet/server/websocket",
"wavelet/server/jwt-auth"
]
},
{
"group": "Data Sources",
"pages": [
"wavelet/sources/postgres-cdc"
]
},
{
"group": "Advanced",
"pages": [
"wavelet/codegen",
"wavelet/mcp"
]
}
]
}
{}

Copilot uses AI. Check for mistakes.
yingjunwu added a commit that referenced this pull request Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants