SShortSingh.
Back to feed

How One Developer Built a Truly Offline PWA With No Server and Silent Pitfalls

0
·78 views

A developer built Mes mots, a pictogram communication app for a non-verbal child, with a strict requirement to function entirely offline on a tablet without regular Wi-Fi access. Unlike most 'offline-first' apps, Mes mots has no backend server, meaning no data syncing or conflict resolution — only occasional code updates need to reach the device. Using the vite-plugin-pwa plugin with Workbox, the developer configured a service worker to precache all necessary assets, including MP3 audio files for each pictogram tile. A critical early mistake was omitting the .mp3 extension from the cache pattern, causing the app to silently lose its audio functionality offline with no console errors or visible warnings. The project also required careful handling of different deployment paths — a personal domain root versus a GitHub Pages subdirectory — to prevent blank-page failures caused by mismatched asset URLs.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

A Practical Workflow for Writing Better AI Image Prompts

Detailed prompts help image generators better understand a visual's subject, location, composition, lighting, and style. The article recommends organizing prompts with a reusable template and avoiding excessive extra details, which can confuse the generator and dilute emphasis. It advises controlled testing, since different tools can interpret the same prompt differently, and suggests analyzing failed outputs to identify issues like poor subject recognition, background overemphasis, or stylistic mismatch. Prompts that produce useful results should be saved to avoid starting from scratch each time. Overall, the piece frames prompt writing as an iterative, repeatable creative process rather than a single perfect formula.

0
ProgrammingDEV Community ·

Subtitle Parser Passes Error Checks Yet Captions Remain Hard to Read

A developer building the SubtitlePop caption tool found that a subtitle file parsed with zero errors still produced hard-to-read captions. The sample had overlapping cues, a caption displayed for only 0.6 seconds that holds 61 characters, and a line exceeding the configured length limit. The author published an open-source companion tool, subtitle-timing-kit, that flags such timing problems as warnings rather than errors. The tool's reading-speed and line-length thresholds are adjustable review aids, not accessibility certifications. The post also notes that overlapping cues can be legitimate, so flagging them is not the same as rejecting them.

0
ProgrammingDEV Community ·

Guide Outlines Zero-Downtime Strategies for Migrating MySQL to PostgreSQL or MongoDB

A DEV Community guide explains how to move data from MySQL to PostgreSQL or MongoDB without interrupting service. It recommends replicating data in real time with tools such as MySQL replication, SymmetricDS, or Tungsten Replicator. Data consistency should be checked across both databases using utilities like pt-table-checksum or MySQL Workbench. The article also describes a cutover plan that switches applications to the new database once validation passes, followed by ongoing performance monitoring.

0
ProgrammingDEV Community ·

Shallow Git Clone Hides Two Months of a Repo's Bug History From Log Checks

A developer found that a git command they had long used to verify project history now returns true for shallow repository status, reversing a result from an earlier entry. The container's git metadata lists two grafted boundary commits, the newer one created hours before the check, meaning history visible to git log --all starts only on 2026-08-20. Project notes dating back to June 2026 are still committed in the markdown but are unreachable through that command. The author concludes that prior claims of verification via git log were accurate only for the specific environment and session in which they were run. They note that the same command can give different answers across fresh containers fetching the same repository.