Next.jsReactStarter

surveyjs-shadcn-starter — Next.js Starter Template

By surveyjs

A SurveyJS starter template built on shadcn/ui and the Next.js App Router, with a built-in multi-step checkout form driven by survey.json.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-15View source

What stands out

A quick read of the recorded project description.

01

A Next.js App Router project generated by `shadcn init`, using Tailwind 4 and the `base-nova` style

02

A multi-step checkout form rendered by SurveyJS from root `survey.json`, including a cart dynamic matrix and calculated total

03

Through the adapter stylesheet bundled with `survey-core`, draws colors, border radius, and spacing from shadcn design tokens and follows light/dark themes

04

The in-browser Edit JSON panel can apply a modified definition, view linter results, or reset, but does not save anything

05

Can be installed as a shadcn component into an existing app, adding two files and the `survey-core` and `survey-react-ui` packages

06

The README states there are no environment variables, no database, and no secrets

Template Details

This is a Next.js App Router project generated by `shadcn init`, using Tailwind 4 and the `base-nova` style, with a multi-step checkout form added. The form is rendered by SurveyJS from `survey.json` in the project root, and its content includes cart (dynamic matrix with calculated total), contact, shipping, payment, and review steps. Through the adapter stylesheet bundled with `survey-core`, the form draws colors, border radius, and spacing from shadcn design tokens and follows light/dark theme switching.

The README states the project has no environment variables, database, or secrets. The form definition is plain JSON in the root directory, so you can directly modify the title or add questions; you can also apply a modified definition in the browser's Edit JSON panel, view linter results, or reset to the initial definition. That panel does not save anything and loses changes on refresh. The README mentions that you can visually design the form with the SurveyJS form builder, then paste the JSON to overwrite `survey.json`.

The README also explains how to add the form to an existing shadcn app: install via `npx shadcn@latest add`, which adds two files, `components/survey-form.tsx` and `survey.json`, plus two npm packages, `survey-core` and `survey-react-ui`, and does not add any shadcn components. The README notes that the host for that installation address is not yet live; until then, run `npm run build && npm start` locally and add from `http://localhost:3000/r/survey-form.json`. The component reports completion via the `onComplete` prop; passing `prefillData` adds a "Prefill demo data" button that fills the current page. Saving responses requires your own integration, and the README points to the SurveyJS backend integration documentation.

The README makes clear that this template keeps only one page and one form; for larger needs, refer to the full SurveyJS demos, the MIT demo app, or server-side integration. Regarding dependency strategy, the README explains that the repository keeps `package-lock.json`, and `package.json` uses caret ranges so `npm ci` can reproduce the tested dependency tree; weekly CI installs that day's `survey-core` and `survey-react-ui` on top of it for build and smoke tests, but does not commit any changes, leaving lockfile updates to Renovate or Dependabot via reviewed PRs.

Next.jsReactStarter

Is it right for your project?

Use Cases

  • As a starter template for building a project that combines SurveyJS and shadcn/ui from scratch
  • Modify `survey.json` locally and immediately view the rendered multi-step form
  • Experiment with form definitions in the browser Edit JSON panel and view linter feedback
  • Install `components/survey-form.tsx` and `survey.json` into an existing shadcn app
  • Use the `onComplete` and `prefillData` props to hook up form completion callbacks and prefill demo data

Suitable For

  • Developers who want to present a SurveyJS multi-step form with shadcn/ui styling
  • Teams that need a SurveyJS starter project that can be cloned and has a reproducible dependency tree
  • Projects planning to integrate their own backend to save form responses
  • People who want to quickly experiment with form definitions by editing JSON first

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, run `npm install` and then `npm run dev`; you can also create a new project with `npx create-next-app@latest --example <repository URL> my-app`

  2. 2

    The README states no environment variables, database, or secrets are required

  3. 3

    When adding the form to an existing shadcn app, the README notes that the host for the installation address is not yet live; first run `npm run build && npm start` locally, then add from `http://localhost:3000/r/survey-form.json`

  4. 4

    To change the shadcn style, modify one import line in `survey-form.tsx` to point to `survey-core/themes/adapters/shadcn-<style>.css`, where `<style>` corresponds to the style in `components.json`

  5. 5

    Saving responses requires your own implementation; the README points to the SurveyJS backend integration documentation and notes that the handler function in `survey-form.tsx` marks the integration point

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.

Must comply with when using

  • You may use, modify, commercialize, and distribute the code of that version for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
  • When installing the form into an existing shadcn app, the README notes that the host for the installation address is not yet live; until then, run npm run build && npm start locally and add from http://localhost:3000/r/survey-form.json.
  • Saving form responses requires your own backend integration; the README only points to the SurveyJS backend integration documentation, and the template itself does not include a storage implementation.
  • This template keeps only one page and one form; larger needs require referring to other SurveyJS demos or extending it yourself.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

> The host is not live yet. Until it is, run `npm run build && npm start` here and add from `http://localhost:3000/r/survey-form.json`.

Original README

Saving the response is yours to wire: the handler in `survey-form.tsx` marks the spot — see [SurveyJS backend integration](https://surveyjs.io/backend-integration).

Original README

This starter stays one page and one form. Anything bigger has a home already:

Original README
https://github.com/surveyjs/surveyjs-shadcn-starter/blob/main/LICENSEhttps://github.com/surveyjs/surveyjs-shadcn-starter/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-15. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 85 / 100
Technologies
Next.js · React
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-09-25
Screenshot last checked
2026-10-15

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15

Inspect the recorded source material

SHA-256: 2d71074780304514ca44ae44f23ab92efe02411c027d070f46f165d5098665e6

2026-10-15T00:08:13.157Z

Source file / repository
# surveyjs-shadcn-starter

SurveyJS in a shadcn/ui app — a themed multi-step form, ready to start from. MIT.

A fresh `shadcn init` project (Next.js App Router, Tailwind 4, the `base-nova` style) with one addition: a multi-step checkout form — a cart with a dynamic matrix and computed totals, contact, shipping, payment, review — rendered by [SurveyJS](https://surveyjs.io) from `survey.json`. The form takes its colors, radius and spacing from your shadcn tokens through the adapter stylesheet that ships in `survey-core`, and follows the light/dark toggle.

## Quick start

```bash
git clone https://github.com/surveyjs/surveyjs-shadcn-starter
cd surveyjs-shadcn-starter
npm install
npm run dev
```

Or start a new project from it:

```bash
npx create-next-app@latest --example https://github.com/surveyjs/surveyjs-shadcn-starter my-app
```

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fsurveyjs%2Fsurveyjs-shadcn-starter)

No environment variables, no database, no keys.

## First thing to try: edit `survey.json`

The form is plain JSON at the project root. Change a title, add a question, and the page reloads with it. To design a form visually, build it in the [SurveyJS form builder](https://surveyjs.io/create-free-survey) and paste its JSON over `survey.json`.

The **Edit JSON** panel under the form does the same in the browser: apply a changed definition, see the linter's findings, reset to the shipped one. It keeps nothing — reload and it is gone.

## Add the form to an existing shadcn app

```bash
npx shadcn@latest add https://shadcn.demos.surveyjs.io/r/survey-form.json
```

> The host is not live yet. Until it is, run `npm run build && npm start` here and add from `http://localhost:3000/r/survey-form.json`.

The item installs two files — `components/survey-form.tsx` and `survey.json` — and two npm packages, `survey-core` and `survey-react-ui`. It adds no shadcn component. It reports completion through its `onComplete` prop:

```tsx
import { SurveyForm } from "@/components/survey-form"

<SurveyForm onComplete={(data) => console.log(data)} />
```

Pass `prefillData` (answers keyed by question name, defined outside the component so it stays the same object) to add a "Prefill demo data" button that fills the current page; the starter page does this. Without it there is no button.

Saving the response is yours to wire: the handler in `survey-form.tsx` marks the spot — see [SurveyJS backend integration](https://surveyjs.io/backend-integration).

**Another shadcn style** changes one import in `survey-form.tsx`, `survey-core/themes/adapters/shadcn-<style>.css`, where `<style>` is the `style` in your `components.json`:

`default`, `new-york`, `base-nova`, `base-vega`, `base-maia`, `base-lyra`, `base-mira`, `base-luma`, `base-sera`, `base-rhea`.

## Dependency policy

A starter people clone should install what was tested: `package-lock.json` is kept in the repo and `package.json` uses caret ranges, so `npm ci` reproduces the tested tree. A weekly CI run installs today's `survey-core` and `survey-react-ui` on top of it, without saving, and builds and smoke-tests against them — an alarm, not an update. It commits nothing. Moving the lockfile forward is Renovate's or Dependabot's job, through a reviewed pull request.

## What this is not

This starter stays one page and one form. Anything bigger has a home already:

- [The full SurveyJS demo](https://app.demos.surveyjs.io) — Survey Creator, PDF Generator, Dashboard and many more forms.
- [The MIT demo application](https://github.com/surveyjs/surveyjs-demo-mit) — a complete app built on the MIT-licensed libraries only.
- [Server integration](https://surveyjs.io/backend-integration) — storing definitions and responses in your own backend.

## License

[MIT](LICENSE) © Devsoft Baltic OÜ
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.