- ✅ Full implementation of the NIP-B0 web bookmarks specification
- ✅ Event kind 39701 (addressable events)
- ✅ Required
dtag with URL without scheme - ✅ Optional tags:
title,published_at, andt(topics) - ✅ Content field for bookmark descriptions
- ✅ Sign in via Nostr browser extensions (NIP-07)
- ✅ LoginArea component integration
- ✅ Protected bookmark creation (requires login)
- ✅ Users can only delete their own bookmarks
- ✅ Create bookmarks with URL, title, description, and multiple tags
- ✅ View bookmarks in a beautiful grid layout
- ✅ Delete bookmarks with confirmation dialog
- ✅ Search bookmarks by title, description, or URL
- ✅ Filter bookmarks by tags
- ✅ Author profile information displayed on each bookmark card
- ✅ External link indicators and date formatting
- ✅ Home page (
/) - Showcases latest bookmarks from the network - ✅ Bookmarks page (
/bookmarks) - Personal bookmark collection with full management - ✅ Beautiful gradient design with violet/indigo theme
- ✅ Responsive design (mobile, tablet, desktop)
- ✅ Loading skeletons for better UX
- ✅ Empty states with helpful messaging
- ✅ Toast notifications for actions
- ✅ Custom hooks:
useBookmarks,useUserBookmarks,useBookmark,useCreateBookmark,useDeleteBookmark - ✅ Event validation according to NIP-B0 specification
- ✅ Proper query construction with filters by author, kind, and d-tag
- ✅ Query client integration with TanStack Query for caching
- ✅ All TypeScript types properly defined
- ✅ All tests passing ✓
- ✅ ESLint validation passing ✓
- ✅ Build successful ✓
- ✅ Created
NIP.mddocumenting the NIP-B0 implementation - ✅ Includes example events and query patterns
- ✅ "Vibed with MKStack" attribution included
To run the app:
npm run devTo build for production:
npm run build- Sign in with your Nostr browser extension (Alby, nos2x, etc.)
- Add bookmarks by clicking the "Add Bookmark" button
- Search and filter your collection using the search bar and tag filters
- Click on bookmarks to open the URLs in a new tab
- Delete bookmarks you no longer need (only your own)
The app follows the decentralized Nostr protocol, so your bookmarks are stored across multiple relays and can be accessed by any NIP-B0 compatible client!