Public site for our browser extensions, served by GitHub Pages at https://add-ons.nskha.com.
It exists because both stores require a listing's homepage, support, and privacy policy URLs to be publicly reachable, and our extension source repositories are private.
Static HTML and one stylesheet. No Jekyll, no build step, no dependencies — .nojekyll is present
so Pages publishes the files exactly as committed. Push to main and it redeploys.
CNAME add-ons.nskha.com
.nojekyll serve files as-is, skip Jekyll
style.css every page shares this one sheet
fonts/ Geist + Geist Mono, the faces the extensions themselves ship
icons/ extension icons
assets/ social preview images
index.html the catalog, one card per extension
<extension>/index.html detail page -> Homepage URL
<extension>/privacy.html privacy policy -> Privacy policy URL
Copy discord-quiet/ to <new-extension>/, rewrite the content, drop its 128px icon into
icons/, and add a card to index.html. The card's four rows — does, touches, stores,
sends — are the structure of the site: state what the extension reaches, what it keeps, and what
it transmits, in terms a reader can check against the browser's own permission prompt.
| Store field | Value |
|---|---|
| Homepage | https://add-ons.nskha.com/<extension>/ |
| Privacy policy | https://add-ons.nskha.com/<extension>/privacy.html |
| Support | addons@nskha.com |
Chrome takes the homepage from the extension's homepage_url manifest key whenever one is present,
and the dashboard field cannot override it. Changing a homepage therefore means a rebuild and a
fresh package upload, not a form edit.
Keep exactly one copy of each policy, here. An earlier version of this policy lived in the
extension's own repo as well, and the two drifted until the repo copy claimed the extension asked
for no scripting permission months after scripting shipped. A store reviewer diffing a policy
against a manifest rejects on that. Any change to a manifest's permissions belongs in the same
commit as the change to the policy page here.