Publish and roll back
Release a checked app version, recover a failed release and manage its lifecycle.
Before you begin
You need owner or dashboard editor access. Test important actions before publishing and cover the subscription charge from the shared pool. Partner operators with Editor access can also publish during a live operator session; the subscription is charged to the customer workspace’s shared pool.
Publish a version
- Open Open builder from the app page.
- Choose Publish.
- Choose the plan and autoscale, and review the first charge, when publishing for the first time.
- Decide whether to keep preview test records on the first publication.
- Review any Access changes.
- Confirm the publication.
- Follow the release in the app page's History.
- Open or reload the app after the release completes.
First publication charges before infrastructure creation. Failed-publication retries never charge the same period twice. Every size includes hourly backups of the published data. Later publications keep published records and never replace them with test data.
Follow a data update
Adding defaults or renaming fields can require Updating your data, followed by verification of every record. Members keep the previous interface until checks pass. Leaving the page does not stop the release.
A draft becomes a checked preview, then a published version. Later releases update records and activate after checks; compatible rollbacks retain records.
Pausing blocks access. Trash retains source and data for seven days before permanent deletion.
Build and verify with separate test data
Authorized team and agents use live records
- 01Build the checked version
- 02Update existing records if needed
- 03Check records and app health
- 04Activate the new interface
Return to eligible published code
The previous interface stays active until release checks pass.
Keep data and source; billing continues
Access stops; renewals pause; restore before expiry
After Trash expires or Delete for good: app, data and source removed
Rule — The data model only grows. Add tables and optional fields; retain old fields when renaming. Removing tables or fields, changing field types or making optional fields required is unsupported and fails before deployment.
Recover a failed release
- Open the failed entry in History.
- Read the failed step and its explanation.
- Choose Review access changes if the permissions review became outdated.
- Choose Retry when the cause is resolved.
When the app code fails the checks that run before publishing, History shows the first errors and offers Fix in the builder instead of Retry: the builder receives every error, fixes the app and checks the preview. Publish again afterwards.
Interrupted data updates retry automatically a few times. Failures after function deployment can leave newer functions serving the previous interface. Inspect the unfinished-release warning and History before assuming a full restoration.
Keep the app up to date
Botchi improves the libraries apps are built on. A published app keeps its version until it is updated; publishing from the builder always includes the latest one.
- Look for Update available on the Apps page or an update notice on the app page.
- Choose Update app.
- Follow the release in History.
The update republishes the published version: data, features and access stay the same. An app with unpublished builder changes is updated by publishing it from the builder. When an important update needs changes, choose Adapt in the builder, check the preview and publish as usual; members keep the current version until then.
Roll back the published version
- Open the app page's History.
- Select an eligible previously published version.
- Choose Rollback.
- Review any Access changes.
- Confirm the rollback.
Rollback offers only versions compatible with current records and restores code, not data. Versions with incompatible app kits or roles are also excluded. For builder source alone, use source history. To bring back records, restore a backup.
Restore data from a backup
Botchi backs up the data of every published app every hour and keeps 30 days of restore points.
- Contact Botchi support.
- Name the app and the date and time to go back to, with your time zone.
- Wait for support to confirm the restore is complete.
The restore replaces the app's published records with their state at that minute; changes made after it disappear. The code stays the same. When the current version no longer accepts the older records, support asks you to roll back first. The state just before a restore can itself be restored.
| Item | Rule |
|---|---|
| Data loss | At most the last hour of changes. |
| Restore point | Any minute of the last 30 days. |
| Duration | Minutes for small apps, up to hours for very large ones. |
Export an app
The account owner can download a copy of a published app.
- Open Settings.
- Choose Export app.
- Wait for the email that says the export is ready. Leaving the page does not stop it.
- Choose Download in Settings.
The zip holds the source of the published version and the app's data as of the last hourly backup: every table and file, as a standard Convex snapshot that npx convex import loads into a Convex project. The source depends on the Botchi app kit and does not run outside Botchi as is.
| Item | Rule |
|---|---|
| Who | The account owner only. |
| Apps | Published apps, paused ones included. Not drafts or apps in Trash. |
| Data | As of the last hourly backup. A newly published app can be exported after its first backup. |
| Ready | In seconds to a few minutes. |
| Download | Available for seven days. |
| Limit | Up to three exports per app per day. |
Pause or remove an app
- Open Settings.
- Open Pause or delete app.
- Change Kill switch to stop or restore access.
- Confirm the access change.
Pausing access keeps source and data. It does not cancel the app subscription.
To remove an app as an owner or dashboard editor:
- Choose Delete app under Pause or delete app.
- Enter the exact app name shown in the confirmation, if the app is named.
- Choose Move to trash.
Members and agents lose access. Renewals stop while the app is in Trash.
Restore it from Apps → Trash with Restore before seven days expire. A restore after the paid period ends starts a new paid period charged to the workspace’s shared pool. Authorized partner operators can also restore during a live operator session.
Watch out — Delete for good in Trash permanently removes the app, its database and source files. This cannot be undone. Trash also deletes them automatically after seven days. To keep a copy, export the app before moving it to Trash.