Use Visual Editor with Next.js
Next.js is the framework of choice for many companies, especially those building modern websites at scale.
Next.js allows developers to use client-side, server-side, or static rendering as needed, all within the same project. Visual Editor is agnostic of these modes.
# Configure Visual Editor for a Next.js project
In common cases, the only required configuration is to specify ssgName: "nextjs"
. You may also want to specify nodeVersion
, depending on dependency requirements.
// stackbit.config.ts
import { defineStackbitConfig } from "@stackbit/types";
export default defineStackbitConfig({
stackbitVersion: "~0.6.0",
ssgName: "nextjs",
nodeVersion: "18"
// ...
});
# Dev command with cloud setup
When not working locally and using the cloud setup, the visual editor will launch the Next.js server by directly running next dev
. (It does not run npm run dev
.)
If you need to use a different command, use the devCommand
property.
# Content reload
When Visual Editor detects content changes, it will automatically call Next's router.replace()
function to refresh the current page shown in Visual Editor. This maintains client-side state and does not trigger a full page reload.
You can override this behavior in part or in full to implement site-specific optimizations. See Automatic Content Reload.
# pnpm support
The visual editor supports using pnpm with a Next.js project but requires that you set the devCommand
config option.
// stackbit.config.ts
import { defineStackbitConfig } from "@stackbit/types";
export default defineStackbitConfig({
stackbitVersion: "~0.6.0",
ssgName: "nextjs",
nodeVersion: "18",
devCommand: "node_modules/.bin/next dev -- --port {PORT} --hostname 127.0.0.1"
// ...
});
# Examples
Here are our most popular Next.js starter projects:
Did you find this doc useful?
Your feedback helps us improve our docs.