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

Create the app

Claims the domain, registers the app on it, 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.--domain takes a whop.site name (shine-time → shine-time.whop.site) or your own domain, such as shinetime.com:
  • A domain already on your business is used as it is.
  • A domain nobody has registered is bought through Whop. The CLI returns a purchase link, and nothing is charged until you pay there.
  • A domain you own elsewhere is connected: publish the DNS records the CLI lists.
Until you pay or publish those records, the site waits for that domain. whop domains get shinetime.com shows its status.
--app_type is permanent. website means visitors browse it at its domain. 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 ./<app name> 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.