# 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! 🎉
