convex-quickstart
get-convex/agent-skills
Scaffold a Next.js + Convex app from a one-sentence idea and run it locally in seconds.
What is convex-quickstart?
Quickly bootstrap a minimal Next.js frontend with a Convex backend, running locally with anonymous dev deployment. Use this to get a working prototype running immediately from a concept, with no auth or hosting setup required.
- Creates a barebones Next.js + Convex project structure from your idea
- Installs dependencies and starts both backend and web dev servers automatically
- Provides a local dev URL to preview the app immediately
- Keeps the template minimal—no pre-baked auth, no publish step, no external databases
- Delegates backend code to convex-expert skill for feature development
How to install convex-quickstart
npx skills add https://github.com/get-convex/agent-skills --skill convex-quickstart- Node.js installed
- Network access to fetch the quickstart recipe and dependencies
- A one-sentence description of your app idea
How to use convex-quickstart
- 1.Run the skill with your app idea and preferred template
- 2.Wait for the recipe to create the project, install dependencies, and start both servers
- 3.Open the printed dev URL in your browser to see the running app
- 4.Review the generated project structure and confirm before building additional features
- 5.Delegate backend code changes to the convex-expert skill for further development
Use cases
- Quickly prototype a new app idea to validate the concept
- Set up a local development environment for a Convex project in under a minute
- Create a starting point for a full-stack web application
- Test Convex functionality without deployment or authentication overhead
- Bootstrap a project before adding custom features via the convex-expert skill
- Full-stack developers building with Next.js and Convex
- Teams prototyping new product ideas quickly
- Developers new to Convex who want a working example immediately
- Anyone needing a minimal, local-first development setup
convex-quickstart FAQ
The skill falls back to writing a standard Convex project directly with all backend code under convex/ directory, with zero scaffold files unless explicitly requested.
No—this skill keeps the template minimal by design. Ask for authentication or hosting setup separately, and it will be handled by appropriate follow-up work.
The convex-expert skill handles any code under convex/ directory. This skill only scaffolds the initial template.
The skill will report the error. Common causes are missing Node.js, network issues, or permission problems. Verify your environment and try again.
Full instructions (SKILL.md)
Source of truth, from get-convex/agent-skills.
name: convex-quickstart description: "Get a barebones Convex + web template running from a one-sentence idea."
<!-- GENERATED from convex-agents content/capabilities/quickstart.json — do not edit by hand. -->Quickstart: a barebones Convex template, running
Stand up a barebones Next.js + Convex template from the idea, locally, with an anonymous dev deployment. Minimal by design: local dev servers, no publish step, no pre-baked auth.
Workflow
- Run recipe
quickstart-recipe@^2with {idea, template} (the pack fetches + caches it; pinned offline fallback). It creates the project, installs deps, starts the backend (anonymous) and the web dev server. - When it prints the dev URL, open it for the user.
- Present a short plan and CONFIRM before building features beyond the template.
Rules
- Never re-run the recipe if it already reported success.
- Delegate any code under
convex/to theconvex-expertcapability. - Don't add Postgres/Redis/Express — use Convex primitives.
- Don't add hosting/publish or pre-baked auth here — keep the template minimal unless the user asks for more.
- DEGRADATION RULE — if the scaffold cannot run (non-interactive session, no network, a sandboxed temp dir, or the user just wants code, not an app): skip the recipe and write a standard Convex project directly. ALL backend code goes under
convex/(schema.ts, functions) — NEVER at the project root; Convex functions only run from theconvex/directory. Write ZERO scaffold/documentation files (no START_HERE.md, ARCHITECTURE.md, MANIFEST.txt, README walls) unless explicitly asked. "Build me a backend" means code, not ceremony. - Data access + imports — before writing any convex/*.ts: never an unbounded
.collect()on a table that can grow — use.withIndex(...)and.paginate(...)/.take(n). Use an index, not.filter(), for anything that would be a SQL WHERE..withIndex(...)callbacks only haveeq/gt/gte/lt/lte— there is no.range(...)method. Imports:query/mutation/action/internalQuery/internalMutation/internalActioncome from./_generated/server;api/internalcome from./_generated/api; NEVER import fromconvex/serverin application code.v.literal("exact value")for fixed string/enum members, not a bare string."use node"only at the top of action-only modules — never in a file that also exports aqueryormutation. Never import a Node builtin (crypto/fs/path/http/child_process/os, with or without thenode:prefix) into a file lacking"use node"— includinghttp.tsroute handlers; use Web Crypto (crypto.subtle) instead ofimportingcryptowhere possible. - Reserved names — never
export const <jsReservedWord> = ...(e.g.delete,new,class,function,return) as a query/mutation/action export name; esbuild fails to parse it. Never a table or index name starting with_(e.g._migrations: defineTable(...)) —_is reserved and errors at push asTableNameReserved/IndexNameReserved. - HTTP routes —
httpRouterhas no Express-style:paramsegments (path: "/users/:id"only matches that literal string and is dead code); usepathPrefixand parse the trailing segment yourself. Everyhttp.route({...})handler:must be wrapped inhttpAction(...)from./_generated/server— a bareasync (ctx, request) => {...}type-checks but isn't a valid HTTP action. ctx.runQuery/ctx.runMutation/ctx.runActionneed a codegen'd function reference (api.foo.bar/internal.foo.bar), never a raw imported module member (import * as queries from "./queries"; ctx.runQuery(queries.getX, ...)compiles but fails at runtime).- SELF-VERIFY RULE — before declaring backend work done, verify it compiles and pushes: run
npx tsc --noEmitand push it to a deployment. Prefer the project's existing one; otherwisenpx convex dev --oncewhennpx convex whoamisucceeds, andCONVEX_AGENT_MODE=anonymous npx convex dev --onceONLY when it does not. Forcing anonymous on a signed-in user rebinds.env.localand costs them the persistent, publishable cloud deployment they expect. Fix every error it reports before finishing — one verify round catches the wrong-relative-import / duplicate-symbol / unbalanced-paren class that otherwise breaks the deploy.
Related skills
More from get-convex/agent-skills and the wider catalog.

convex-reviewer
Security, auth, and performance reviewer for Convex functions—catch anti-patterns before shipping.

convex-seed
Seed or import data into the Convex database with fixtures or bulk imports.

convex-self-heal
Production error → triaged, root-caused, repaired, certified, and proposed as a human-reviewed PR; never auto-merges.

convex-sentinel
Capture production errors in your Convex deployment with built-in redaction and optional AI-driven triage.

convex-setup-auth
Set up secure authentication in Convex with user management and access control.

convex-suggest
Suggest the right Convex component when you detect hand-rolled patterns it already solves.