Zappix is a modern social image sharing application built on the decentralized Nostr protocol. Share and discover amazing images with a vibrant community while maintaining full ownership of your data.
- NIP-68 Image Posts: Share single or multiple images with rich metadata
- Multiple Upload: Upload multiple images per post with drag & drop support
- Image Metadata: Automatic extraction of dimensions, MIME types, and SHA-256 hashes
- Content Warnings: Mark sensitive content appropriately
- Reactions (NIP-25): Like posts with emoji reactions
- Comments (NIP-22): Threaded comment system with replies
- Zaps (NIP-57): Lightning payments for content appreciation
- Bookmarks (NIP-51): Save your favorite posts
- Following: Follow users and see their posts in a dedicated feed
- Hashtag System: Organize content with hashtags for easy discovery
- Featured Hashtags: Curated hashtag categories (#olas, #photography, #art, etc.)
- Global Feed: Discover content from across the network
- Following Feed: See posts from people you follow
- Outbox Model (NIP-65): Efficient content discovery using relay hints
- Nostr Wallet Connect: Seamless zapping with wallet integration
- Blossom Media Servers: Decentralized media storage
- Responsive Design: Works perfectly on desktop and mobile
- Orange & Purple Theme: Vibrant, modern color scheme
- Dark/Light Mode: Automatic theme switching
- Mobile Optimized: Touch-friendly interface for mobile devices
- Progressive Web App: Install as a native app
- React 18 - Modern UI framework with hooks and concurrent rendering
- TypeScript - Type-safe development
- TailwindCSS - Utility-first styling
- Vite - Fast build tool and development server
- shadcn/ui - Beautiful, accessible UI components
- Nostrify - Nostr protocol integration
- TanStack Query - Data fetching and caching
- React Router - Client-side routing
Zappix implements several Nostr Improvement Proposals (NIPs):
- NIP-68 (Kind 20): Picture events for image-centric content
- NIP-25 (Kind 7): Reactions and emoji responses
- NIP-57 (Kind 9734/9735): Lightning zaps for content monetization
- NIP-22 (Kind 1111): Threaded comments system
- NIP-51 (Kind 10003): Bookmarks and content curation
- NIP-65 (Kind 10002): Relay list metadata for outbox model
- NIP-04: Encrypted private bookmarks
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd zappix
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser to
http://localhost:5173
npm run build
npm test
- Connect Your Nostr Identity: Use any Nostr extension (like Alby, nos2x) or enter your private key
- Upload Images: Click the "+" button to create your first image post
- Add Details: Include a title, description, hashtags, and location
- Publish: Share your post with the Nostr network
- Global Feed: Browse all image posts from connected relays
- Following Feed: See posts from users you follow
- Hashtag Discovery: Explore curated hashtag categories
- Search: Find specific content using hashtags
- React: Show appreciation with emoji reactions
- Comment: Engage in threaded discussions
- Zap: Send lightning payments to creators
- Bookmark: Save posts for later viewing
- Share: Copy post links or Nostr event IDs
Configure your read/write relays in Settings > Relays for optimal content discovery and publishing.
Connect your lightning wallet via Nostr Wallet Connect in Settings > Zaps for seamless zapping.
Configure Blossom media servers in Settings > Zaps for decentralized image hosting.
We welcome contributions! Please see our contributing guidelines for details on:
- Code style and standards
- Pull request process
- Issue reporting
- Feature requests
Zappix prioritizes user security:
- No Private Key Storage: Uses Nostr signers for secure key management
- Content Verification: SHA-256 hashes verify image integrity
- Encrypted Bookmarks: Private bookmarks use NIP-04 encryption
- CSP Headers: Content Security Policy prevents XSS attacks
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with MKStack - Modern development stack
- Powered by the Nostr Protocol - Decentralized social networking
- UI components from shadcn/ui - Beautiful, accessible components
- Icons from Lucide - Beautiful & consistent icons
- Documentation: Check our NIP.md for protocol implementation details
- Issues: Report bugs and request features on GitHub
- Community: Join the Nostr community for support and discussions
Vibed with MKStack