A modern web app store that provides iOS web clip profiles for web applications. The platform automatically scans submitted web apps for security vulnerabilities and maintains a safe environment for users.
- Web app submission and management
- Automatic security scanning
- iOS web clip profile generation (with improved PWA fullscreen experience via
IgnoreManifestScope: true) - App lifecycle management: Approve, Reject, Suspend, and Reactivate applications
- Regular vulnerability checks (every 120 days)
- Developer dashboard
- Modern, responsive UI
- Node.js (v18 or higher)
- npm (v9 or higher)
- Clone the repository:
git clone https://github.com/yourusername/crossloadr.git
cd crossloadr- Install dependencies:
npm install- Create a
.envfile in the root directory with the following variables:
PORT=3000
NODE_ENV=development
SCAN_INTERVAL_DAYS=120- Start the development server:
npm run devThe application will be available at http://localhost:3000
- Automatic vulnerability scanning of submitted web apps
- Regular security audits every 120 days
- Malicious activity detection
- Rate limiting and request validation
- Secure profile generation
GET /api/apps- List all approved web apps (response includesscanResult)GET /api/apps/:id- Get details of a specific web app (response includesscanResult)GET /api/apps/:id/profile- Download iOS web clip profile (always generated on-the-fly)
POST /api/apps- Submit a new web appGET /api/developer/apps- List developer's submitted appsPUT /api/apps/:id- Update web app details
(Require Authorization: Bearer <ADMIN_TOKEN> header)
GET /api/admin/apps- List all web apps, including pending (response includesscanResultfor each app)POST /api/admin/apps/:id/approve- Approve a web app (does not re-scan; generates profile)POST /api/admin/apps/:id/reject- Reject a web appPOST /api/admin/apps/:id/suspend- Suspend an active app (removes from public store)POST /api/admin/apps/:id/reactivate- Reactivate a suspended app (adds to public store, re-generates profile)POST /api/admin/apps/:id/scan- Trigger a rescan of an appDELETE /api/admin/apps/:id- Remove a web app and its profile
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - see LICENSE file for details