PWA Offline & Updates: Work Anywhere, Stay Current
Learn how SnowB BMF works offline as a Progressive Web App, how automatic updates keep your tool current, and how to manually check for new versions.
Offline Capability
Section titled “Offline Capability”SnowB BMF works fully offline after your first visit. A Service Worker caches all application resources (HTML, CSS, JavaScript, fonts, icons). After that, you can create and edit bitmap fonts without an internet connection.
How Offline Mode Works
Section titled “How Offline Mode Works”- First visit: The browser downloads and caches all application files via the Service Worker.
- Offline ready notification: A green success notification appears at the bottom left: “App is ready for offline use”. This notification automatically dismisses after 5 seconds.
- Subsequent visits: The application loads entirely from the local cache, regardless of network availability.
Local Data Storage
Section titled “Local Data Storage”All your project data is stored in the browser’s IndexedDB database, not on a remote server. This means:
- Your fonts and projects are always available locally.
- No data is sent to or stored on external servers.
- Projects persist across browser sessions (unless browser data is cleared).
For more details on data persistence, see Project Operations.
Application Updates
Section titled “Application Updates”When online, the Service Worker detects new versions automatically. Updates are non-disruptive: you choose when to apply them.
Automatic Update Detection
Section titled “Automatic Update Detection”The Service Worker checks for new versions in the background. When it finds one, notifications walk you through the process:
- Update downloading: An info notification appears with a refresh icon: the new version is being downloaded in the background.
- Update ready: A warning notification appears: “New version available, click update to experience now” with an Update button.
- Applying the update: Click Update to apply. A loading indicator shows “Updating to new version…” while the update is applied.
- Update complete: The page automatically refreshes with the new version.
Update Failure
Section titled “Update Failure”If the update fails, an error notification appears with a Retry button. Click Retry to attempt the update again. If the problem persists, try refreshing the page or clearing the browser cache.
Manual Update Check
Section titled “Manual Update Check”You can check for updates manually at any time through the notification panel.
How to Check
Section titled “How to Check”- The notification panel displays a “Check for Updates” button.
- Click it to trigger a manual check. A loading spinner appears while checking.
- If a new version is found, the update notification appears as described above.
- If no new version is available, the notification automatically closes after 2 seconds.
- The notification displays “Last checked: {time}” showing when you last checked.
Check Failure
Section titled “Check Failure”If the manual check fails (e.g., due to network issues), an error notification appears: “Failed to check for updates” with a Retry button.
Notification States Reference
Section titled “Notification States Reference”Color-coded notifications at the bottom left show Service Worker and update status:
| State | Severity | Icon | Message | Action |
|---|---|---|---|---|
| Offline ready | Success (green) | Checkmark | ”App is ready for offline use” | Auto-dismisses after 5 seconds |
| Update downloading | Info (blue) | Refresh | Downloading new version | None (automatic) |
| Update ready | Warning (yellow) | Update arrow | ”New version available, click update to experience now” | Update button |
| Updating | Warning (yellow) | Loading spinner | ”Updating to new version…” | Button disabled during update |
| Update failed | Error (red) | Error icon | Error message | Retry button |
| Check failed | Error (red) | Error icon | ”Failed to check for updates” | Retry button |
All notifications can be manually dismissed by clicking the close (X) button, except they will not close if you click outside the notification area (clickaway is ignored).