# Google Play Store Pre-Upload Checklist Use this checklist before uploading to Google Play Store to ensure everything is ready. --- ## 📋 Phase 1: Assets & Content ### Icons - [x] ✅ PNG icons generated (72, 96, 128, 144, 152, 192, 384, 512) - [x] ✅ Maskable icon created (512x512 with safe zone) - [x] ✅ Adaptive icon layers (foreground + background) - [x] ✅ Icons added to manifest **Location:** `pwa/public/icons/` ### Screenshots - [ ] ⏳ Captured minimum 2 screenshots (recommended 4-8) - [ ] ⏳ Screenshots are 1080x2340 (portrait) - [ ] ⏳ Screenshots show actual app content - [ ] ⏳ Screenshots saved as PNG - [ ] ⏳ Screenshots named `screenshot-1.png`, `screenshot-2.png`, etc. **Location:** `pwa/public/screenshots/` **Guide:** See `pwa/public/screenshots/README.md` ### Feature Graphic - [x] ✅ Created 1024x500 banner - [x] ✅ No transparency (solid background) - [x] ✅ Saved as PNG **Location:** `pwa/public/assets/feature-graphic.png` ### Privacy Policy - [x] ✅ Privacy policy written - [x] ✅ Route added to PWA (`/privacy-policy`) - [x] ✅ Accessible at `https://app.placebo.mk/privacy-policy` - [x] ✅ Covers data collection (PostHog, cache, etc.) - [x] ✅ GDPR compliant **URL:** https://app.placebo.mk/privacy-policy --- ## 🔧 Phase 2: Technical Setup ### PWA Configuration - [x] ✅ Manifest updated with PNG icons - [x] ✅ Categories added (`news`, `entertainment`) - [x] ✅ Orientation set to `portrait-primary` - [x] ✅ Theme colors configured - [x] ✅ Service worker working - [x] ✅ Offline functionality tested **File:** `pwa/vite.config.ts` ### Digital Asset Links - [x] ✅ `assetlinks.json` template created - [ ] ⏳ SHA256 fingerprint updated (after PWABuilder) - [x] ✅ Nginx configured to serve `.well-known/` - [ ] ⏳ File accessible at `https://app.placebo.mk/.well-known/assetlinks.json` - [ ] ⏳ Validated with Google's tool **File:** `pwa/public/.well-known/assetlinks.json` **Validator:** https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://app.placebo.mk ### Build & Deployment - [x] ✅ TypeScript check passes - [x] ✅ ESLint passes - [x] ✅ Production build successful - [ ] ⏳ Updated PWA deployed to `https://app.placebo.mk` - [ ] ⏳ PWA accessible and working **Commands:** ```bash cd pwa npm run type-check npm run lint npm run build # Deploy to Coolify ``` --- ## 📱 Phase 3: Android App Generation ### PWABuilder Setup - [ ] ⏳ PWA URL entered: `https://app.placebo.mk` - [ ] ⏳ PWA score checked (should be high) - [ ] ⏳ Package configured: - App name: `Placebo.mk` - Package ID: `mk.placebo.app` - Launch URL: `https://app.placebo.mk/` - Theme color: `#000000` - Background: `#ffffff` - Orientation: `portrait` ### Signing Key - [ ] ⏳ Signing method chosen (Cloud or Own) - [ ] ⏳ Signing key generated - [ ] ⏳ SHA256 fingerprint copied - [ ] ⏳ Signing details saved securely ⚠️ **IMPORTANT:** Keep signing key details secure! You'll need them for updates. ### App Package - [ ] ⏳ AAB file downloaded - [ ] ⏳ Test APK downloaded (optional) - [ ] ⏳ SHA256 fingerprint added to `assetlinks.json` - [ ] ⏳ Updated PWA redeployed --- ## 🧪 Phase 4: Testing (Optional but Recommended) ### Local Testing - [ ] ⏳ APK installed on device - [ ] ⏳ App opens without browser UI (TWA verified) - [ ] ⏳ Navigation works correctly - [ ] ⏳ Offline mode works - [ ] ⏳ Analytics (PostHog) fires - [ ] ⏳ No crashes or errors ### PWA Testing - [ ] ⏳ Manifest validates: https://manifest-validator.appspot.com/ - [ ] ⏳ Service worker registers - [ ] ⏳ Icons display correctly - [ ] ⏳ Privacy policy loads - [ ] ⏳ All routes work --- ## 🏪 Phase 5: Google Play Console Setup ### Account & App - [x] ✅ Google Play Developer account active - [ ] ⏳ App created in Play Console - [ ] ⏳ App name set: `Placebo.mk` - [ ] ⏳ Default language: Macedonian (mk-MK) - [ ] ⏳ Free app selected ### Store Listing - [ ] ⏳ Short description written (max 80 chars) - [ ] ⏳ Full description written (max 4000 chars) - [ ] ⏳ Screenshots uploaded (2-8 images) - [ ] ⏳ Feature graphic uploaded - [ ] ⏳ App icon uploaded (512x512) - [ ] ⏳ Category selected: News & Magazines - [ ] ⏳ Contact email: `privacy@placebo.mk` - [ ] ⏳ Website: `https://placebo.mk` - [ ] ⏳ Privacy policy URL: `https://app.placebo.mk/privacy-policy` ### Content Rating - [ ] ⏳ Content rating questionnaire completed - [ ] ⏳ Category: News & Reference - [ ] ⏳ Questions answered honestly - [ ] ⏳ Ratings applied ### Target Audience - [ ] ⏳ Target age selected (13+ or 18+) - [ ] ⏳ Ads declaration completed - [ ] ⏳ Target audience declaration submitted ### Countries & Pricing - [ ] ⏳ Countries selected (North Macedonia + others) - [ ] ⏳ Pricing set to Free - [ ] ⏳ Distribution settings confirmed ### App Release - [ ] ⏳ AAB file uploaded - [ ] ⏳ Upload processed successfully - [ ] ⏳ Supported devices shown - [ ] ⏳ Release notes added (Macedonian + English) - [ ] ⏳ Release reviewed --- ## ✅ Final Checks Before Submission ### Critical Items - [ ] ⏳ All Play Console sections marked complete (green checkmarks) - [ ] ⏳ No errors or warnings in Play Console - [ ] ⏳ Privacy policy accessible - [ ] ⏳ Digital Asset Links verified - [ ] ⏳ PWA live at `https://app.placebo.mk` - [ ] ⏳ Screenshots captured and uploaded - [ ] ⏳ Feature graphic uploaded - [ ] ⏳ Content rating assigned - [ ] ⏳ AAB uploaded successfully ### Nice to Have - [ ] ⏳ Test APK installed and working - [ ] ⏳ App preview video (optional) - [ ] ⏳ Promo graphics (optional) - [ ] ⏳ Social media announcement prepared - [ ] ⏳ Website updated with app link --- ## 🚀 Submission When all items above are complete: 1. [ ] ⏳ Click "Review release" in Play Console 2. [ ] ⏳ Fix any issues highlighted 3. [ ] ⏳ Click "Start rollout to Production" 4. [ ] ⏳ Confirm submission 5. [ ] ⏳ Wait for Google's review (1-7 days) --- ## 📊 Post-Submission After submitting: - [ ] ⏳ Monitor Play Console for review status - [ ] ⏳ Check email for Google notifications - [ ] ⏳ Prepare announcement content - [ ] ⏳ Set up monitoring for crashes/errors When approved: - [ ] ⏳ Announce on social media - [ ] ⏳ Update website with Play Store badge - [ ] ⏳ Email users about app availability - [ ] ⏳ Monitor reviews and respond - [ ] ⏳ Track analytics and downloads --- ## 🆘 If Something Goes Wrong ### Common Issues: **Upload fails:** - Check AAB file size (max 150MB) - Verify signing key - Try uploading again **TWA doesn't work:** - Verify SHA256 fingerprint - Check assetlinks.json URL - Wait 5-10 minutes for cache **App rejected:** - Read rejection reason carefully - Fix issues - Resubmit **Privacy policy error:** - Ensure URL is accessible - Check HTTPS is working - Verify content is complete --- ## 📁 Important File Locations | Item | Location | |------|----------| | Icons | `pwa/public/icons/icon-*.png` | | Maskable Icon | `pwa/public/icons/icon-512-maskable.png` | | Screenshots | `pwa/public/screenshots/` | | Feature Graphic | `pwa/public/assets/feature-graphic.png` | | Privacy Policy | `pwa/src/components/routes/PrivacyPolicyComponent.tsx` | | Asset Links | `pwa/public/.well-known/assetlinks.json` | | Nginx Config | `pwa/nginx.conf` | | Manifest Config | `pwa/vite.config.ts` | --- ## 📚 Resources - **Full Guide:** See `PLAY_STORE_GUIDE.md` in project root - **Screenshots Guide:** See `pwa/public/screenshots/README.md` - **Asset Links Guide:** See `pwa/public/.well-known/README.md` - **PWABuilder:** https://www.pwabuilder.com/ - **Play Console:** https://play.google.com/console --- **Current Status:** Ready for screenshot capture and PWABuilder packaging **Next Action:** Capture screenshots from deployed PWA Good luck! 🎉