Welcome to TipTune 🎵⚡
TipTune enables instant music micro-tipping powered by Stellar blockchain.
Frontend:
- Next.js (App Router)
- TailwindCSS
- ShadCN UI
Backend:
- NestJS
- PostgreSQL
- Redis
- Stellar SDK
Infrastructure:
- Docker
- WebSockets
- S3 Storage
- Node.js v20+
- PNPM or Yarn
- Docker
- PostgreSQL
- Redis
- Stellar Testnet Account
apps/ frontend/ api/
packages/ shared/ ui/ config/
docs/
git clone https://github.com/your-org/tiptune.git cd tiptune
pnpm install
For a complete list of environment variables, descriptions, and defaults, see the Canonical Environment Variable Reference.
Core variables to get started:
DB_*: Database credentialsJWT_SECRET: Secret for tokensSTELLAR_NETWORK:testnetSTELLAR_TIP_ESCROW_CONTRACT: Deployed contract ID
docker-compose up -d
cd apps/api pnpm run start:dev
cd apps/frontend pnpm run dev
- Create feature branch
- Follow conventional commit format
- Add tests
- Submit PR
- CI must pass before merge
Unit Tests: pnpm run test
E2E Tests: pnpm run test:e2e
- Redis Pub/Sub for broadcasting tips
- WebSocket Gateway in NestJS
- Client listens for tip.received events
- Artist dashboard updates instantly
- Fan selects tip amount
- Backend generates payment payload
- Frontend signs transaction
- Transaction submitted to Stellar
- Webhook confirms transaction
- Tip recorded in DB
- WebSocket emits tip.received event
- Strict TypeScript
- DTO validation required
- No business logic in controllers
- Service layer handles blockchain
- Transactions must be idempotent
- Create module folder in src/
- Add module.ts
- Add controller.ts
- Add service.ts
- Add dto/
- Register module in AppModule
- Keep PRs small
- Add tests
- Update documentation
- Follow lint rules
TipTune empowers artists to earn directly from fans through instant micro-payments — no intermediaries, no friction.
Welcome to the future of music tipping 🎶⚡