Developers · Publish
Guidelines
The rules every plug-in in the Plug-in Store follows, in numbered sections a reviewer can cite: purpose, quality, naming, safety, privacy, data and commerce.
On this page (10)
A reviewer holds every version to these rules and cites them by number and name, "Guidelines 5, Fair play"; each section keeps its address.
1. Purpose
- 1.A plug-in puts dated records on your readers' days that they would act on, or would otherwise go looking for.
- 2.Its records come from the body that publishes them, and say what it published.
- 3.It is not a channel for advertising, opinion or anything without a date (Is a plug-in right for this?).
2. Quality
- 1.Correct: it prints what the source says, no more and no less; its fixtures are real copies of its sources, and its example days are true.
- 2.Current: its schedule follows the source.
- 3.Fails loudly: when a source changes shape it exits non-zero with a reason. One that prints nothing, or guesses, does not pass.
- 4.The same every time: the same files give the same records.
3. Naming
- 1.Names say what it carries, in its readers' words, in each language it speaks (the words you choose).
- 2.It impersonates no one: not the source's holder, another publisher or another plug-in. Its publisher is the organization that verified its domain.
- 3.It never claims to be, be made by or be endorsed by Kanboombo, unless Kanboombo publishes it. Reserved ids (store, publish, search, markets, and any starting kanboombo, kb-, chk- or test-) are refused (PLG-ID-RESERVED), and a name a reader could mistake for another plug-in's must change.
- 4.Its attribution names the data's holder, and nobody else.
4. Safety
- 1.It does not try to reach the network, read outside its folder and sources, start processes or leave its locked room. Trying is a reason to reject it, even when the room stops it.
- 2.Its code is readable .mjs: not minified or obfuscated, with no eval, new Function or code built at run time.
- 3.Its titles are plain text, and its links lead to the page where the source publishes that record.
5. Fair play
- 1.It asks a source for no more than it needs, no more often than it changes, with a maxBytes close to what it sends.
- 2.It behaves the same under review as on readers' days; code that detects a check and does something else is rejected.
- 3.Its review information is true.
- 4.It respects every limit by design, not by luck.
6. A privacy policy
- 1.A listed plug-in links its publisher's privacy policy, over https; the listing cannot be submitted without one.
- 2.The policy says what the publisher does with any data it holds. A plug-in collects nothing from readers and never learns who they are, and the policy should not suggest otherwise.
7. Data minimisation
- 1.It prints only records its readers will see.
- 2.It declares only the sources it reads, and reads only the columns it needs.
- 3.Its backfill reaches only as far back as is worth having on a reader's days.
8. Restricted data
- 1.No personal data: nothing that identifies a private person, no names of private people, contact details or identity numbers.
- 2.Nothing you may not republish: only data whose terms let Kanboombo store it and show it to its readers. While the terms are unsettled, its audience is private and its retain unknown (Data rights).
- 3.One holder, under that holder's terms.
9. Commerce
- 1.No advertising, anywhere.
- 2.No affiliate links, tracking parameters or referral codes.
- 3.No checkout and nothing for sale; items link to the source's page for that record, never a storefront.
- 4.Plug-ins are free to install: no paid plug-ins, no payments.
10. Runs a day
- 1.Its schedule runs it at most 24 times a day.
- 2.Every plug-in shares one queue on the Server, and this keeps it fair; the portal refuses more (PLG-SCHEDULE-TOO-FREQUENT).