A simple platform that allows you to send a High Five to a bitcoiner to express gratitude and/or recognize their work. A High Five is simply a note accompanied by an optional payment (as honorarium) in bitcoin.
- Lightning Network Payments: Send Bitcoin payments instantly with Lightning Network integration
- Nostr Protocol Integration: High Fives are posted to Nostr
- Mobile-First Design: Responsive design optimized for mobile devices
- Lightning Address Support: Send payments using Lightning addresses and npub identifiers
- BOLT12 Payments: Support for BIP-353 Bitcoin addresses
- React with TypeScript
- Wouter for client-side routing
- TanStack Query for data fetching and caching
- Shadcn/UI + Tailwind CSS for modern, accessible UI components
- Framer Motion for smooth animations
- React Hook Form with Zod validation
- Node.js with Express
- TypeScript for type safety
- Drizzle ORM for database operations
- PostgreSQL for data persistence
- WebSocket for real-time features
- Lightning Network for instant Bitcoin payments
- Nostr Protocol for decentralized social features
- @getalby/lightning-tools for Lightning Network utilities
- @nostr-dev-kit/ndk for Nostr protocol implementation
- Node.js 20 or higher
- PostgreSQL database
- Lightning Network access (optional, for payment features)
- Nostr relay access (optional, for social features)
-
Clone the repository
git clone <your-repo-url> cd high-five-platform
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:DATABASE_URL=postgresql://username:password@localhost:5432/highfive NODE_ENV=development
-
Set up the database
npm run db:push
-
Start the development server
npm run dev
The application will be available at http://localhost:5000
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run start- Start production servernpm run check- Run TypeScript type checkingnpm run db:push- Push database schema changes
├── client/ # Frontend React application
│ └── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Route components
│ └── lib/ # Utilities and configurations
├── server/ # Backend Express application
│ ├── routes.ts # API route definitions
│ ├── storage.ts # Data storage interface
│ ├── nostr-*.ts # Nostr protocol integrations
│ ├── lightning-*.ts # Lightning Network utilities
│ └── blossom-*.ts # Blossom file storage
├── shared/ # Shared types and schemas
│ └── schema.ts # Database schema and types
└── package.json
- Lightning address lookup and invoice generation
- Support for BIP-353 Bitcoin payment instructions
- QR code generation for payment requests
- Integration with Lightning service providers
- Publishing high-five events to Nostr relays
- Profile information retrieval using npub identifiers
- Direct messaging capabilities
- File sharing through Nostr events
This project is configured for easy deployment on Replit:
- The application will automatically build using
npm run build - Production server starts with
npm run start - Database migrations run automatically
For other platforms:
-
Build the application
npm run build
-
Set production environment variables
NODE_ENV=production DATABASE_URL=<your-production-database-url>
-
Start the production server
npm run start
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Lightning Network for instant Bitcoin payments
- Nostr Protocol for decentralized social networking
- Shadcn/UI for beautiful UI components
- Drizzle ORM for type-safe database operations
For support, please open an issue in the GitHub repository or contact the maintainers.
Made with ❤️ for the Bitcoin and Nostr communities