Skip to content
Jetstack

Developers

Your tools. Your git. Our core.

One command connects a git workspace to your tenant. Build apps in React and TypeScript, keep the tenant's configuration in files, deploy with plans and roll back in one step: by hand, or with your AI assistant.

Get started
~/acme

❯

Workspace

One repository per tenant.

Apps and the tenant's configuration live side by side in git, reviewed together and promoted together. Changes people make in the UI arrive in the repository as commits by the people who made them.

  • jetstack connect finds both environments from the tenant itself
  • Commands default to development; production always shows its plan first
  • UI changes pulled in as commits, by their authors
  • A promotion takes apps and configuration to production together
acme/
├── jetstack.json # the environments, apps and configuration
├── AGENTS.md # the guide for AI assistants
├── CLAUDE.md # includes AGENTS.md for Claude Code
├── apps/
│ ├── crm/ # jetstack.app.json · server/ · src/
│ ├── portal/
│ └── website/
└── tenant/ # data model, roles, permissions, automations…

CLI

The whole lifecycle in one binary.

A standalone binary for macOS, Linux and Windows, served by your tenant, verified by checksum and kept current with self-update. Nothing else to install.

Start

  • jetstack connect

    Link a folder to the tenant's environments

  • jetstack login

    Browser sign-in, two-factor included

  • jetstack doctor

    Names the fix for whatever doesn't work

Build

  • jetstack app new

    Scaffold an app: a type, a menu item, handlers, a page

  • jetstack dev

    Run an app from your computer against development

  • jetstack draft

    Work on the shared draft, next to the Studio

Ship

  • jetstack deploy

    Build, plan and deploy to development

  • jetstack promote

    Take tested releases and configuration to production

  • jetstack rollback

    Back to the previous release

Operate

  • jetstack logs

    Errors and handler logs, followed live

  • jetstack history

    Every change, to compare and restore

  • jetstack test

    Check what each role may see and do

Code

A real SDK. Real permissions.

The browser SDK knows who is signed in and works with records under their permissions. Handlers publish live events to the people who need them. Record-level rules live in the manifest, not in your code.

1import { records } from "@jetstack/sdk";
2
3const cases = records("case");
4const { items, total } = await cases.list({
5 filters: [{ property: "status", type: "is", param: "open" }],
6 orderBy: "created_on", orderDir: "desc", perPage: 20,
7});
8
9const created = await cases.create({ title: "New case", priority: "high" });
10await cases.patch(created.id, { status: "closed" });

The stack

Standard tools. Nothing proprietary to learn.

Studio apps are React and TypeScript with Tailwind CSS and shadcn/ui, built from an app kit with routing, forms, dates, charts, tables, toasts and animation. Build on your own computer and any package is yours to use.

  • React
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • esbuild
  • Vite
  • Any npm package
  • PHP handlers in a sandbox

Ship safely

Plans, approvals, one-step rollback.

Plans before deploys

Every deploy shows what it creates, changes or removes. Destructive changes wait for an explicit flag.

Approvals and deploy tokens

Require a second person for deploys. CI uses tokens that can deploy and nothing else.

Tests as each role

jetstack test runs throwaway users through what each role may see and do, locally or in CI.

History and restore

Compare any two states and restore one, from the UI or the CLI.

For AI assistants

Built for the assistant in your editor.

An assistant opened in the workspace reads AGENTS.md: what is where, which rules hold, which commands to use. It reads the docs through the CLI, uses your tenant's tools over MCP and follows step-by-step skills for the common jobs.

  • AGENTS.md kept current by the CLI
  • Docs and command help as JSON, matching the platform version
  • jetstack mcp: the tenant's tools for local assistants
  • Skills for adding a type, setting permissions, writing a migration, shipping
  • A dev container for teams that work in containers
assistant · ~/acme

Add an app for tracking support tickets, visible to each customer's own staff only.

  • Read AGENTS.md
  • jetstack docs search "permission queries"
  • Wrote apps/tickets/jetstack.app.json
  • Wrote apps/tickets/src/Tickets.tsx
  • jetstack validate ✓
  • jetstack deploy --app tickets → plan: + type ticket, + role customer_staff, + query own_company

APIs & runtimes

When an app needs its own service.

REST & MCP

The same operations for scripts, integrations and AI clients.

Events & webhooks

Record events delivered to apps reliably, with retries.

External runtime

Serve an app's routes from your own HTTP service behind the platform's gateway, where the hosting offers it.

Managed runtime

Let the platform build and run a PHP service from the app's bundle, where the hosting offers it.

Get started

Spin up a tenant. Ship your first app.

Tell us about your project and your stack. We'll set you up with a tenant and walk your team through the workspace.

  • A development and production pair
  • A workspace walkthrough for your team
  • Direct access to the engineers who build the platform
What is it about?

We use your details only to answer you. Privacy policy

Tell us what you want to build

A portal, a back office, a website, an agent, or something you have already started. We'll get back to you shortly.