wp CLI
The wp command-line interface is the supported customer command surface for turning an idea into a Webpresso workspace you can launch, operate, and improve. Use it to create the starter, validate the checked-in contract, run local development, deploy the supported starter, and operate the schema/database workflow.
CLI Usage
The CLI owns the supported customer flow. This page stays on the launch path first, then drills into the commands that make that path real:
wp --helpGetting Started
The supported happy path is intentionally narrow: one starter, one workspace shape, and one launch story you can take from idea to first live version without detouring through platform-internals.
wp new my-appScaffold the supported starter.
ak blueprint new "Launch customer portal" --complexity MCreate the canonical draft blueprint scaffold before refining and executing it.
wp validateValidate the supported workspace lanes under apps/, packages/, and webpresso/.
wp devRun the supported local development workflow for the current workspace.
wp deployPublish the workspace through the supported Webpresso deployment flow.
wp schema checkRun the schema validation suite; add --runtime to validate against a live ephemeral GraphQL runtime and schema snapshot.
wp db pushPush database changes through the supported Webpresso database workflow.
wp config codegenGenerate TypeScript config artifacts from checked-in YAML sources.
Schema Scaffolds
Add new checked-in intent files without dropping into older generator plumbing.
wp add entity customer_ordersCreate a starter entity definition in webpresso/entities.
wp add workflow onboarding_flowCreate a starter workflow definition in webpresso/workflows.
wp add page customer_portalCreate a starter custom page definition in webpresso/ui/pages.
wp add endpoint customer_webhookCreate a starter endpoint definition in webpresso/endpoints.
wp add job nightly_rollupCreate a starter job definition in webpresso/jobs.
Schema and Database Operations
The grouped operational surface now lives under wp schema, wp db, and wp config.
wp schema compileCompile checked-in YAML metadata into generated runtime, frontend, and type artifacts.
wp schema codegenRun the schema codegen pipeline after compile/apply steps.
wp schema applyApply metadata, validation, and codegen to the GraphQL runtime.
wp schema check --runtimeExport a live ephemeral schema snapshot, validate operations against it, then run runtime metadata validation against an ephemeral GraphQL runtime and database branch.
wp db migrateRun database migrations against the active environment.
wp db seedSeed development or E2E data using the supported profiles.
wp db e2e-preparePrepare an E2E database branch with migrations and seed data.
Export & Portability
Every Webpresso project is standard code you own. Use wp export to produce a self-contained project bundle that can be opened in any editor and run with standard tooling — no Webpresso CLI required. The exported bundle includes your customer-owned contract roots (apps/, packages/, webpresso/), all generated artifacts, and an ownership manifest describing exactly what Webpresso managed. Use wp eject for the same output with a stronger declaration of intent to operate fully independently.
wp export --out ./my-app-exportedExport the workspace to a self-contained bundle you can run without the Webpresso CLI.
wp eject --out ./my-app-standaloneEject the workspace with explicit intent to operate fully independently of Webpresso.
Project Contract
Checked-in customer intent lives in webpresso/. Runnable apps live in apps/. Shared implementation packages live in packages/. Local machine state and generated artifacts live in .webpresso/.
Generated CRUD is a partial supported path: define entity UI in webpresso/entities/, let Webpresso generate the default list/detail/form surfaces, and switch to manual ownership or custom pages when you need bespoke behavior.
your-project/
├── apps/ # Dev/deploy lane
│ ├── api/ # API worker app
│ └── web/ # Web app
├── packages/ # Shared implementation lane
│ └── ui/ # Starter shared UI package
├── webpresso/ # Checked-in customer-owned project contract
│ ├── config.yaml # Supported project config
│ ├── entities/ # Data model definitions
│ ├── workflows/ # Workflow definitions
│ ├── blueprints/ # Planning and implementation blueprints
│ ├── tech-debt/ # Tracked follow-up work and debt notes
│ ├── ui/pages/ # Custom non-CRUD pages
│ ├── actions/ # Optional supported action metadata
│ ├── events/ # Optional supported event definitions
│ ├── permissions/ # Optional supported authorization policy
│ ├── seeds/ # Optional supported seed configuration
│ ├── types/ # Optional supported source type definitions
│ ├── ui/navigation/ # Optional supported customer navigation
│ ├── endpoints/ # HTTP handlers
│ └── jobs/ # Background jobs
└── .webpresso/
└── generated/
├── runtime/ # Generated runtime artifacts
├── types/ # Generated types
├── frontend/ # Generated frontend artifacts
└── .webpresso/generated/.manifest.json # Tool-owned generated-artifacts manifestLocal State Rules
- →Commit webpresso/config.yaml
- →Keep deployable apps under apps/ and shared implementation packages under packages/
- →Create planning blueprints with ak blueprint new "<goal>" --complexity <size> and keep the generated files in webpresso/blueprints/; track follow-up debt in webpresso/tech-debt/
- →Optional supported roots like webpresso/actions/, webpresso/events/, webpresso/permissions/, webpresso/seeds/, webpresso/types/, and webpresso/ui/navigation/ are valid customer inputs when your project needs them
- →Keep .webpresso/generated/ out of git
- →Treat generated CRUD as a default path, then use generated/manual ownership in entity YAML or custom pages for exceptions
webpresso/config.yaml
Keep project identity and runtime choices in the checked-in config:
project:
name: my-app
slug: my-app
version: 1.0.0
functions:
runtime: nodejs20
timeout: 30