Build panels
Publishing
Ask for access, publish a version from Deska, and look after it: versions that never change, permissions people are asked for again, unlisting, withdrawal and the limits.
Who can publish
Anyone can build and load a panel. Publishing it, so other people find it in Discover and on deska.dev/panels, is open to invited authors for now.
- Apply. Sign in and fill the form at deska.dev/panels/apply: what you want to build, a link to a repository or a prototype if you have one, the permissions and sites it needs and why, and your GitHub handle if you like. Ask to publish in Build a panel leads to the same place.
- Wait for an answer. We reply within a few days. Your account page shows that the application was sent and when. One application is open at a time; after an answer, you can apply again.
- Publish from Deska. Once approved, your account can publish from any Deska signed in to it. Deska reads the change when it starts, when you sign in and when its window gets focus.
Publishing a version
- Load the folder in Build a panel and make sure it passes, in both themes.
- Open the folder’s page and press Publish.
- Write what changed, up to 1,000 characters, and check what will be published: the version, the name people see as the author, the permissions and the sites.
- Confirm. Deska zips the folder (always to the same bytes for the same files) and checks it, and deska.dev checks it again when it arrives. When it is listed, Deska offers to open the panel’s page.
By publishing, you confirm you have the right to share the panel, and you let Deska store it, send it to the people who install it and remove it.
Versions
- The first version claims the panel’s id for your account. Only you can publish more versions under it.
- A published version never changes. To change anything, raise
versionin panel.json and publish again. Each new version must be greater than the last. - The name, description, author, category, color and icon people see come from the newest version’s panel.json. There is no other way to change them.
- People who installed the panel see Update to the new version. Updating reloads open copies, and the panel keeps what it saved.
- A version that asks for a newer SDK than someone’s Deska is shown as needing a newer Deska and never offered to them.
Permissions and sites, asked again
Permissions and sites belong to each version. People who installed an earlier one are asked again before an update that wants a permission or a site they had not allowed, and the question names every new site. Until they agree, they keep the version they have.
So ask for the least that works from the first version, and add a permission only with a feature that needs it. Say why in the changelog.
Unlisting and managing
The Community panels section of your account page lists every panel you published, with its versions and how many accounts installed it.
- Unlist hides a panel from Discover and deska.dev. The computers that installed it keep it and still get its updates. Listing it again takes an account that may publish.
- If your account stops being able to publish, what you published stays listed and you can still unlist it.
- If you delete your account, your panels leave Discover. The computers that installed them keep them.
Deska checks every version when it arrives and can withdraw a panel, or one version of it, that breaks the rules. A withdrawn panel stops loading on every computer that has it and says Deska removed it; computers look for withdrawals when Deska starts and every six hours.
Limits
| Limit | Value |
|---|---|
| Package | 5 MB zipped, 20 MB and 500 files unpacked |
| Publishes | 10 a minute and 50 a day per account |
| Versions | 100 per panel |
| What changed | 1,000 characters, line breaks kept |
| Names | No word that reads as Deska or Dex in the name, author or Extras title |
When publishing fails
Nothing is published when a check fails. Deska shows one of these, with the problems:
| Code | Meaning | What to do |
|---|---|---|
invalid_package | The package does not pass the checks, or a name reads as Deska. | Fix each problem listed; see panel.json reference. |
version_exists | This version is published already, or is not greater than the latest. | Raise the version in panel.json. |
not_owner | Another account publishes a panel with this id. | Pick another id. |
publishing_closed | Your account cannot publish yet. | Apply at deska.dev/panels/apply. |
signed_out | Deska is not signed in. | Sign in and try again. |
too_large | The zip is over 5 MB. | Leave out what the panel does not load. |
rate_limited | Too many publishes in a short time. | Wait a few minutes. |
version_limit | The panel has 100 versions. | Write to [email protected] to clear old ones. |
suspended | Deska withdrew this panel, so it takes no new versions. | Write to [email protected]. |
server_error | deska.dev could not take the package right now. | Try again in a moment. |
Before you publish
- The folder passes in Deska with no problems, not only in the preview.
- It looks right in a dark and a light theme, and with a different accent.
- It handles offline, a slow host, an empty first run and a full storage.
- It stops work while hidden and comes back right after a reload.
- It asks only for the permissions and sites it uses.
- It credits the data and media it shows, under their licenses.
- The name, description and author say plainly what it is and who made it.