A cross-platform monitoring and notification system for Android applications
MapleTing is a comprehensive monitoring and notification system that enables real-time alerts for Android application state changes. It uses Web Push API for notification, delivering native OS notifications across all major platforms.
Perfect for: Game client monitoring, app crash detection, device status tracking, and any scenario where you need instant alerts when Android apps stop running.
- 🌍 Cross-Platform: Works on Android, iOS 16.4+, Windows, macOS, and Linux
- 🔔 Native Notifications: OS-integrated push that work even when browser/app is closed
- 🌐 Unicode-First: Full UTF-8 support for non-English alias (Korean, Japanese, Chinese, etc.)
- 📦 PWA Installable: Install as native app on any supported platform
- 📱 Native Android Monitoring App: Kotlin-based app with AccessibilityService
- ✅ PWA Experience: Install as native app
- ✅ Background Notifications: Receive alerts when app is closed
- ✅ Simple Subscription: One-click subscription to device updates
- ✅ Unicode Support: Device names in any language
- Server: Node.js 18.17+, Bun package manager, Supabase account
- Client: Android device or emulator (Android 7.0+)
# Navigate to server directory
cd server
# Install dependencies
bun install
# Generate VAPID keys for Web Push
bunx web-push generate-vapid-keys
# Set up environment (see full docs for details)
# Edit .env.local with your Supabase and VAPID credentials
cp .env.example .env.local
# Start development server
bun dev# Download APK from GitHub Releases
# Latest release: https://github.com/yourusername/mapleting/releases
# Install on Android device
adb install mapleting-monitor.apk
# Or transfer APK to device and install directlyApp Configuration:
-
Open the Mapleting Monitor app
-
Configure your monitoring settings:
- Nickname: Your device name (supports UTF-8: 한국어, 日本語, 中文)
- Secret: Your unique authentication key
- Package Name: Android app to monitor (e.g., com.nexon.ma)
- Server URL: Next.js server address (pre-configured)
-
Enable Accessibility Service:
- Go to Settings → Accessibility → Mapleting Monitor
- Enable the service to allow app state detection
-
Start Monitoring:
- Tap "Start Monitoring" button
- Grant necessary permissions when prompted
- Disable battery optimization for reliable background operation
Important: You must register your nickname and secret with your server administrator before starting monitoring.
- Open your deployed server URL in a browser
- Click "Subscribe" for your device alias
- Allow push notifications when prompted
- You'll receive alerts when the app stops running!
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Database: Supabase Postgres
- Push Notifications: Web Push API with VAPID
- UI: Tailwind CSS + shadcn/ui components
- PWA: Service Worker + Web Manifest
- Language: Kotlin 100%
- Min SDK: Android 7.0 (API 24)
- Target SDK: Android 14 (API 34)
- Architecture: MVVM with Coroutines
- Key Components:
- AccessibilityService for real-time app state detection
- ForegroundService for reliable background monitoring
- Material Design UI with shadcn-inspired components
- Data Storage: DataStore (modern SharedPreferences)
- Networking: OkHttp for HTTPS heartbeats
- Background: Persistent notification showing monitoring status
- Hosting: Vercel (recommended) or self-hosted
- Database: Supabase (free tier works)
- SSL/TLS: Required for Web Push API
- Game Client Monitoring: Track mobile game instances for downtime
- App Crash Detection: Get notified when apps crash or stop unexpectedly
- Device Status Tracking: Monitor application status across multiple devices
- Service Availability: Ensure critical services are running 24/7
- Non-English Environments: Full support for Korean, Japanese, Chinese, and other languages
One-click deployment with automatic SSL, CDN, and scaling:
cd server
vercelAdvantages:
- Zero configuration
- Automatic HTTPS
- Global CDN
- Free tier available
- Perfect for Next.js
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Additional language support
- Enhanced PWA features
- Performance optimizations
- Documentation improvements
- Bug fixes
- Next.js: https://nextjs.org
- Supabase: https://supabase.com
- Web Push API: MDN Documentation
- PWA: MDN Documentation
- Vercel: https://vercel.com