Enable nostr protocol based comment system on your Nuxt 4 based applications.
- Nostr-powered comments for Nuxt Content blog posts
- NIP-07 login prompt if user is not authenticated
- Comments are written in Markdown and rendered via @nuxt/content's ContentRendererMarkdown
- Configurable relay list and tagging strategy
Install the module to your Nuxt application with one command:
npx nuxi module add @threenine/nuxstr-comments
That's it! You can now use Nuxstr Comments in your Nuxt app ✨
By default, the component tags comments by the current route path (e.g., content:/blog/my-post) and fetches them from configured relays.
- Configuration (nuxt.config.ts):
export default defineNuxtConfig({
modules: [
'@threenine/nuxstr-comments',
],
nuxstrComments: {
relays: ['wss://relay.damus.io', 'wss://relay.nostr.band'],
tagStrategy: 'path',
tagPrefix: 'comment:',
},
})
- Add the comments component where you want comments to appear (usually below a ContentDoc):
<template>
<div>
<NuxstrComments />
</div>
</template>
Select your preferred relays from the list of relays and configure the tag strategy and tag prefix.
When a user attempts to post, they will be prompted to log in with their Nostr browser extension NIP-07.
Comments are published as kind: 1111 as defined in NIP-22
notes tagged with a t
tag containing the content tag (e.g., comment:/blog/my-post
).
Replys to comments are enabled, and are also published as kind: 1111, as defined in NIP-22
Local development
# Install dependencies
pnpm install
# Generate type stubs
pnpm run dev:prepare
# Develop with the playground
pnpm run dev
# Build the playground
pnpm run dev:build
# Run ESLint
pnpm run lint
# Run Vitest
pnpm run test
pnpm run test:watch
# Release new version
pnpm run release
⚡️ lightning address: