Convex Quickstart
ConvexOfficialPublished by Convex
- Skill
- Workflow
- Software development
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill automates the creation of a minimal Next.js and Convex project. It handles the setup of local development environments, dependency installation, and backend initialization. Designed for speed, it focuses on getting a functional template running quickly while adhering to strict architectural patterns for Convex development, including proper function referencing, data access methods, and HTTP route handling.
What it does
- Scaffolds a new Next.js and Convex project based on a user idea
- Automates dependency installation and local development server startup
- Enforces strict Convex development patterns and directory structures
- Validates code compilation and deployment readiness before completion
- Provides a fallback to direct code generation if interactive scaffolding is unavailable
When to use it
- When you need to start a new project using Convex and Next.js immediately
- When you want a clean, minimal template without pre-configured authentication or hosting
- When you need to ensure your backend code follows established Convex best practices
Advantages
- Reduces manual setup time for new projects
- Ensures consistent project structure and import patterns
- Includes built-in verification steps to catch common configuration errors
- Maintains a minimal footprint by avoiding unnecessary boilerplate
Usage examples
- “Start a new Convex project for a task tracker app.”
- The agent will scaffold a Next.js and Convex project, install dependencies, and start the local development server.
- “Build me a backend for a simple blog.”
- The agent will generate the necessary Convex files under the convex/ directory, ensuring correct schema and function definitions.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/convex/convex-quickstart/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip convex-quickstart.zip -d .agents/skills
Documentation by Convex
<!-- 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.
Files
- ATTRIBUTION.mdAdded by AutoGineer858 B
- LICENSELicence file added by AutoGineer10.7 KiB
- SKILL.md4.2 KiB
- agents/openai.yaml477 B
- assets/icon.svg435 B
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Convex
- Publisher
- Convex (Official)
- Source
- convex/agent-skills · skills/convex-quickstart · commit f60629d
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Convex.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download convex-quickstart.zip