# Description of Changes Adds a new Next.js quickstart template and documentation. **New Template (`templates/nextjs-ts/`):** - Next.js 15 App Router with TypeScript SpacetimeDB module - Pre-configured `SpacetimeDBProvider` with client-side connection handling - Environment variable support (`NEXT_PUBLIC_SPACETIMEDB_HOST`, `NEXT_PUBLIC_SPACETIMEDB_DB_NAME`) - SSR-safe implementation with `"use client"` directives - Example page demonstrating `useTable` and `useReducer` hooks - Dev server runs on port 3001 to avoid conflict with SpacetimeDB on port 3000 - Pre-generated module bindings included **New Documentation (`docs/.../00200-nextjs.md`):** - 8-step quickstart consistent with other quickstarts (React, TypeScript, Rust, C#) - Covers: project creation, structure, tables/reducers, CLI testing - Next.js-specific: provider pattern, SSR considerations, env var configuration, React hooks usage **Updated `templates-list.json`:** - Added `nextjs-ts` to highlights and templates list # API and ABI breaking changes None. # Expected complexity level and risk 1 - Adds a new template and docs without modifying existing functionality. # Testing - [ ] Run `spacetime dev --template nextjs-ts my-test-app` and verify the app starts - [ ] Navigate to http://localhost:3001 and confirm the UI loads and connects - [ ] Add a person via the UI and verify it appears in the list - [ ] Verify env vars work: set `NEXT_PUBLIC_SPACETIMEDB_URI` and `NEXT_PUBLIC_SPACETIMEDB_MODULE` - [ ] Verify the quickstart doc renders correctly in the docs site - [ ] Confirm Next.js appears in the sidebar after React
SpacetimeDB Documentation
This repository contains the markdown files which are used to display documentation on our website. This documentation is built using Docusaurus.
Making Edits
To make changes to our docs, you can open a pull request in this repository. You can typically edit the files directly using the GitHub web interface, but you can also clone our repository and make your edits locally.
Instructions
- Fork our repository
- Clone your fork:
git clone ssh://git@github.com/<username>/SpacetimeDB
cd SpacetimeDB/docs
- Make your edits to the docs that you want to make + test them locally (See Testing Locally)
- Commit your changes:
git add .
git commit -m "A specific description of the changes I made and why"
- Push your changes to your fork as a branch
git checkout -b a-branch-name-that-describes-my-change
git push -u origin a-branch-name-that-describes-my-change
- Go to our GitHub and open a PR that references your branch in your fork on your GitHub
CLI Reference Section
To regenerate the CLI reference section, run pnpm generate-cli-docs.
Docusaurus Documentation
For more information on how to use Docusaurus, see the Docusaurus documentation.
Testing Locally
Installation
- Make sure you have Node.js installed (version 22 or higher is recommended).
- Clone the repository and navigate to the
docsdirectory. - Install the dependencies:
pnpm install - Run the development server:
pnpm dev, which will start a local server and open a browser window. All changes you make to the markdown files will be reflected live in the browser.
Adding new pages
All of our directory and file names are prefixed with a five-digit number which determines how they're sorted. We started with the hundreds place as the smallest significant digit, to allow using the tens and ones places to add new pages between. When adding a new page in between two existing pages, choose a number which:
- Doesn't use any more significant figures than it needs to.
- Is approximately halfway between the previous and next page.
For example, if you want to add a new page between 00300-foo and 00400-bar, name it 00350-baz. To add a new page between 00350-baz and 00400-bar, prefer 00370-quux or 00380-quux, rather than 00375-quux, to avoid populating the ones place.
To add a new page after all previous pages, use the smallest multiple of 100 larger than all other pages. For example, if the highest-numbered existing page is 01350-abc, create 01400-def.
Best practices
- Use relative links for linking between documentation pages, as this will ensure that links work correctly with versioning and localization.
License
This documentation repository is licensed under Apache 2.0. See LICENSE.txt for more details