zapwall4Science
Plateforme de publication d'articles scientifiques et de science-fiction avec système de sponsoring, commissions et rémunération des avis. Les lecteurs peuvent lire les aperçus gratuitement et débloquer le contenu complet en payant avec Lightning Network.
Features
- Nostr Authentication: Authenticate using Alby browser extension (NIP-07)
- Free Previews: Public notes showing article previews
- Paid Content: Private notes containing full content, unlocked after 800 sats zap
- Lightning Payments: Integrated Alby/WebLN for Lightning payments (works with Alby and other Lightning wallets)
- Payment Modal: User-friendly payment interface with invoice display
- TypeScript: Fully typed codebase
Getting Started
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser
Environment Variables
NEXT_PUBLIC_NOSTR_RELAY_URL: Nostr relay URL (default: wss://relay.damus.io)NEXT_PUBLIC_NIP95_UPLOAD_URL: NIP-95 media upload endpoint URL (required for image/video uploads)
NIP-95 Upload Service
The application requires a NIP-95 compatible upload service for media uploads (images and videos). You can use services like:
- nostr.build - Public NIP-95 service
- void.cat - Another public NIP-95 service
- Or host your own NIP-95 compatible service
Example .env.local:
NEXT_PUBLIC_NOSTR_RELAY_URL=wss://relay.damus.io
NEXT_PUBLIC_NIP95_UPLOAD_URL=https://nostr.build/api/v2/upload
Lightning Wallet Setup
This project uses Alby browser extension for both Nostr authentication and Lightning payments:
- Alby: Install the Alby browser extension
- Alby provides both Nostr authentication (NIP-07) and Lightning payments (WebLN)
Users need to have Alby installed to authenticate and make payments. The application will prompt them to connect when needed.
Project Structure
/pages: Next.js pages/components: React components/lib: Utilities and Nostr helpers/types: TypeScript type definitions/hooks: Custom React hooks
Languages
TypeScript
97.8%
Shell
1.4%
JavaScript
0.4%
CSS
0.4%