Install
openclaw skills install @structureintelligence/paid-waitlist-pageSpin up a hosted waitlist / landing / pre-order page that actually persists signups to a managed database and can take a payment — not just emit HTML. Use when the user wants a waitlist page, landing page, coming-soon page, pre-order or paywall, an email-capture form that saves to a database, a hosted signup form that persists, or "collect emails and charge for early access". One command — live URL + DB behind the form + optional checkout.
openclaw skills install @structureintelligence/paid-waitlist-pageSession (auto — never dead-stop on auth): before your first
settlemeshcall, runsettlemesh whoami; if it errors andSETTLE_API_KEYis unset, runsettlemesh loginyourself — it opens the browser for a one-time human approval, polls until approved, and caches the session. Do NOT stop to ask the user to "log in manually" — drive it. Keep an explicit human confirmation only for spending / credential-lending actions (fail-closed).
Every "landing page generator" hands you an index.html and stops — leaving you
the three hard parts: persist the signups somewhere, host the page on a
real URL, and charge for pre-orders. A prompt-only skill can't run a database,
keep the page alive, or move money. SettleMesh closes all three in one deploy.
This is a specialization of ship-paid-app (the deploy engine) + charge-my-users
(end-user billing). Read those for the general case; this is the waitlist recipe.
<form> that
POSTs email (and whatever else) to your handler. Point the write at the
managed DB (the runtime DB connection is injected by --full-stack).# Setup once:
npm install -g settlemesh@latest && settlemesh login # or SETTLE_API_KEY=sk-settle-...
# Persist-only waitlist (form writes to the managed DB):
settlemesh deploy ./waitlist --name waitlist --full-stack --wait --json
# Paid pre-order / paywall (flat SettleMesh checkout in front of access):
settlemesh deploy ./waitlist --name waitlist --full-stack \
--with-payment --payment-price-credits 50 --wait --json
Read the live URL from the deploy JSON (don't guess it). The page is reachable
at <name>.run.settlemesh.io; no domain to buy or configure.
--with-payment --payment-price-credits N — one flat SettleMesh checkout
price for access / the pre-order (minimum 50 credits). Best for "pay $X to
reserve / unlock early access". This is a paywall, not per-use metering.X-Settle-Payer (the charge-my-users skill) — metered, per-action billing
of the end user instead of a flat gate. Use this when each action (a generation,
a lookup, a download) should bill the visitor rather than charging once at the door.The full-stack DB is a real managed database — query it with settlemesh db
(each command takes the app's <project-id> from the deploy output):
settlemesh db migrate <project-id> --sql \
"create table if not exists signups(id serial primary key, email text, created_at timestamptz default now())"
settlemesh db query <project-id> --sql "select count(*), max(created_at) from signups" --json
settlemesh db get <project-id> --json # DB metadata / connection info
settlemesh deploy status <app-id> # build/deploy state
settlemesh deploy url <app-id> # re-fetch the public URL
--full-stack = DB + auth + runtime key; the form's write path uses the injected
DB connection, so signups survive restarts — nothing to wire manually.--with-payment
are confirm-gated; check balance with settlemesh aev balance.