Get Started with Jay

Jay is an AI-native full-stack framework. You work alongside AI agents — they generate pages, you guide the design. One command to scaffold a project.

npm create jay@latest
Create Jay Stack Project
> npm create jay@latest
Create Jay Stack Project
? Project name: my-store
? Select plugins to install:
── Jay Framework ──
UI Kit
Accessibility validator
SEO validator
Design system validator
── Wix ──
Wix Stores
Wix Members
Creating project in ./my-store...
Created project structure
Installed dependencies
Generated agent-kit
Plugin setup complete
Ready!
> cd my-store
> npm run dev
🚀 Jay Stack dev server started!
📱 Dev Server: http://localhost:3000
📁 Pages directory: ./src/pages
📁 Public folder: ./public
The CLI walks you through project creation interactively

Three Steps to Launch

One command scaffolds your project, installs dependencies, and generates the AI agent discovery kit.

1

Create

Run npm create jay@latest to scaffold a new project. Choose a project name and select the plugins you need.

2

Configure

Pick capabilities from AI guardrails to Wix headless integration. Jay installs everything and generates the agent-kit automatically.

3

Develop

Start the dev server with npm run dev. AI agents read the agent-kit to understand your project and begin building pages.

Non-Interactive Mode

AI agents can create projects without prompts. Pass all options as flags to skip the interactive CLI.

npm create jay@latest -- --name my-store --plugins "UI Kit,SEO validator,Design system validator"

Use exact plugin names, comma-separated, in quotes. All plugins from the interactive selector are available.

What Gets Created

my-store/
├──src/
│ └──pages/
│ ├──page.jay-html← your first page
│ ├──page.ts← page component
│ └──page.jay-contract← data contract
├──public/← static assets
├──agent-kit/← AI agent index
├──.jay← project config
├──package.json
└──tsconfig.json

Everything in One Place

Jay uses a file-based structure where each page is a directory under src/pages/. Three files define a page:

  • page.jay-html — the template with data bindings, conditions, and loops
  • page.ts — the component that provides data across rendering phases
  • page.jay-contract — the data shape that connects template and component

The agent-kit/ folder is auto-generated. AI agents read it to discover plugins, contracts, and project structure.

Key Commands

CommandDescription
npm run devStart dev server with hot reload
npm run buildProduction build (SSR + static)
npm run serveServe the production build locally
npm run validateCheck templates, contracts, SEO, a11y
npm run agent-kitRegenerate AI agent discovery index
npm run setupRun plugin configuration

Wix Plugin Configuration

Additional setup for connecting to Wix backend services.

Setup Steps

If you selected any Wix plugins (Stores, Members, Media, Data, Deploy), follow these steps to connect to Wix backend services.

1

Initialize Wix Credentials

Run npm create @wix/new@latest init to log in to Wix (or register for Wix Headless), connect your site, and generate the wix.config.json required for deployment — containing your site ID and client ID.

2

Run Plugin Setup

Run npm run setup to create config/.wix.yaml with connection details.

3

Generate an API Key

Go to Wix Dashboard, Account Settings, API Keys. Create a new key and paste it into config/.wix.yaml.

4

Plugin-Specific Setup

Wix Stores: Install the Stores app from the Wix App Market.
Wix Deploy: Create a jay-backend-files collection in Wix CMS.
Wix Members: Enable member signup in your Wix Dashboard.
Wix Media & Data: No additional setup required.

5

Verify

Run npm run setup again to validate all credentials are configured correctly.

Next Steps

  • Add a page — Create src/pages/about/page.jay-html and page.ts
  • Define a contract — Describe your data shape in .jay-contract
  • Style with tokens — Create DESIGN.md with your color, typography, and spacing system
  • Connect data — Add Wix plugins for CMS, e-commerce, or auth
  • Deploy — Run npm run build then host the output or deploy to Wix
npm create jay@latest