Skip to content

Publishing to the marketplace

The marketplace lists add-ons that anyone with a Budvo server can install from their dashboard. Every package in it is reviewed and signed by NullDaily, and servers check that signature before installing anything.

Send it in

While the marketplace is new, NullDaily publishes add-ons after reviewing them. To submit yours:

  1. Run it through the checks below.
  2. Email [email protected] with your add-on folder as a zip, or a link to its source, and a few lines about what it does and why it needs each permission.
  3. We'll reply with questions or a go. Once it's signed and published, it shows up in the catalog for every server its compat.budvo range includes.

Before you send it

  • npx budvo-addon validate --strict my-addon passes with no errors or warnings.
  • You've used it in npx budvo-addon dev, in light and dark mode, in privacy mode and with the jar at its limit.
  • You've sideloaded it onto a real server and opened it in the dashboard, and on a phone if you can.
  • It has an icon and a README.md (or a description), which becomes its catalog page.
  • version is new, and notes says what changed.

What review looks for

  • Permissions it needs. Every permission should be obviously used. Reading debts to show a chart is fine; reading them "for later" isn't.
  • Honest pledges. Small daily limits, a reason that says plainly what earns a pledge, and an add-on that handles capped kindly. Nothing that pressures people, fakes urgency or hides that money is involved.
  • Nothing sneaky with the network. Hosts in network are there for a feature people can see. No tracking, analytics or sending household data anywhere.
  • It works in the sandbox. No external scripts or fonts, no dead buttons from blocked popups or fetch, and a clear message when something can't load.
  • It's kind to people. Readable in both modes, usable with a keyboard, and respectful of privacy mode.
  • Size. 5 MB at most; most add-ons are well under 100 KB.

Signing

After review, NullDaily builds the package from your folder:

  1. Every file goes into a zip with manifest.json at its root, in a fixed order, so the same files always make the same zip. Dotfiles, node_modules and iCloud's name 2.ext duplicates are left out.
  2. The zip's SHA-256 is computed.
  3. NullDaily signs, with ed25519, the UTF-8 bytes of these four lines joined with \n (no trailing newline):
text
budvo-addon:v1<id><version><sha256 hex of the package>

Budvo servers pin the marketplace's public key:

text
TS1Mk2mZdtc3hPtpuwwBh7zqEOvJi8vdaSUczQSMyus=

A server refuses a package whose SHA-256 or signature doesn't match, or whose manifest disagrees with its catalog listing. The private key never leaves NullDaily.

Versions and updates

  • A published version never changes. Publishing the same version with different files is refused. To ship any change, bump version and set notes.
  • Compatibility decides who sees it. The catalog shows each server the add-ons whose latest version works with that server's version, using compat.budvo. Widen the range in a new version when a new Budvo release works with your add-on.
  • Breaking bridge changes are rare. They bump the SDK major, and servers keep speaking older majors, so an add-on built for SDK 1.x keeps working.
  • Changing permissions is a big deal. Owners approved the old list. Add a permission only with a new version whose notes explain why.

Your listing

The catalog page uses the manifest's name, summary and icon, the description (or your README.md, as markdown), tags, and each version's notes. Add-ons published by NullDaily carry a verified badge.

Everything is free for now. The pieces for paid add-ons exist (a price on every listing and entitlements for owners), but nothing is on sale yet. When it is, Budvo will never offer a purchase while a household is in debt mode.