VoidhashDocs
DevelopersHelp centerGuidesAPI reference
Dashboard
Get started
Introduction
Quickstart
How Voidhash works
Glossary
Versions and releases
Concepts
Teams, projects and environments
API keys
Products and perks
Offers
Subscription lifecycle
People and identity
Events
Features
Paywalls in your app
Feature flags and A/B tests
Paywall components
Push notifications
Ad attribution in your app
Client SDKs
React Native
Swift
Kotlin
Web
Your backend
Node.js
PHP
Go
Rust
Other languages
Payment sources
Forward store notifications
Developer tools
CLI
MCP server
Query analytics with VoidQL
CLI
CLI reference
Commands
Sign-in and projects
People and access
Catalog and payments
Paywalls and components
Flags and experiments
Analytics and ads
Webhooks and push
Team and settings
Types, API and config

Paywalls and components

CLI commands to build, deploy and place paywalls, and to develop custom components.

These commands build and deploy paywalls, choose what each paywall location shows, and develop, publish and install custom components.

Early access

Paywalls are in early access. Ask us on Discord, or email support@voidhash.com on a paid plan, to turn them on for your team.

Studio's Paywalls and Paywall locations pages do the same, and the MCP server's paywall tools let agents design and deploy.

Paywalls and locations

CommandWhat it doesKey flags
paywall listPaywalls with the live build and the locations that show it.--archived
paywall view [paywall]The live build, newer builds and where it's shown.
paywall createCreates an empty paywall or onboarding flow.--name, --slug, --kind paywall|onboarding
paywall edit [paywall]Renames a paywall. Its slug can't change.--name
paywall build [paywall]Builds the current design without deploying it.--wait, --timeout (default 300 seconds)
paywall deploy [paywall]Builds and deploys the design everywhere it's shown. Asks first when people see it.--build <number or id> deploys an existing build, --timeout
paywall archive [paywall]Archives a paywall. Locations keep showing its live build.
paywall unarchive [paywall]Restores an archived paywall.
paywall delete [paywall]Deletes a paywall no location shows, with its design and builds. Asks first.
location listLocations with what each shows now.--archived
location view [location]What a location shows now and showed before.
location createCreates a location.--name, --slug, --description, --show <paywall>
location edit [location]Renames a location or changes its description. Its slug can't change.--name, --description, --clear-description
location show [location] [paywall]Shows a paywall's live build at a location. Asks first when it replaces what people see.
location clear [location]Stops showing anything at a location. Asks first.
location history [location]Everything a location has shown, newest first.
location archive [location]Retires a location for good. Asks first.

Custom components

Run dev, new, publish and test in your app's root. See Develop a component.

CommandWhat it doesKey flags
devBuilds the components in .voidhash/ on every change and serves them to the paywall editor.--port (default 4319)
new <name>Adds a component with its editor panel to .voidhash/components/.--title
publishPublishes new and changed components as new versions.--all, --component (repeat), --yes
test [component]Runs the checks publishing runs on a component, crate or .wasm module.--panel
registry listProject, installed and team registry components.
registry publisher showYour team's component namespace.
registry publisher claim <namespace>Claims the namespace (admins, signed in).
registry publish [path]Publishes a bundle, or a ready project component, to your team's registry.--from-project <slug>@<version>, --version, --name, --title, --category
registry install <component>Installs a registry component, such as acme/wheel-picker.--range, --yes accepts the review
registry update <component>Moves an install to the newest version in its range.--range, --yes
registry uninstall <component>Removes an installed component.
registry deprecate <component> [version]Deprecates a component or one version.--message, --undo
registry yank <component> <version>Yanks a version for good.--message
registry transfer <component>Moves a component to another project of your team (admins, signed in).

See also Publish a component and Install a component.

Example

voidhash paywall deploy summer-sale --build 3   # roll back to build 3
voidhash new plan-picker --title "Plan picker"

Next steps

  • Build and deploy: builds, deploys and rollbacks.
  • Paywall locations: show a paywall in your app.
  • Develop a component: the component dev loop.

Something wrong or missing on this page? Tell us by email or on Discord.

PreviousCatalog and paymentsNextFlags and experiments

On this page

Paywalls and locationsCustom componentsExampleNext steps