Skip to content

fix(pwa): ship real WordyMe install icons - #104

Merged
AdminTeamCoderz merged 1 commit into
mainfrom
fix/pwa-install-icons
Aug 10, 2026
Merged

fix(pwa): ship real WordyMe install icons#104
AdminTeamCoderz merged 1 commit into
mainfrom
fix/pwa-install-icons

Conversation

@AdminTeamCoderz

@AdminTeamCoderz AdminTeamCoderz commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes the icons users get when they install WordyMe as an app. The PWA manifest pointed at a 100×100 logo declared as sizes: 'any', so every launcher icon and splash screen was upscaled from it and looked soft. Meanwhile the only correctly sized files in public/logo192.png and logo512.png — were still the default React logos left over from project scaffolding, and were being served publicly at /logo192.png and /logo512.png. Both are now rendered from the brand vector at their true sizes, and Android gets a proper maskable icon.

Related Issues

None — found while producing brand assets for the repository's social preview.

Fixes # — n/a

Type of Change

Bug fix (installed-app branding / PWA asset correctness).

Changes

  • apps/web/public/logo192.png and logo512.png — replaced the stock React logos with the WordyMe mark, rendered from the brand SVG at 192×192 and 512×512.
  • apps/web/public/apple-touch-icon.png — re-rendered at the standard 180×180 (was an odd 313×313).
  • apps/web/public/maskable-512.pngnew. Android crops icons to the launcher's shape (circle, squircle, rounded square); this variant keeps the mark inside the safe zone on an opaque background, so the logo is cropped correctly instead of being letterboxed into a white tile.
  • apps/web/vite.config.ts — manifest icons now declare real dimensions (192x192, 512x512) with explicit purpose: 'any', plus the maskable entry; the new files are added to includeAssets so they are precached. Comments explain why the sizes must match the files.
  • No source code changes — assets and manifest only.

How to Test

  1. pnpm --filter web build, then inspect apps/web/dist/manifest.webmanifest — the icons array lists logo192.png (192x192), logo512.png (512x512), and maskable-512.png (512x512, maskable).
  2. pnpm dev, open devtools → Application → Manifest — all three icons load, no "icon size mismatch" or missing-icon warnings.
  3. Confirm the previews show the WordyMe bird mark, not the React atom.
  4. Optional, on an Android device or emulator: install the app and check the launcher icon is sharp and correctly shaped.
  5. Confirm /logo192.png and /logo512.png no longer serve the React logo.

Expected result: the installed app shows a sharp WordyMe icon at every size, on both Android and iOS, and no React branding is served anywhere.

Screenshots

N/A

Note for the reviewer: this branch and fix/app-name-wordyme both touch apps/web/vite.config.ts — this one the icons/includeAssets, the other the manifest name/short_name. They edit different lines and merge cleanly in either order.

Summary by CodeRabbit

  • Enhancements
    • Updated the progressive web app manifest with explicit 192px and 512px launcher icons.
    • Added maskable icon support for improved appearance when installed on supported devices.

The manifest pointed at a 100x100 logo declared as `sizes: any`, so every
launcher icon and splash screen was upscaled from it and looked soft. The
only correctly sized files in public/ were logo192.png and logo512.png,
which were still the default React logos left over from scaffolding — and
they were being served publicly.

Both are now rendered from the brand vector at their true sizes, the
Apple touch icon moves from an odd 313px to the standard 180px, and a
maskable variant keeps the mark inside the safe zone so Android crops it
to the launcher shape instead of letterboxing a transparent logo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ef0f1e5e-e4eb-4e6b-a3e4-d679283b54f2

📥 Commits

Reviewing files that changed from the base of the PR and between 60a2dfc and 656ebea.

⛔ Files ignored due to path filters (4)
  • apps/web/public/apple-touch-icon.png is excluded by !**/*.png
  • apps/web/public/logo192.png is excluded by !**/*.png
  • apps/web/public/logo512.png is excluded by !**/*.png
  • apps/web/public/maskable-512.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • apps/web/vite.config.ts
 ________________________________________________________________________________________________________________________________
< Test state coverage, not code coverage. Identify and test significant program states. Just testing lines of code isn't enough. >
 --------------------------------------------------------------------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/pwa-install-icons

Comment @coderabbitai help to get the list of available commands.

@AdminTeamCoderz
AdminTeamCoderz merged commit bcb6a6e into main Aug 10, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant