Skip to content

Building Standalone Products on Kiket

Build independent SaaS products that use Kiket's API for workflow automation, compliance, and AI — without your users ever seeing Kiket.

Architecture

Your Product Frontend  ←→  Kiket API  ←→  Kiket Core
  (Next.js, React)          REST API      Workflows, AI, Blockchain
  Your brand + domain       Auth, CORS    Extensions, Compliance
  Your pricing              Billing       Reports, Documents

Your product is a standalone frontend that:

  • Has its own domain, branding, and UI
  • Authenticates users via the Headless Auth API
  • Manages billing via Stripe Connect
  • Creates projects, issues, and workflows via Kiket's REST API
  • Defines workflows, intake forms, and custom fields via YAML in a GitHub repository

Key Concepts

Concept What It Is
ProductApplication Registry entry for your product (slug, domain, branding, feature flags)
ProductSubscription Per-tenant subscription (plan tier, Stripe, trial)
Product Organization Each customer gets their own Kiket organization (isolated data)
Scoped Sessions JWT tokens carry (user_id, org_id, product_slug) — all data is tenant-scoped

User Identity

One User record per email across all products. A user can:

  • Register for your product (creates a new organization)
  • Register for another product (creates another organization, same user)
  • Register directly on Kiket (creates a direct organization)
  • Log into each product independently — JWT tokens are scoped per product + organization

Product users cannot log into Kiket's web UI. They only interact through your frontend.

Product Definitions (YAML)

Your product's workflows, intake forms, custom fields, boards, and issue types are defined in a GitHub repository with a .kiket/ directory:

your-product-definitions/
├── .kiket/
│   ├── project.yaml          # Manifest with custom fields and team roles
│   ├── issue_types.yaml      # Issue type definitions
│   ├── workflows/
│   │   └── main.yaml         # Workflow state machine
│   ├── intakes/
│   │   └── request.yaml      # Public intake form
│   ├── boards/
│   │   └── default.yaml      # Board layout
│   └── agents/
│       └── classifier.yaml   # AI agent definitions

When a new customer registers, Kiket creates a WorkflowRepository for their organization pointing to your GitHub repo. The existing sync infrastructure (GitHubWorkflowSyncService) handles everything.

Quick Start

  1. Register your product — Admin creates a ProductApplication with your slug, domain, branding, and feature flags
  2. Set up CORS — Add your frontend's origin to allowed_origins
  3. Create your definitions repo — GitHub repo with .kiket/ directory
  4. Link the repo — Set workflow_repository on your ProductApplication
  5. Build your frontend — Call the headless auth API to register/login users
  6. Configure billing — Set up Stripe Connect for your product

API Scoping

Your product only has access to the API endpoints listed in its feature_flags.api_scopes. Common scopes:

issues, workflows, intake_forms, compliance_reports, blockchain, ai, comments, documents, custom_fields, webhooks

Auth and billing endpoints are always accessible.