KiteDocs
Getting Started

5-minute quickstart

Create a Kite project, validate its config, and process an event locally.

This guide uses the public beta CLI. It does not deploy data or configuration to the live environment.

Prerequisites

  • Node.js 20 or newer
  • A running Kite API and PostgreSQL database
  • A verified Kite dashboard account with an organization

1. Install the CLI

npm install --global @kitesdk/cli@beta

2. Connect the CLI

Set the local API URL when it differs from the default, then start device login:

export KITE_API_URL="http://localhost:4400"
kite auth login

Open the displayed URL, sign in with your dashboard user, and select the organization that will own the project. The CLI stores a revocable user session outside the repository.

3. Create a project

Create a project in an empty directory next to the repository:

mkdir ../acme-kite
kite init \
  --directory ../acme-kite \
  --name "Acme" --slug acme --stack node --env test --yes

The command prints the test and live API keys exactly once. Keep them out of Git and logs.

Windows PowerShell

Use $env:KITE_API_URL = "http://localhost:4400" and place commands on one line instead of using the \ line continuation shown above.

4. Validate the generated config

Point the CLI at the generated directory:

kite validate --directory ../acme-kite

Validation loads every configured source file, compiles the TypeScript DSL, and reports cross-file errors before any deployment occurs.

5. Run the local engine

kite dev --directory ../acme-kite

The development server listens on 127.0.0.1:4401 by default and reloads the configuration when source files change.

6. Send an event

In another terminal:

curl -X POST http://127.0.0.1:4401/events \
  -H "content-type: application/json" \
  -d '{"customerId":"customer_123","event":"account.created","properties":{"plan":"pro"}}'

Then send the next onboarding event:

curl -X POST http://127.0.0.1:4401/events \
  -H "content-type: application/json" \
  -d '{"customerId":"customer_123","event":"feature.used","properties":{"feature":"reports"}}'

The local process logs accepted events and resulting state changes. You now have a working event-to-state loop without deploying configuration.

Next steps

  • Read the generated journeys/onboarding.ts and change a completion condition.
  • Run kite validate again before testing the edit.
  • Review Config to understand each definition type.
  • Use a kt_test_... key when instrumenting a backend. Never expose keys in browser code.

On this page