A widget for your own account
You do not need a developer account to run your own JavaScript inside Bito. If the widget is for your company only — an internal tool, a screen wired to your own systems, something nobody else will ever install — upload it to your own account and skip the marketplace entirely.
| This page | A marketplace app | |
|---|---|---|
| Developer status | Not needed | active required |
| Where it runs | Your account only | Every tenant that installs it |
| Who approves it | Automated package validation, then your own consent | A Bito moderator |
| Versions | Re-upload replaces the current widget | A release history you manage |
How to upload one
- Under Integration → Integration press Custom integration, and in the Create integration dialog press + Create next to Integration with custom code.
- Fill in the ordinary custom-integration form.
- Attach your
widget.zipin the Your own widget block. - Press Save. Your
client_id, secret and API key are shown; the secret is shown this once only. - Open the integration from the Installed list and press Install. A new integration is created uninstalled: until you install it the widget does not mount, and API calls fail with
Integration is not installed.
The archive is validated the moment it arrives — same validator, same rules, same error report as the marketplace path. If it passes, the widget becomes runnable in your account. If it fails, the errors are listed, nothing is activated, and you fix the package and upload again.
To change the widget later, open the integration and upload a new archive. That is the whole update story: there is no version to type and no history to manage.
TIP
The widget.zip format is identical for both paths — see the widget.zip format. Nothing in the package says whether it is private.
You still consent before it runs
Validation is not the control that makes unsandboxed widget code safe to run — consent is. A private widget mounts only after the account owner accepts its declared permissions and its connect_origins, exactly like an app installed from the marketplace.
That is also how you turn one off. Revoking consent unmounts the widget everywhere at once; there is no separate removal step.
Each upload writes a new release behind the scenes, and consent is keyed to the release — so replacing the widget asks for consent again. Code that changed does not keep the approval the old code was given.
What "private" actually means
Your integration's client stays private, and that one fact is what keeps it yours:
- it never appears in another tenant's marketplace — the marketplace listing only returns
publicclients; - another tenant cannot install it from the marketplace, even with the
client_id; - it is never seen by a moderator, because it never enters the queue.
When to use the other path instead
Go to your app page — and get a developer account first — if you want other companies to find and install your app, a store listing in several languages, install statistics, or a version history with moderated releases.
You are not locked in. To turn a private integration into a marketplace app, first obtain developer access and complete its app code and store card. Then submit the widget release and the card through their separate review tracks. The same client becomes public only when the card is approved with a moderator-approved current release.