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
| Command | What it does | Key flags |
|---|---|---|
paywall list | Paywalls 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 create | Creates 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 list | Locations with what each shows now. | --archived |
location view [location] | What a location shows now and showed before. | |
location create | Creates 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.
| Command | What it does | Key flags |
|---|---|---|
dev | Builds 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 |
publish | Publishes 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 list | Project, installed and team registry components. | |
registry publisher show | Your 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.