A full-stack web platform that allows users to generate mobile apps (Android APK and iOS IPA) by entering a website URL. The platform wraps websites in WebView-based mobile apps with Firebase and AppsFlyer integration, lead capture capabilities, and an admin dashboard.
- Website to App Conversion: Transform any website into a native mobile app
- Cross-Platform Support: Generate both Android APK and iOS IPA files
- WebView Integration: Compliant with Google Play and App Store guidelines
- User Management: Complete authentication and authorization system
- Admin Dashboard: Comprehensive platform monitoring and management
- Firebase Integration: Analytics, Crashlytics, and Cloud Messaging support
- AppsFlyer Integration: Install tracking and in-app event analytics
- Lead Capture System: Capture user data on first app open or form submission
- Custom Branding: App name, package/bundle ID, splash screen, and app icon customization
- Offline Support: Optional caching for offline content viewing
- Push Notifications: Firebase Cloud Messaging integration
- Google Sheets Integration: Automatic lead data export via Google Sheets API
- MongoDB Storage: Scalable data storage with Mongoose ODM
- Real-time Analytics: Live tracking and reporting
- Data Export: CSV and JSON export capabilities
frontend/
βββ pages/ # Next.js pages and routing
β βββ index.tsx # Landing page
β βββ apps/ # App management pages
β βββ admin/ # Admin dashboard pages
βββ components/ # Reusable React components
β βββ ui/ # UI component library
βββ services/ # API integration services
βββ styles/ # Global styles and Tailwind CSS
βββ types/ # TypeScript type definitions
βββ utils/ # Utility functions
backend/
βββ src/
β βββ server.ts # Main application server
β βββ models/ # MongoDB/Mongoose models
β βββ routes/ # API route handlers
β βββ middleware/ # Express middleware
β βββ services/ # Business logic services
β βββ types/ # TypeScript interfaces
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
mobile-template/
βββ src/
β βββ index.html # Main WebView container
β βββ firebase-config.js # Firebase SDK initialization
β βββ lead-capture.js # Lead capture functionality
β βββ assets/ # App icons and splash screens
βββ capacitor.config.ts # Capacitor configuration
βββ build-config.json # Build automation settings
- Framework: Next.js 14 with React 18
- Language: TypeScript
- Styling: Tailwind CSS with custom components
- State Management: React Query for server state
- Form Handling: React Hook Form with validation
- UI Components: Custom component library with accessibility
- Runtime: Node.js with Express.js
- Language: TypeScript
- Database: MongoDB with Mongoose ODM
- Authentication: JWT-based authentication
- Security: Helmet, CORS, rate limiting
- File Upload: Multer for asset management
- Framework: Capacitor 5.x for cross-platform apps
- WebView: Native WebView with custom JavaScript bridge
- Analytics: Firebase SDK + AppsFlyer SDK
- Build Tools: Gradle (Android), Xcode (iOS)
- Database: MongoDB with connection pooling
- Caching: Redis for session management
- File Storage: Local filesystem with cloud storage options
- Services: Docker Compose for local development
- Node.js 18+ and npm
- MongoDB 6.0+
- Redis (optional, for caching)
- Android SDK and Gradle (for Android builds)
- Xcode (for iOS builds, macOS only)
Create .env files in both backend/ and frontend/ directories:
# Database
MONGODB_URI=mongodb://localhost:27017/mobile-app-generator
REDIS_URL=redis://localhost:6379
# Authentication
JWT_SECRET=your-super-secure-jwt-secret-key-here
JWT_EXPIRES_IN=7d
# Firebase Admin SDK
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
FIREBASE_CLIENT_EMAIL=firebase-adminsdk-xxxxx@your-project-id.iam.gserviceaccount.com
# Google Sheets API
GOOGLE_SHEETS_CREDENTIALS_PATH=./google-sheets-credentials.json
GOOGLE_SHEETS_SPREADSHEET_ID=your-spreadsheet-id
# AppsFlyer
APPSFLYER_API_TOKEN=your-appsflyer-api-token
# Build System
BUILD_QUEUE_ENABLED=true
MAX_CONCURRENT_BUILDS=3
BUILD_TIMEOUT_MINUTES=30
# Security
BCRYPT_ROUNDS=12
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100
# Server
PORT=3001
NODE_ENV=developmentNEXT_PUBLIC_API_URL=http://localhost:3001/api
NEXT_PUBLIC_FIREBASE_CONFIG={"apiKey":"...","authDomain":"..."}
NEXT_PUBLIC_APP_NAME=Mobile App Generator
NEXT_PUBLIC_APP_VERSION=1.0.0- Clone the repository
git clone <repository-url>
cd build_site_wrapper- Install dependencies
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
# Install mobile template dependencies
cd ../mobile-template
npm install- Set up database
# Start MongoDB (if using Docker)
docker-compose up -d mongodb
# Or start local MongoDB service
mongod --dbpath /path/to/your/db
# Run database initialization
node scripts/mongo-init.js- Start the development servers
# Terminal 1: Start backend server
cd backend
npm run dev
# Terminal 2: Start frontend server
cd frontend
npm run dev
# Terminal 3: Start MongoDB (if not using Docker)
mongod- Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- Admin Dashboard: http://localhost:3000/admin/dashboard
- Create a Firebase project at https://console.firebase.google.com
- Enable Analytics, Crashlytics, and Cloud Messaging
- Download the service account key JSON file
- Add the credentials to your backend environment variables
- Create an AppsFlyer account at https://www.appsflyer.com
- Create a new app and get your Dev Key
- Add the Dev Key to your environment variables
- Configure attribution settings in the AppsFlyer dashboard
- Create a Google Cloud Project
- Enable the Google Sheets API
- Create a service account and download credentials
- Share your target spreadsheet with the service account email
- Add credentials path and spreadsheet ID to environment
- Register/Login: Create an account or sign in
- Create App: Click "Create New App" from the dashboard
- Basic Information:
- Enter app name and description
- Provide the website URL to wrap
- Set Android package ID and iOS bundle ID
- Configure Services:
- Enable Firebase for analytics and crash reporting
- Enable AppsFlyer for attribution tracking
- Configure lead capture settings
- Select Features:
- Choose push notifications, offline mode, etc.
- Upload custom app icon and splash screen
- Generate App: Click "Create App" to start the build process
- View Apps: Access all your apps from the main dashboard
- Build Apps: Generate APK/IPA files with one click
- Monitor Builds: Track build progress and download completed files
- View Analytics: Check app performance and lead data
- Update Settings: Modify app configuration and rebuild
- Navigate to
/admin/dashboard - Requires admin role privileges
- Monitor platform health and user activity
- User Management: View all registered users and their apps
- Build Monitoring: Track build queue, success rates, and failures
- Lead Analytics: Monitor lead capture across all apps
- Data Export: Export users, leads, and build logs
- System Health: Monitor database, services, and integrations
- WebView Container: Secure, sandboxed web content display
- Native Navigation: Hardware back button, deep linking support
- Firebase Analytics: Automatic event tracking and user analytics
- Crash Reporting: Firebase Crashlytics integration
- Push Notifications: FCM-based messaging (optional)
- Lead Capture: Form-based user data collection
- AppsFlyer Attribution: Install and event tracking
- Offline Support: Content caching for offline viewing (optional)
- Google Play: Follows WebView policy guidelines
- Apple App Store: Complies with web content restrictions
- Privacy: GDPR/CCPA compliant data handling
- Security: HTTPS enforcement, content security policies
POST /api/auth/register # User registration
POST /api/auth/login # User login
GET /api/auth/profile # Get user profile
PUT /api/auth/profile # Update profile
POST /api/auth/change-password # Change password
POST /api/apps # Create new app
GET /api/apps # List user apps
GET /api/apps/:id # Get app details
PUT /api/apps/:id # Update app
DELETE /api/apps/:id # Delete app
POST /api/apps/:id/duplicate # Duplicate app
POST /api/builds # Start new build
GET /api/builds/app/:appId # Get builds for app
GET /api/builds/:id # Get build details
GET /api/builds/:id/logs # Get build logs
GET /api/builds/:id/download # Download build artifact
POST /api/builds/:id/cancel # Cancel build
GET /api/dashboard/stats # Platform statistics
GET /api/dashboard/activities # Recent activities
GET /api/dashboard/export/users # Export user data
GET /api/dashboard/export/leads # Export lead data
GET /api/dashboard/export/builds # Export build logs
- JWT-based stateless authentication
- Role-based access control (user, admin)
- Password hashing with bcrypt
- Token expiration and refresh handling
- CORS configuration for cross-origin requests
- Helmet.js for security headers
- Rate limiting to prevent abuse
- Input validation and sanitization
- File upload restrictions and validation
- MongoDB connection encryption
- Environment variable management
- Secure session handling
- HTTPS enforcement in production
- Health Checks: Database and service connectivity
- Performance Metrics: Response times and throughput
- Error Tracking: Centralized error logging
- Build Monitoring: Queue status and completion rates
- Registration Tracking: New user sign-ups
- App Creation: App generation statistics
- Build Success Rates: Platform reliability metrics
- Lead Capture: Conversion tracking across apps
- App Analytics: User engagement and retention
- Crash Reporting: Stability monitoring
- Performance Monitoring: App launch and navigation times
- Environment Setup
NODE_ENV=production
PORT=3001
# Set production database and service URLs- Build and Start
npm run build
npm start- Build for Production
npm run build
npm run export # For static hosting- Deploy to Vercel/Netlify
# Vercel
vercel --prod
# Netlify
netlify deploy --prod- Use MongoDB Atlas for managed MongoDB
- Configure connection pooling and replica sets
- Set up automated backups
- Enable monitoring and alerts
- Load Balancing: Use nginx or cloud load balancers
- SSL/TLS: Configure HTTPS with Let's Encrypt or cloud certificates
- CDN: Use CloudFlare or AWS CloudFront for static assets
- Monitoring: Set up application monitoring with services like DataDog or New Relic
- TypeScript: Full type safety across frontend and backend
- ESLint: Code linting with custom rules
- Prettier: Automatic code formatting
- Husky: Git hooks for pre-commit validation
- Unit Tests: Jest for business logic testing
- Integration Tests: API endpoint testing
- E2E Tests: Playwright for user journey testing
- Mobile Testing: Capacitor test automation
- Feature Development: Create feature branches
- Code Review: Pull request reviews
- Testing: Automated test execution
- Deployment: Staging environment validation
- Production: Blue-green deployment strategy
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Submit a pull request
- Follow TypeScript best practices
- Add JSDoc comments for all functions
- Include unit tests for new features
- Update documentation for API changes
feat: Add new app creation wizard
fix: Resolve build queue memory leak
docs: Update API documentation
test: Add integration tests for auth
This project is licensed under the MIT License - see the LICENSE file for details.
- API Reference:
/api/docsendpoint - Component Library: Storybook documentation
- Database Schema: MongoDB documentation
-
Build Failures
- Check Capacitor configuration
- Verify Android SDK installation
- Ensure iOS development certificates
-
Firebase Integration
- Validate Firebase project configuration
- Check service account permissions
- Verify API key restrictions
-
Database Connection
- Confirm MongoDB service status
- Check connection string format
- Verify network accessibility
- Issues: GitHub Issues for bug reports
- Discussions: GitHub Discussions for questions
- Email: support@yourplatform.com for direct support
- Core platform functionality
- Basic mobile app generation
- Firebase and AppsFlyer integration
- Admin dashboard
- Lead capture system
- Enhanced build customization
- Real-time build monitoring
- Multi-language support
- Advanced analytics dashboard
- App store publishing integration
- White-label solutions
- API marketplace
- Advanced mobile features
- Enterprise SSO integration
- Multi-tenant architecture
Built with β€οΈ using modern web technologies
For more detailed information about specific components, see the individual README files in each module directory.