A cross-platform mobile and web application for independent beat producers and artists to create, share, and monetize music beats using blockchain technology and Web3 integration.
- Beat Creation & Management: Create and manage your music beats with professional audio tools
- Audio Recording: Record performances with high-quality microphone access
- Web3 Integration: Blockchain-based verification and transactions using ethers.js
- Payment Processing: Stripe integration for seamless payment handling
- Cross-Platform: iOS, Android, and Web support via Expo
- Navigation: Bottom tab navigation for intuitive UI/UX
- Gesture Support: Smooth animations and gesture recognition with Reanimated
vbeats.app/
βββ app/ # Application source code
β βββ screens/ # Screen components
β βββ components/ # Reusable components
β βββ navigation/ # Navigation configuration
β βββ services/ # API and blockchain services
β βββ hooks/ # Custom React hooks
β βββ context/ # Context providers
β βββ utils/ # Utility functions
βββ assets/ # Images, icons, fonts
βββ features/ # Feature-specific modules
βββ tests/ # Test files
βββ app.json # Expo configuration
βββ eas.json # EAS build configuration
βββ package.json # Dependencies
βββ .env.example # Environment variables template
βββ .gitignore # Git ignore rules
βββ setup.sh # Setup script
- Node.js >= 16.x
- npm or yarn
- Expo CLI:
npm install -g expo-cli - EAS CLI (for building):
npm install -g eas-cli
# Clone the repository
git clone https://github.com/Ov4433/vbeats.app.git
cd vbeats.app
# Run setup script
bash setup.sh
# Or manually install dependencies
npm install# Copy environment template
cp .env.example .env
# Configure your environment variables
# - API URLs
# - Blockchain RPC endpoints
# - Stripe API keys
# - EAS Project ID# Start the Expo development server
npm start
# Run on specific platforms
npm run ios # iOS simulator
npm run android # Android emulator
npm run web # Web browser# Development build
npm run eas:build:dev
# Preview build
npm run eas:build:preview
# Production build
npm run eas:build:prod
# Submit to app stores
npm run eas:submitVbeatS production rollout targets all three platforms:
- iOS App Store release
- Android Play Store release
- Web deployment
Production runtime targets:
- API:
https://api.vbeats.app - Blockchain RPC:
https://mainnet.base.org - EAS project linkage:
EAS_PROJECT_IDvia environment
Run release validation before production builds:
npm run release:readinessThis check verifies:
- No placeholder EAS project ID remains
- Production profile does not use localhost
- Production blockchain RPC uses mainnet
.env.exampledoes not contain test keys or staging defaults
- Build and test internal development profile (
eas:build:dev) - Run preview/internal QA (
eas:build:preview) - Trigger production build (
eas:build:prod) - Submit production binaries (
eas:submit) - Deploy web build and monitor startup health
- Enable crash and error monitoring for mobile and web
- Monitor API uptime and payment webhook health
- Track signups, activations, purchases, and retention metrics
- Keep a first-week hotfix branch/process ready for rapid patches
- Maintain rollback runbooks for app/web/API incidents
- React Native v0.73
- Expo v50 - Cross-platform development
- React Navigation v6 - Navigation management
- React Native Reanimated - Smooth animations
- React Native Gesture Handler - Touch interactions
- ethers.js v6.8 - Blockchain interactions
- thirdweb - Web3 SDK for React Native
- Stripe React Native - Payment processing
- Expo AV - Audio and video handling
- Audio Recording API - Native microphone access
- Babel - JavaScript transpiler
- Jest - Testing framework
- TypeScript - Type safety (optional, ready to implement)
# Blockchain
BLOCKCHAIN_RPC_URL=https://mainnet.base.org
BLOCKCHAIN_NETWORK_ID=8453
# API
API_URL=https://api.vbeats.app
API_VERSION=v1
# Payments
STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_SECRET_KEY=sk_live_...
# Web3
THIRDWEB_CLIENT_ID=your_client_id
# EAS
EAS_PROJECT_ID=your_eas_project_id| Command | Description |
|---|---|
npm start |
Start Expo dev server |
npm run ios |
Run on iOS simulator |
npm run android |
Run on Android emulator |
npm run web |
Run web version |
npm run test |
Run Jest tests |
npm run eas:build:dev |
Build development version |
npm run eas:build:preview |
Build preview version |
npm run eas:build:prod |
Build production version |
npm run eas:submit |
Submit to app stores |
npm test- β iOS (13.0+)
- β Android (API 21+)
- β Web
- Private keys and sensitive data should NEVER be committed
- Use
.envfiles for local development (already in .gitignore) - Implement wallet security best practices
- Validate all user inputs
- Use HTTPS for all API communications
- Create a feature branch:
git checkout -b feature/your-feature - Commit changes:
git commit -am 'Add your feature' - Push to branch:
git push origin feature/your-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Ensure microphone permissions are granted in system settings
- Check
app.jsonfor correct permission descriptions
- Verify RPC endpoint is accessible
- Check network ID configuration in
.env
- Clear cache:
expo prebuild --clean - Reinstall dependencies:
rm -rf node_modules && npm install - Check EAS credentials:
eas whoami
For issues and questions, please open an issue on GitHub or contact the VbeatS team.
Built with β€οΈ by VbeatS Team