61 lines
2.2 KiB
Markdown

# 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
1. Install dependencies:
```bash
npm install
```
2. Run the development server:
```bash
npm run dev
```
3. Open [http://localhost:3000](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](https://nostr.build/) - Public NIP-95 service
- [void.cat](https://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](https://getalby.com/)
- 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