Skip to content

Developer quickstart

Build an app on Nimbus with server-side TypeScript functions and reactive queries. If you’d rather connect existing drivers (MongoDB, Firestore, plain HTTP), see the self-host quickstart.

Terminal window
brew install nimbus/tap/nimbus

Other platforms ship via the install script and release binaries — see the install options.

For Convex-style authoring, also install Node.js 22 or newer with npm. Nimbus runs codegen inside its own binary; Node is only needed to install your project’s npm dependencies.

Terminal window
nimbus init convex my-app
cd my-app

nimbus init convex scaffolds backend files only: a schema, an example query and mutation, package.json, tsconfig.json, and .gitignore. Add your own frontend, or point an existing one at the local deployment URL.

Terminal window
nimbus dev

nimbus dev auto-runs npm install when declared packages are missing, creates a demo tenant, and serves on localhost:3210. It watches the TypeScript files, re-runs codegen on change, and activates updated functions with reactive subscriptions.

convex/messages.ts
import { query, mutation } from "./_generated/server";
import { v } from "convex/values";
export const list = query({
args: {},
handler: async (ctx) => await ctx.db.query("messages").take(50),
});
export const send = mutation({
args: { author: v.string(), body: v.string() },
handler: async (ctx, { author, body }) =>
await ctx.db.insert("messages", { author, body }),
});
// In your React app — data updates in real time
const messages = useQuery(api.messages.list);

No REST endpoints, no GraphQL, no polling — your frontend gets reactive queries and mutations from a single local process.

  • Developers — functions, schema, scheduling, file storage, auth, and the per-adapter guides.
  • Concepts — how the engine, data model, and tenancy work.
  • Reference — CLI commands and configuration.