diff --git a/packages/web/index.html b/packages/web/index.html
index 1b5e0ec1..eeadb24c 100644
--- a/packages/web/index.html
+++ b/packages/web/index.html
@@ -34,41 +34,15 @@
"theme_color": "#edb449",
"orientation": "portrait-primary",
"icons": [
- {
- "src": baseUrl + "/logo-dark-512x512.svg",
- "sizes": "512x512",
- "type": "image/svg+xml",
- "purpose": "any"
- },
- {
- "src": baseUrl + "/logo-dark-192x192.png",
- "sizes": "192x192",
- "type": "image/png",
- "purpose": "any"
- },
- {
- "src": baseUrl + "/apple-touch-icon-180x180.png",
- "sizes": "180x180",
- "type": "image/png",
- "purpose": "any"
- },
- {
- "src": baseUrl + "/apple-touch-icon-152x152.png",
- "sizes": "152x152",
- "type": "image/png",
- "purpose": "any"
- },
- {
- "src": baseUrl + "/favicon-32.png",
- "sizes": "32x32",
- "type": "image/png"
- },
- {
- "src": baseUrl + "/favicon-16.png",
- "sizes": "16x16",
- "type": "image/png"
- }
- ],
+ { "src": baseUrl + "/pwa-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
+ { "src": baseUrl + "/pwa-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
+ { "src": baseUrl + "/pwa-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable" },
+ { "src": baseUrl + "/pwa-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable" },
+ { "src": baseUrl + "/apple-touch-icon-180x180.png", "sizes": "180x180", "type": "image/png", "purpose": "any" },
+ { "src": baseUrl + "/apple-touch-icon-152x152.png", "sizes": "152x152", "type": "image/png", "purpose": "any" },
+ { "src": baseUrl + "/favicon-32.png", "sizes": "32x32", "type": "image/png" },
+ { "src": baseUrl + "/favicon-16.png", "sizes": "16x16", "type": "image/png" }
+ ],
"categories": ["developer", "tools", "productivity"],
"lang": "en"
};
diff --git a/packages/web/public/pwa-192.png b/packages/web/public/pwa-192.png
new file mode 100644
index 00000000..637d5959
Binary files /dev/null and b/packages/web/public/pwa-192.png differ
diff --git a/packages/web/public/pwa-512.png b/packages/web/public/pwa-512.png
new file mode 100644
index 00000000..37987478
Binary files /dev/null and b/packages/web/public/pwa-512.png differ
diff --git a/packages/web/public/pwa-maskable-192.png b/packages/web/public/pwa-maskable-192.png
new file mode 100644
index 00000000..9cf04f46
Binary files /dev/null and b/packages/web/public/pwa-maskable-192.png differ
diff --git a/packages/web/public/pwa-maskable-512.png b/packages/web/public/pwa-maskable-512.png
new file mode 100644
index 00000000..b4268535
Binary files /dev/null and b/packages/web/public/pwa-maskable-512.png differ
diff --git a/packages/web/public/site.webmanifest b/packages/web/public/site.webmanifest
index fd991fdd..cdf312cf 100644
--- a/packages/web/public/site.webmanifest
+++ b/packages/web/public/site.webmanifest
@@ -8,40 +8,14 @@
"theme_color": "#edb449",
"orientation": "portrait-primary",
"icons": [
- {
- "src": "/logo-dark-512x512.svg",
- "sizes": "512x512",
- "type": "image/svg+xml",
- "purpose": "any"
- },
- {
- "src": "/logo-dark-192x192.png",
- "sizes": "192x192",
- "type": "image/png",
- "purpose": "any"
- },
- {
- "src": "/apple-touch-icon-180x180.png",
- "sizes": "180x180",
- "type": "image/png",
- "purpose": "any"
- },
- {
- "src": "/apple-touch-icon-152x152.png",
- "sizes": "152x152",
- "type": "image/png",
- "purpose": "any"
- },
- {
- "src": "/favicon-32.png",
- "sizes": "32x32",
- "type": "image/png"
- },
- {
- "src": "/favicon-16.png",
- "sizes": "16x16",
- "type": "image/png"
- }
+ { "src": "/pwa-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
+ { "src": "/pwa-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
+ { "src": "/pwa-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable" },
+ { "src": "/pwa-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable" },
+ { "src": "/apple-touch-icon-180x180.png", "sizes": "180x180", "type": "image/png", "purpose": "any" },
+ { "src": "/apple-touch-icon-152x152.png", "sizes": "152x152", "type": "image/png", "purpose": "any" },
+ { "src": "/favicon-32.png", "sizes": "32x32", "type": "image/png" },
+ { "src": "/favicon-16.png", "sizes": "16x16", "type": "image/png" }
],
"categories": ["developer", "tools", "productivity"],
"lang": "en"
diff --git a/packages/web/server/index.js b/packages/web/server/index.js
index e787155d..333bf140 100644
--- a/packages/web/server/index.js
+++ b/packages/web/server/index.js
@@ -9229,6 +9229,11 @@ Context:
},
}));
+ // Alias for PWA manifest (.webmanifest redirect → /site.webmanifest)
+ app.get('/manifest.webmanifest', (req, res) => {
+ res.redirect(301, '/site.webmanifest');
+ });
+
app.get(/^(?!\/api|.*\.(js|css|svg|png|jpg|jpeg|gif|ico|woff|woff2|ttf|eot|map)).*$/, (req, res) => {
res.sendFile(path.join(distPath, 'index.html'));
});