Progressive Web App Configuration
VozCraft is built as a Progressive Web App (PWA), allowing users to install it on their devices and use it like a native application. This page documents the PWA configuration, manifest setup, and installation process.What is a PWA?
A Progressive Web App combines the best features of web and native applications:Installable
Users can install VozCraft to their home screen without an app store
Offline Capable
Works without an internet connection (with service worker caching)
App-like Experience
Runs in standalone mode without browser UI
Auto-updates
Updates automatically when new versions are deployed
Web App Manifest
The manifest file (public/manifest.json) defines how VozCraft appears when installed:
public/manifest.json
Manifest Properties
name - Full Application Name
name - Full Application Name
The full name displayed during installation and in system menus.
- Maximum length: 45 characters (recommended)
- Usage: App launcher, settings, about screen
- Fallback: If not specified, uses
<title>tag
short_name - App Launcher Name
short_name - App Launcher Name
A shorter name for constrained spaces like home screens.
- Maximum length: 12 characters (recommended)
- Usage: Home screen icon label, task switcher
- Fallback: Uses
nameif not specified
Mobile home screens typically show 10-12 characters. Android may truncate longer names with ”…”
description - App Description
description - App Description
Describes the application’s purpose.
- Maximum length: 256 characters
- Usage: App stores, installation prompts
- SEO impact: May be used by search engines
The description should match your meta description tag for consistency:
index.html
start_url - Launch URL
start_url - Launch URL
The URL that opens when the app is launched.Launches at the application root.
- Relative or absolute: Can be relative to manifest location
- Query parameters: Use to track PWA installs:
"/?source=pwa" - Must be in scope: URL must be within the app’s scope
- Root Launch
- With Tracking
- Deep Link
display - Display Mode
display - Display Mode
Controls how the app appears when launched.Available modes:
Display mode hierarchy:Browsers try modes in order, falling back to the next if unsupported.
| Mode | Description | Browser UI |
|---|---|---|
fullscreen | Uses entire screen | None |
standalone | App-like experience | None |
minimal-ui | Minimal browser controls | Back/reload buttons |
browser | Standard browser tab | Full browser UI |
VozCraft uses
standalone to provide an app-like experience without browser chrome. The app fills the screen with only system status bar visible.background_color - Launch Screen Color
background_color - Launch Screen Color
The background color shown during app launch.
- Format: Hex color code
- Usage: Splash screen background
- Duration: Shown until first paint
- Should match: Your app’s actual background color
theme_color - Browser Theme Color
theme_color - Browser Theme Color
The color of the browser’s UI elements.
- Format: Hex color code
- Usage: Status bar, toolbar color
- Platform: Mainly Android, Safari on iOS
- Can be dynamic: Update with
<meta name="theme-color">
- Android
- iOS Safari
- Desktop
Colors the status bar and task switcher card:

VozCraft uses
#2563eb (blue-600) which matches the primary brand color used throughout the interface.icons - App Icons
icons - App Icons
Defines icon assets for various contexts.Required icon sizes:
Purpose attribute:
| Size | Usage |
|---|---|
| 192x192 | Home screen icon (Android) |
| 512x512 | Splash screen, app launcher |
| 48x48 | Small app icon (optional) |
| 96x96 | Medium app icon (optional) |
| 144x144 | Large app icon (optional) |
- any
- maskable
- any maskable
Default purpose - used in any context:Icon is used as-is without masking.
HTML Integration
The manifest is linked inindex.html:
index.html (lines 1-21)
Essential Meta Tags
viewport - Mobile Responsiveness
viewport - Mobile Responsiveness
width=device-width: Sets viewport width to device widthinitial-scale=1.0: Sets initial zoom level
manifest link - PWA Configuration
manifest link - PWA Configuration
- Path is relative to domain root
- Must be accessible via HTTPS (except localhost)
favicon - Browser Tab Icon
favicon - Browser Tab Icon
iOS-Specific Meta Tags
iOS Safari requires additional meta tags for PWA features:While VozCraft’s current
index.html doesn’t include these iOS tags, they’re recommended for better iOS PWA support.Installation Process
Desktop Installation (Chrome)
Mobile Installation (Android)
Mobile Installation (iOS)
Installation Criteria
Browsers will only show the install prompt if the PWA meets certain criteria:- General Requirements
- Chrome Requirements
- Firefox Requirements
- Safari Requirements
✅ Must have a web app manifest:
nameorshort_nameicons(192px and 512px)start_urldisplay(standalone, fullscreen, or minimal-ui)
VozCraft meets these requirements:
- ✅ Valid manifest.json
- ✅ 192x192 and 512x512 icons
- ✅ Standalone display mode
- ✅ Can be served over HTTPS
- ⚠️ No service worker (yet)
Service Worker (Recommended)
While VozCraft doesn’t currently include a service worker, adding one enables offline functionality and improves performance.Basic Service Worker Implementation
Createpublic/service-worker.js:
public/service-worker.js
Register Service Worker
Add tosrc/main.jsx:
src/main.jsx
Testing PWA Features
Chrome DevTools
Check Manifest
Under “Application” → “Manifest”, verify:
- All properties display correctly
- Icons load properly
- No warnings or errors
Lighthouse Audit
PWA Best Practices
Use maskable icons
Design icons with safe zone for Android adaptive icons:
- Important content in center 80%
- Test at maskable.app
Implement a service worker
Enable offline functionality and improve performance:
- Cache static assets
- Implement caching strategies
- Handle offline fallbacks
Common Issues
Install prompt doesn't appear
Install prompt doesn't appear
Possible causes:
- Not served over HTTPS
- Missing required manifest properties
- User already installed the app
- User dismissed prompt too many times
- Insufficient user engagement
Icons not displaying correctly
Icons not displaying correctly
Possible causes:Verify icons load:
- Wrong icon path
- Incorrect image format
- Icons not square
- Missing required sizes
App doesn't open in standalone mode
App doesn't open in standalone mode
Possible causes:Clear cache and reinstall the app.
displayproperty not set correctly- Manifest not linked in HTML
- Caching issues
Browser Support
PWA Support by Browser:
⚠️ Safari on iOS has limited PWA support compared to Android browsers.
| Browser | Manifest | Install Prompt | Service Workers | Offline |
|---|---|---|---|---|
| Chrome 67+ | ✅ | ✅ | ✅ | ✅ |
| Firefox 100+ | ✅ | ✅ | ✅ | ✅ |
| Safari 11.1+ | ✅ | ⚠️ Manual | ⚠️ Limited | ⚠️ Limited |
| Edge 79+ | ✅ | ✅ | ✅ | ✅ |
| Opera 55+ | ✅ | ✅ | ✅ | ✅ |
Related Resources
Next Steps
Installation Guide
Set up VozCraft for local development
Building for Production
Learn how to build and optimize VozCraft
