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:
- Run it through the checks below.
- 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.
- 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.budvorange includes.
Before you send it
npx budvo-addon validate --strict my-addonpasses 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 adescription), which becomes its catalog page. versionis new, andnotessays 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
reasonthat says plainly what earns a pledge, and an add-on that handlescappedkindly. Nothing that pressures people, fakes urgency or hides that money is involved. - Nothing sneaky with the network. Hosts in
networkare 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:
- Every file goes into a zip with
manifest.jsonat its root, in a fixed order, so the same files always make the same zip. Dotfiles,node_modulesand iCloud'sname 2.extduplicates are left out. - The zip's SHA-256 is computed.
- NullDaily signs, with ed25519, the UTF-8 bytes of these four lines joined with
\n(no trailing newline):
budvo-addon:v1<id><version><sha256 hex of the package>Budvo servers pin the marketplace's public key:
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
versionand setnotes. - 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.
Paid add-ons
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.