Theme authors

Get your theme listed

Publish a valid NetNewsWire theme release and the marketplace will discover it automatically.

The marketplace primarily indexes community themes on GitHub automatically. There is no submission form. A listing is not an endorsement by NetNewsWire or this marketplace, and it does not mean that a theme has received a security review.

Create a theme

New to theme authoring? Start with the NetNewsWire theme template. Choose Use this template → Create a new repository on GitHub, not Fork. It includes guided setup, a preview gallery, and automated checks and release builds. You can follow its instructions yourself or work with a coding agent.

Listing requirements

  1. Use a public, non-archived GitHub repository that is not a fork.
  2. Add the GitHub topic netnewswire-theme or netnewswire.
  3. Publish a non-draft, non-prerelease GitHub release.
  4. Attach a ZIP named Something.nnwtheme.zip to the release. GitHub’s automatic “Source code” archives do not qualify.
  5. Put a valid .nnwtheme package in that ZIP.

The package must contain these exact filenames:

Something.nnwtheme/
├── Info.plist
├── stylesheet.css
└── template.html

Info.plist must provide ThemeIdentifier, Name, CreatorHomePage, CreatorName, and an integer Version. Keep ThemeIdentifier stable across releases: the marketplace uses it to join download counts across every version of the same theme.

What appears on a card

Card fieldSource
Theme name and creatorName and CreatorName in Info.plist
Theme homeCreatorHomePage in Info.plist
Author linkGitHub profile of the repository owner
DescriptionGitHub repository description
Version and updated dateLatest stable GitHub release
StarsGitHub repository star count
DownloadsSum of downloads for every valid release asset with the same ThemeIdentifier, including prereleases
Install buttonLatest stable *.nnwtheme.zip release asset

Update those sources and the catalog will pick up the changes during its next refresh.

Add a good screenshot

The marketplace first looks in the repository for PNG, JPEG, or WebP files whose path contains screenshot, preview, or demo. Images under screenshots/, images/, assets/, or docs/ receive preference. Clear names such as these work well:

screenshots/theme-preview.png
docs/assets/dark-screenshot.webp

If no repository image matches, the marketplace uses the first non-badge raster image embedded in the README. A 16:10 image works best; other aspect ratios are cropped from the top. If neither source exists, the card receives a neutral placeholder.

Releases and download totals

Each new stable release should attach a fresh *.nnwtheme.zip asset. The card installs the newest stable release while its download count includes valid assets from all releases. Renaming an asset does not reset the total as long as the package keeps the same ThemeIdentifier.

The catalog refreshes automatically. A broken latest release removes the theme until a valid stable release is available, so test the ZIP before publishing it.

Curated collections

The marketplace also has a small, source-controlled collection manifest for established catalogs that cannot meet the automatic rules. It currently covers the PaiJi theme collection and themes from Stuart Breckenridge’s NetNewsWire theme page.

Manifest entries still point to public, non-archived GitHub repositories and must pass the same package validation. They may use a release asset published by a collection repository or a GitHub tag archive. GitHub does not publish download counts for tag archives, so those cards say “Downloads unavailable” rather than showing a misleading zero.

The manifest records the source repository, exact release or tag, asset name where applicable, and optional display copy or screenshot. Changes are reviewed as marketplace source changes, keeping each exception explicit and auditable.