Lifedrops is an open-source platform that enables lactating mothers to donate breastmilk safely and securely while earning Bitcoin rewards. What comes naturally to women shouldn't be undervalued. Breast milk is life-saving, and we're here to make sure it's celebrated, not stigmatized.
At LifeDrops, we believe women should be able to earn from something so natural, while supporting babies and families who need it most.
By partnering with certified hospitals and rewarding donors in sats, we ensure safety, transparency, and dignity in breast milk donation.
LifeDrops is more than a platform. It is a movement to normalize giving, earning, and saving lives through the most natural gift of all.
Note: This project is built as a minimal viable product (MVP).
- π° Dashboard with SAT Balance: View real-time balance in SAT (Satoshis) and approximate USD value
- β‘ Lightning Withdrawals: Withdraw earnings directly to personal Bitcoin Lightning wallet via Bitnob
- π Donation History: Track all past donations with status, volume, and payment details
- π Achievements & Gamification: Earn badges for completing milestones (First Drop, Quality Champion, Emergency Hero)
- π Schedule Donations: Easily schedule upcoming donations with hospital, time, and location
- π Anonymous Donor IDs: Privacy-first approach with anonymous identification
- π₯ Hospital Verification: All donations verified by certified hospital partners
- π± Responsive Design: Works seamlessly on mobile, tablet, and desktop
- π¨ Modern UI/UX: Beautiful, intuitive interface with smooth animations
- π Secure Authentication: User login and registration system
- π³ Lightning Network Integration: to enable fast bitcoin payments
The system uses Next.js 14 for frontend and backend (API routes), with Bitnob API as the Lightning Network service provider.
graph TD
A[Donor Dashboard] -->|Clicks Withdraw| B[Next.js API Route]
B -->|POST /api/lightning/withdraw| C[Bitnob Lightning API]
C -->|Lightning Network| D[Donor's Personal Wallet]
D -->|Payment Confirmed| C
C -->|Response| B
B -->|Update UI| A[Balance Updated to 0]
E[Hospital] -->|Verifies Donation| F[Creates Lightning Invoice]
F -->|Payment| G[Bitnob Receives]
G -->|Webhook| H[/api/webhooks/bitnob]
H -->|Update Database| I[Donor Balance Increased]
I -->|Real-time Update| A
- Hospital Verification: Hospital verifies milk donation (quality, volume)
- Payment Creation: Hospital creates Lightning invoice via Bitnob
- Lightning Settlement: Payment settles instantly on Lightning Network
- Webhook Notification: Bitnob sends webhook to backend
- Balance Update: Donor's balance updated in real-time
- Dashboard Refresh: UI shows new balance automatically
- Next.js 14 (App Router)
- React 18
- TypeScript
- Tailwind CSS
- Lucide Icons
- Next.js API Routes
- Axios (HTTP client)
- Bitnob Lightning API
- Bitnob
- Node.js 18+ and npm/yarn
- Bitnob account and API keys
- Git
- Clone the repository
git clone https://github.com/yourusername/lifedrops.git
cd lifedrops- Install dependencies
npm install
# or
yarn install- Set up environment variables
Create a .env.local file in the root directory:
# Bitnob API Configuration
BITNOB_API_KEY=your_api_key_here
BITNOB_SECRET_KEY=your_secret_key_here
BITNOB_WEBHOOK_SECRET=your_webhook_secret_here
# App Configuration
NEXT_PUBLIC_API_URL=http://localhost:3000- Run the development server
npm run dev
# or
yarn dev- Open your browser Navigate to http://localhost:3000
- Create Bitnob Account: Sign up at bitnob.com
- Generate API Keys: Navigate to Settings β API Keys
- Configure Webhook: Set webhook URL to
https://yourdomain.com/api/webhooks/bitnob - Fund Wallet: Add test sats to your Bitnob wallet for testing withdrawals
| Variable | Description | Required |
|---|---|---|
BITNOB_API_KEY |
Your Bitnob API key | Yes |
BITNOB_SECRET_KEY |
Your Bitnob secret key | Yes |
BITNOB_WEBHOOK_SECRET |
Webhook verification secret | Yes |
NEXT_PUBLIC_API_URL |
Your app's base URL | Yes |
- Sign Up: Create an account and receive your anonymous donor ID
- View Dashboard: See your SAT balance and donation history
- Schedule Donation: Book appointments with partner hospitals
- Complete Donation: Visit hospital and donate milk
- Receive Payment: Balance updates automatically after hospital verification
- Withdraw Earnings: Cash out to your Lightning wallet anytime
- Click "Withdraw" button on dashboard
- Enter your Lightning address (e.g.,
donor@bitnob.com) - Confirm withdrawal amount
- Sats sent instantly via Lightning Network
- Balance updates to reflect withdrawal
POST /api/lightning/create-invoice
Content-Type: application/json
{
"amount": 10000,
"description": "Donation payment for 150ml",
"donorId": "1BvBMxxxxnVVN2",
"donationId": "don_123"
}POST /api/lightning/withdraw
Content-Type: application/json
{
"lightningAddress": "donor@bitnob.com",
"amount": 10242,
"donorId": "1BvBMxxxxnVVN2"
}GET /api/lightning/balancePOST /api/webhooks/bitnob
X-Bitnob-Signature: <signature>
{
"event": "invoice.paid",
"invoice": {
"id": "inv_123",
"amount": 10000,
"status": "paid",
"metadata": {
"donor_id": "1BvBMxxxxnVVN2",
"donation_id": "don_456"
}
}
}- β Basic dashboard with balance display
- β Lightning withdrawal integration
- β Donation history tracking
- β Authentication system
- β Responsive design
- β³ Real-time notifications
- β³ Mobile app (React Native)
- β³ Hospital admin dashboard
- β³ Advanced analytics
- β³ Multi-language support
- β³ Database integration (PostgreSQL/MongoDB)
- β³ Email notifications
- β³ SMS reminders
- β³ Referral program
- β³ Community features
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Made with π for mothers and babies everywhere