Track your progress building the USDC Collector example app.
- Create new Next.js app with TypeScript and Tailwind
- Install Web3 dependencies (wagmi, viem, connectkit)
- Create
.env.localwith required variables - Initialize Git repository
- Create GitHub repository
- Push initial commit to GitHub
- Create
lib/web3-provider.tsxwith Wagmi config - Configure Base Sepolia network
- Set up ConnectKit provider
- Create
lib/contracts.tswith ABIs - Add GitStreamReceiver contract address
- Add USDC contract address (get from team)
- Get Base Sepolia testnet ETH from faucet
- Get WalletConnect project ID
- Configure MetaMask for Base Sepolia
- Test local development server (
pnpm dev)
Estimated Time: 30 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Create
components/DonationForm.tsx- Wallet connection button
- USDC amount input field
- Balance display
- Two-step approval flow (approve โ donate)
- Loading states
- Success confirmation
- Create
components/DonationStats.tsx- Fetch project balance from contract
- Display total collected amount
- Format USDC amounts correctly
- Create
components/GitStreamerBadge.tsx- "Powered by GitStreamer" branding
- Link to GitStreamer platform
- Create
components/ContributorBoard.tsx- Fetch contributor data from GitStreamer API
- Display contributor avatars and usernames
- Show tier assignments
- Display revenue share percentages
- Create
components/DonationHistory.tsx- Fetch recent donations
- Display transaction list
Estimated Time: 45 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Update
app/layout.tsx- Wrap with Web3Provider
- Set metadata (title, description)
- Configure fonts
- Update
app/page.tsx- Add header with title and description
- Add DonationStats component
- Add DonationForm component
- Add "How It Works" section
- Add GitStreamerBadge
- Add ContributorBoard (if ready)
- Style with Tailwind CSS
- Responsive design (mobile + desktop)
- Color scheme matches branding
- Smooth transitions and hover effects
- Write clear copy explaining the app
- Add "How It Works" section with 3 steps
- Add call-to-action for contributors
- Add links to GitStreamer platform
Estimated Time: 30 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Access GitStreamer frontend
- Connect wallet (owner address)
- Navigate to "New Project" page
- Enter repository URL
- Configure tier settings:
- Set tier thresholds (commits needed)
- Set revenue share percentages
- Set treasury share
- Verify total = 100%
- Submit and get PROJECT_ID
- Save PROJECT_ID securely
- Call
registerProject()on GitStreamReceiver - Verify project is registered on-chain
- Check project details with
getProject() - Verify project is active
- Update
NEXT_PUBLIC_PROJECT_IDin.env.local - Test project ID in local development
- Verify contract calls work with project ID
- Create
lib/gitstreamer-api.tsAPI client - Test fetching project data
- Test fetching contributor data
- Handle API errors gracefully
Estimated Time: 20 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Run app locally (
pnpm dev) - Test wallet connection
- Test wallet disconnection
- Verify USDC balance displays correctly
- Test with wallet that has no USDC
- Test with wallet that has USDC
- Get test USDC from MockUSDC or faucet
- Enter donation amount
- Approve USDC spending
- Verify approval transaction
- Check transaction on explorer
- Complete donation
- Verify donation transaction
- Check transaction on explorer
- Verify funds reached GitStreamReceiver
- Verify project balance updated
- Verify success message displays
- Test with 0 amount (should be disabled)
- Test with amount > balance (should fail)
- Test transaction rejection
- Test network switching mid-flow
- Test disconnecting wallet mid-flow
- Check GitStreamer API logs
- Verify revenue was detected
- Verify contributor balances updated
- Verify Yellow Network session created/updated
- Go to GitStreamer platform
- Connect wallet as contributor
- Link GitHub account via OAuth
- Verify tier assignment is correct
- Verify earnings are correct
- Claim USDC successfully
Estimated Time: 30 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Create issue #1: Feature or bug fix
- Create issue #2: Feature or bug fix
- Create issue #3: Feature or bug fix
- Label issues appropriately
- Add clear acceptance criteria
- Invite 2-3 collaborators to repository
- Share contribution guidelines
- Assign issues to contributors
- Review and merge PR #1
- Review and merge PR #2
- Review and merge PR #3
- Ensure commits are properly attributed
- Wait for GitStreamer to sync and recalculate tiers
- Check contributor #1 tier assignment
- Check contributor #2 tier assignment
- Check contributor #3 tier assignment
- Verify tier assignments make sense based on commits
Estimated Time: Variable (depends on contributors) Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Add clear project title and description
- Add "What is GitStreamer?" section
- Add "How This App Works" section
- Add "Try It" section with live demo link
- Add "For Contributors" section
- Add "Tech Stack" section
- Add "Local Development" instructions
- Add "Integrating GitStreamer" link
- Add license information
- Add contributing guidelines
- Create
INTEGRATION_GUIDE.md - Document prerequisites
- Document step-by-step integration process
- Add code examples
- Add troubleshooting section
- Add FAQs
- Add JSDoc comments to complex functions
- Add inline comments for tricky logic
- Document environment variables in
.env.example - Add TypeScript types for all functions
Estimated Time: 45 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- All tests passing locally
- No console errors or warnings
- All environment variables documented
- README is complete
- Git history is clean
- No sensitive data in commits
- Install Vercel CLI (
npm i -g vercel) - Run
vercelto deploy - Set environment variables in Vercel dashboard:
- NEXT_PUBLIC_CHAIN_ID
- NEXT_PUBLIC_RPC_URL
- NEXT_PUBLIC_GITSTREAM_RECEIVER
- NEXT_PUBLIC_USDC_ADDRESS
- NEXT_PUBLIC_PROJECT_ID
- NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID
- NEXT_PUBLIC_GITSTREAMER_API
- Deploy to production (
vercel --prod) - Test production deployment
- Set custom domain (optional)
- Test wallet connection on production
- Test donation flow on production
- Test all links work correctly
- Test mobile responsiveness
- Test on different browsers
- Verify analytics/monitoring works
- Purchase custom domain
- Configure DNS settings
- Add domain to Vercel
- Set up SSL certificate
- Test custom domain
Estimated Time: 20 minutes Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Add loading spinners for all async operations
- Add error messages for failed transactions
- Add success animations
- Add tooltips for complex features
- Add confirmation modals for important actions
- Improve mobile layout
- Test with screen readers (accessibility)
- Optimize images (use Next.js Image component)
- Enable caching for contract reads
- Minimize bundle size
- Test Lighthouse score
- Add loading skeletons
- Add analytics (optional: Vercel Analytics)
- Add error tracking (optional: Sentry)
- Monitor donation transactions
- Track user engagement
Estimated Time: Variable Status: โฌ Not Started | ๐ก In Progress | โ Complete
- Record demo video (2-3 minutes)
- Take screenshots for social media
- Write blog post explaining the app
- Create Twitter thread
- Post on Twitter/X
- Post on Reddit (r/ethereum, r/crypto)
- Share in Discord communities
- Add to GitStreamer showcase
- Create feedback form
- Monitor GitHub issues
- Respond to community questions
- Iterate based on feedback
Estimated Time: Variable Status: โฌ Not Started | ๐ก In Progress | โ Complete
- โ Application deployed and accessible
- โ No critical bugs or errors
- โ All core features working
- โ Lighthouse score > 90
- โ Project registered on GitStreamer
- โ At least 3 contributors with commits
- โ At least one successful donation
- โ Contributors successfully assigned to tiers
- โ At least one contributor successfully claimed earnings
- โ README is clear and comprehensive
- โ Integration guide is complete
- โ Code is well-documented
Ideas for future versions:
- Add donation history page
- Add contributor profile pages
- Add donation leaderboard
- Add NFT rewards for top donors
- Add social sharing functionality
- Add email notifications for claims
- Add recurring donation subscriptions
- Support multiple tokens (not just USDC)
- Add ENS name resolution
- Add IPFS for decentralized hosting
- Integrate with Farcaster for social features
- Add admin dashboard
- Add project analytics
- Add A/B testing
- Add internationalization (i18n)
Use this space to track issues, solutions, and learnings during development:
Date: ___________
Issue:
Solution:
Learnings:
---
Date: ___________
Issue:
Solution:
Learnings:
---
| Phase | Estimated | Actual | Notes |
|---|---|---|---|
| Phase 1: Setup | 30 min | ||
| Phase 2: Components | 45 min | ||
| Phase 3: Pages | 30 min | ||
| Phase 4: Integration | 20 min | ||
| Phase 5: Testing | 30 min | ||
| Phase 6: Contributors | Variable | ||
| Phase 7: Documentation | 45 min | ||
| Phase 8: Deployment | 20 min | ||
| Phase 9: Polish | Variable | ||
| Phase 10: Marketing | Variable | ||
| Total Core | ~3.5 hours |
Good luck building! Remember to commit regularly and push to GitHub often. Every commit brings you closer to demonstrating the power of GitStreamer! ๐