Skip to main content
Four commands take you from an empty directory to a live site at <route>.whop.app.
Install the Whop CLI and run whop once to sign in and select a business.
1

Create the app

Registers the app, scaffolds the project into ./shine-time, and writes a whop.app.json linking the directory to the app. Omit the flags to be prompted instead. Your address is the route: shine-time.whop.app.
--app_type is permanent. website means visitors browse it at your route. b2c_app means creators install it into their whop.
2

Run it locally

Starts your dev script with the environment the hosted runtime would give it: WHOP_APP_ID, a short-lived token as WHOP_API_KEY, and every stored app secret. Server-side SDK calls work with no setup. Anything you export yourself wins, and restarting refreshes the token.
3

Deploy

Builds, type-checks, uploads the build and a source archive, and promotes it. Your site is live when it finishes.
4

Watch it run

Server-runtime logs, kept for 7 days. See Hosting.

What the scaffold gives you

whop apps init scaffolds a React project with TanStack’s own create command, then applies the Whop wiring:

Bring your own framework

The plugin is framework-agnostic — TanStack Start, Nitro, Hono, or plain SSR all work. The one requirement is the build layout: static assets in dist/client, the server bundle in dist/server.
vite.config.ts
--app links the current directory to an existing app before deploying, replacing any link in whop.app.json.

Work on a site from another machine

On a fresh machine this creates ./<route> from the production build’s source archive. Inside an existing project it three-way merges the deployed source with your local code through git. Pass --build abld_xxxxxxxx for a specific build, or --overwrite to skip the merge.

Next steps

How hosting works

Secrets, rollbacks, logs, and the injected API key.

Track visitors

The pixel is already installed — add your own events.

Blueprints

Start from a working business instead of an empty project.

CLI reference

Every command, plus non-interactive use.