What is Nostr CMS?
Nostr CMS is a content management system built on the Nostr protocol.
It lets you manage and publish content using Nostr events, with admin access controlled
via your nostr.json. Supports scheduled posts, media uploads, and works
with any Nostr relay.
Perfect for meetup groups looking to publish events and content on Nostr.
Choose Your Nostr.json Setup
Nostr CMS requires a nostr.json file for authentication. Choose an option:
Choose Your Relay
🌸 Blossom Relay (Recommended)
Nostr CMS is designed to work best with a Blossom relay for optimal media handling and content storage. Blossom is a Nostr protocol extension for file storage.
You can optionally use any other Nostr relay, but Blossom relays provide the best experience.
wss://your-relay-url.com).
Set Master Public Key
Paste your Nostr public key (npub or hex) below.
Set Nostr JSON URL
nostr.json file used for admin authentication.Deploy to Vercel
Manual setup — click to expand instructions & environment variables
- Click the Deploy button above
- Add the 3 environment variables from above:
VITE_MASTER_PUBKEYVITE_REMOTE_NOSTR_JSON_URLVITE_DEFAULT_RELAY
- Deploy! If you update variables, redeploy to apply changes.
VITE_MASTER_PUBKEY="your-pubkey-here"
VITE_REMOTE_NOSTR_JSON_URL="your-nostr-json-url-here"
VITE_DEFAULT_RELAY="your-relay-here"
VITE_ENABLE_NSEC_LOGIN=true— shows the nsec (secret key) paste/import login option in the CMS. It is hidden by default for security. Set this only if admins need to log in with a raw nsec — extension (NIP-07) and bunker (NIP-46) logins always work without it.VITE_SWARM_API_URL— only needed for the scheduled-posts feature when your Swarm API lives at a different URL than your relay (e.g.,https://swarm.example.com/api). If unset, it auto-derives fromVITE_DEFAULT_RELAYashttps://<relay-host>/api. Requires a Swarm relay backend.