Add Wavelet documentation tab with full feature docs#1079
Conversation
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>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
There was a problem hiding this comment.
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.jsonnavigation. - Introduces new Wavelet documentation pages under
wavelet/covering core concepts and references. - Adds an extra
wavelet/docs-json-snippet.jsonnavigation 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. |
| | 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 | | ||
|
|
There was a problem hiding this comment.
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 |).
| {data.map((row, i) => ( | ||
| <tr key={i}> |
There was a problem hiding this comment.
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.
| {data.map((row, i) => ( | |
| <tr key={i}> | |
| {data.map((row) => ( | |
| <tr key={row.player_id}> |
| | 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 | | ||
|
|
There was a problem hiding this comment.
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).
| ## 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 |
There was a problem hiding this comment.
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.
| - **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 |
| | Type | RisingWave SQL type | TypeScript type | | ||
| |------|-------------------|-----------------| | ||
| | `'string'` | `VARCHAR` | `string` | | ||
| | `'int'` | `INT` | `number` | | ||
| | `'float'` | `DOUBLE` | `number` | |
There was a problem hiding this comment.
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).
| | 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 | | ||
|
|
There was a problem hiding this comment.
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).
| 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. |
There was a problem hiding this comment.
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.
| 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. |
| | Config type | TypeScript type | | ||
| |-------------|----------------| | ||
| | `'string'` | `string` | | ||
| | `'int'` | `number` | | ||
| | `'float'` | `number` | | ||
| | `'boolean'` | `boolean` | | ||
| | `'timestamp'` | `string` | | ||
| | `'json'` | `unknown` | |
There was a problem hiding this comment.
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).
| | 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 | | ||
|
|
There was a problem hiding this comment.
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 |.
| { | ||
| "_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" | ||
| ] | ||
| } | ||
| ] | ||
| } |
There was a problem hiding this comment.
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).
| { | |
| "_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" | |
| ] | |
| } | |
| ] | |
| } | |
| {} |
This reverts commit cc2aa20.
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
mint.jsonto include the page in the table of contents.