What you can publish and what you can't
The content rules in plain words: secrets in the package, real data, third-party licences, other people's brands, and a listing that matches what you actually deliver.
The rule, and what this article does
What you may publish on Bernuvia is set by the Content Policy, which forms part of the Terms. That is the rule. This article only explains it in plain words, so if anything here and the document disagree, the document wins.
It does not only cover the package you upload: it covers the template and its files, the name, the description, the screenshots and the cover image, your profile, your reviews and replies, support messages, and everything you send through our API or from an assistant connected over MCP.
What counts as a publishable template
A template is real, complete software within what it claims to be: code that installs and runs by following its own documentation, with the files and assets its listing advertises.
- It has to be code you can commercialise: because you wrote it, because it was assigned to you in writing, or because its upstream licence allows it.
- Your employer's or a client's code does not count without authorisation, even if you wrote it yourself. Nor does code downloaded from another marketplace, from someone else's repository or from a leak, nor that same code with cosmetic changes that do not turn it into something else.
- If it is still in progress, say so: state it in its stage and describe exactly what works today.
- We do not verify who the real author is. We publish on your declaration of ownership, and answering for it is yours.
These are not templates, and they get rejected: a link to another site, an empty repository, a filler archive, a course, a block of development hours, or a preview of something that does not exist yet.
What trips people up most
Almost every rejection comes from these points. Go through them before you submit, even if the template is yours from top to bottom.
- Secrets inside the package. Before uploading it, remove API keys, tokens, passwords, certificates and connection strings, including the ones left in the version history and in example environment files holding real values. If we find one, we withdraw the template without waiting and tell you: a published credential is a compromised credential, so rotate it.
- Real personal data. No customer databases, email addresses, phone numbers, postal addresses, identity documents or medical or financial records belonging to real people: test data has to be invented. The same goes for other people's confidential information, such as contracts, internal pricing or code under a non-disclosure agreement.
- Third-party components and their licences. You may include them, but declare which ones and under what licence, in the description or in a licence file inside the package. Those licences prevail over Bernuvia's as regards those components. Do not include components whose licence is incompatible with the way you sell (no strong-reciprocity ones in a template you sell for proprietary use, and no attribution-required ones without the attribution), nor fonts, icons, imagery, music or paid assets you cannot redistribute: swap them for freely licensed alternatives or for placeholders, and say so in the listing.
- Other people's trade marks. You may name them where you need to say what your template works with. What you may not do is use them in a way that suggests your template is official, certified or endorsed by that brand: not in the name, not on the cover image, not with their logo.
- Unlawful content or content that infringes rights. Out of bounds: malicious code (backdoors, credential or wallet theft, hidden mining, undeclared telemetry), attack tooling, fraud and impersonation, explicit sexual content, hate and violence, kits for issuing tokens presented as an investment, wallet drainers and, in general, anything that infringes third-party rights. The full list is in the Content Policy.
- The listing has to match what you deliver. The description, the screenshots, the stated stage and the list of what is included have to match the actual contents of the archive. A screenshot of a feature the template does not ship is a false description, and it is the first thing anyone looks at if the buyer opens a dispute.
If you use generated or stock imagery to illustrate the result, do not present it as screenshots of the product. And do not inflate the reference price to manufacture a discount: the struck-through price comes from that template's real history.
Screenshots: what to check before uploading them
Screenshots are the part of the listing where something slips through by accident most often: they are taken on a real environment and drag along whatever was on screen. The wizard asks for a minimum of 3 images and takes up to 20, and the first one is the cover, so go through them one by one.
- Other people's data: names, email addresses, phone numbers, photos or messages from real customers or colleagues. Fill the demo with invented data before you capture.
- Full addresses and identifiers: postal addresses, account numbers, wallet addresses, order or user identifiers, and any key visible in a console, in an admin panel or in the browser's address bar.
- Third-party brands: logos, screens from other products or someone else's interfaces that suggest your template is official or endorsed.
- Content that is not yours: stock photos, icons, illustrations or fonts you have no licence to redistribute, even if they are only there as filler.
- Screens the template does not ship: a future version, a separate plan, or simply another project.
Quick tricks: capture in a clean window, with a test session and no extensions; cover whatever is left with a solid block rather than a blur, which can be undone; and look at the edges of the image too, because that is where the bookmarks bar and system notifications creep in.
If you get rejected, how to fix it
A rejection does not close the door. The review is done by people on the team, we tell you what went wrong, and you can fix it and submit again from your panel.
- 1In My templates, open Rejection reason and read what was flagged: the reason states the specific facts, not a formula.
- 2Press Fix and resubmit: the editor opens with everything preloaded. Fix exactly what was flagged, save, and resubmission for review is automatic.
- 3If you think there was a mistake, write to us from the contact form with the appeal category. You have six months to do it, and that category does not count towards the one-message-per-day limit.
Resubmitting the same thing without addressing what was flagged may close resubmission for that template: if the chip turns to Rejected · closed, the rejection is final. The full flow, with its statuses, is in If you get rejected: how to fix and resubmit.
Related articles
Was this article helpful?
Didn't solve it? Write to us from Contact or go back to the Help Center.

