PWA Screenshot Generation Guide
This guide provides instructions for generating high-quality PWA screenshots for app store submissions and PWA installation prompts.
Required Screenshots for PWA
Mobile Screenshots (Narrow Form Factor)
- Size: 390x844px (iPhone 14 dimensions)
- Format: PNG
- Purpose: Mobile app stores, PWA install prompts
- Quantity: 3-5 screenshots showcasing key features
Desktop Screenshots (Wide Form Factor)
- Size: 1280x720px (HD)
- Format: PNG
- Purpose: Desktop app stores, PWA install prompts
- Quantity: 2-3 screenshots
Key Features to Showcase
Screenshot 1: Home/Cases Feed
- Mobile: Show the reels-style pet cases feed
- Desktop: Dashboard with case grid
- Elements: Navigation, case cards, floating action button
Screenshot 2: Case Detail & Chat
- Mobile: Individual case with AI chat interface
- Desktop: Case details with donation panel
- Elements: Pet image, description, chat interface, donation button
Screenshot 3: Donation Flow
- Mobile: Payment interface or donation confirmation
- Desktop: Donation dashboard or confirmation
- Elements: Secure payment UI, success states
Screenshot 4: User Profile/Dashboard
- Mobile: User profile with onboarding complete
- Desktop: User dashboard with statistics
- Elements: Profile info, donation history, settings
Screenshot 5: Onboarding (Optional)
- Mobile: AI-powered onboarding chat
- Desktop: Welcome screen
- Elements: Chat interface, onboarding progress
Screenshot Generation Steps
Option 1: Manual Screenshots (Recommended)
-
Setup Environment
npm run dev
# Open http://localhost:3000 -
Mobile Screenshots
- Open Chrome DevTools (F12)
- Toggle device toolbar (Ctrl+Shift+M)
- Select "iPhone 14 Pro" (390x844)
- Navigate to each screen
- Take screenshots using browser tools
-
Desktop Screenshots
- Set browser window to 1280x720
- Navigate to each screen
- Take full-window screenshots
Option 2: Automated Screenshots
Use Puppeteer script for consistent screenshots:
// screenshot-generator.js
const puppeteer = require('puppeteer');
async function generateScreenshots() {
const browser = await puppeteer.launch();
// Mobile screenshots
const mobilePage = await browser.newPage();
await mobilePage.setViewport({ width: 390, height: 844 });
// Desktop screenshots
const desktopPage = await browser.newPage();
await desktopPage.setViewport({ width: 1280, height: 720 });
// Generate screenshots for each screen
// ... implementation
await browser.close();
}
Option 3: Professional Screenshots
For app store submissions, consider:
- Using actual device screenshots
- Adding device frames
- Professional editing/annotation
- Optimizing for store requirements
Screenshot Optimization
Image Requirements
- File Size: < 8MB per screenshot
- Format: PNG or JPEG
- Quality: High resolution, crisp text
- Content: Representative of actual app usage
App Store Specific Requirements
Apple App Store
- iPhone: 1290x2796px, 1284x2778px, or 1179x2556px
- iPad: 2048x2732px or 2732x2048px
Google Play Store
- Phone: 320dp-3840dp width, aspect ratio 16:9 to 9:16
- Tablet: 320dp-3840dp width, aspect ratio 16:9 to 9:16
Microsoft Store
- Minimum: 1366x768px
- Recommended: 1920x1080px
Implementation Checklist
- Generate mobile screenshots (390x844)
- Generate desktop screenshots (1280x720)
- Optimize image sizes
- Update manifest.json with correct paths
- Test PWA install prompt
- Validate screenshots in browser dev tools
- Create app store variants if needed
Testing PWA Screenshots
-
Chrome DevTools
- Open Application tab
- Go to Manifest section
- Verify screenshots load correctly
-
PWA Install Testing
- Trigger install prompt
- Verify screenshots appear in install dialog
-
Lighthouse PWA Audit
- Run Lighthouse PWA audit
- Check for screenshot-related issues
File Naming Convention
/public/screenshots/
├── mobile-home-390x844.png
├── mobile-case-390x844.png
├── mobile-donation-390x844.png
├── mobile-profile-390x844.png
├── desktop-dashboard-1280x720.png
├── desktop-case-1280x720.png
└── desktop-profile-1280x720.png
Manifest.json Update
After generating screenshots, update the manifest.json:
{
"screenshots": [
{
"src": "/screenshots/mobile-home-390x844.png",
"sizes": "390x844",
"type": "image/png",
"form_factor": "narrow",
"label": "Home screen showing pet cases"
},
{
"src": "/screenshots/mobile-case-390x844.png",
"sizes": "390x844",
"type": "image/png",
"form_factor": "narrow",
"label": "Individual case with chat interface"
},
{
"src": "/screenshots/desktop-dashboard-1280x720.png",
"sizes": "1280x720",
"type": "image/png",
"form_factor": "wide",
"label": "Desktop dashboard with cases grid"
}
]
}
This ensures proper PWA screenshots for enhanced user experience and app store submissions.