NostrLink is a lightweight Nostr chat client built with React + Vite. It supports:
- Nostr key generation/login (NIP-19)
- Global chat and community feed (kind 1)
- Direct messages (kind 4, NIP-04)
- Group chat (NIP-28)
- Media uploads (image/video/audio/voice) via Cloudflare R2
- Relay management and health checks
- Local key persistence
- Global chat and community feed (kind 1)
- Direct messages with NIP-04 encryption
- Group chat with NIP-28
- Media uploads (image/video/audio/voice) via Cloudflare R2
- Relay management (add/remove, latency check)
- Local key storage (nsec) and language preference
- Settings: address and private key copy
- Node.js (LTS recommended)
npm installnpm run devnpm run buildnpm run preview- Copy
.env.exampleto.envand fill in the R2 settings. - Start the upload server:
npm run upload-server- Start the frontend:
npm run dev- Default relay:
wss://nos.lol - Keys are stored in
localStorageundernostr_nsec.
- 全球聊天与社区动态(kind 1)
- 私信(NIP-04 加密,kind 4)
- 群聊(NIP-28,创建/加入/聊天)
- 支持发送图片/视频/音频/语音(Cloudflare R2)
- 中继管理(添加/移除、延迟检测)
- 本地密钥存储(nsec)与语言偏好
- 设置页:地址与私钥复制
- Node.js(建议 LTS)
npm installnpm run devnpm run buildnpm run preview- 复制
.env.example为.env并填写 R2 配置。 - 启动上传服务:
npm run upload-server- 启动前端:
npm run dev- 默认中继:
wss://nos.lol - 密钥保存在
localStorage的nostr_nsec中。