openvibers/openvibe.sites Commits

Shared manifest builder

OP OpenVibers committed 18 Sept 2026 · bddfe5861c · 14 files, +404 −40


Changes

ddiff --git a/build.js b/build.js
iindex 9ba083a..9c164dc 100644
---- a/build.js
++++ b/build.js
@@@ -199,7 +199,7 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
function robots(site) { return `User-agent: *\nAllow: /\nDisallow: /auth/\nSitemap: https://${site.domain}/sitemap.xml\n`; }
function sitemap(site) { return `<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n <url><loc>https://${site.domain}/</loc><lastmod>${today}</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>\n</urlset>\n`; }
--function manifest(site) { return JSON.stringify({ name: site.name, short_name: site.name.split('.').pop(), start_url: '/', display: 'standalone', background_color: '#0a0f1c', theme_color: site.accent, icons: [{ src: `${NET.networkUrl}/assets/logo-192.png`, sizes: '192x192', type: 'image/png' }, { src: `${NET.networkUrl}/assets/logo-512.png`, sizes: '512x512', type: 'image/png' }] }, null, 2) + '\n'; }
++function manifest(site) { return JSON.stringify(require('./vendor/openvibe-shared/app-icon').manifest({ site: 'network', name: site.name, shortName: site.name.split('.').pop(), description: site.tagline, iconBase: `${NET.networkUrl}/assets` }), null, 2) + '\n'; }
/** nginx vhost: static root, wildcard cert, www → apex, long cache for the immutable bits. */
function vhost(site) {
ddiff --git a/dist/openre.stream/manifest.webmanifest b/dist/openre.stream/manifest.webmanifest
iindex 7e0a11f..9028df5 100644
---- a/dist/openre.stream/manifest.webmanifest
++++ b/dist/openre.stream/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenRe.Stream",
"short_name": "Stream",
++ "description": "Ingest and restream, in the open.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#ef4444",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.blog/manifest.webmanifest b/dist/openvibe.blog/manifest.webmanifest
iindex 7f71f49..1c029c1 100644
---- a/dist/openvibe.blog/manifest.webmanifest
++++ b/dist/openvibe.blog/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Blog",
"short_name": "Blog",
++ "description": "Long-form, yours to keep.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#f472b6",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.chat/manifest.webmanifest b/dist/openvibe.chat/manifest.webmanifest
iindex 0e16f5e..8624f7c 100644
---- a/dist/openvibe.chat/manifest.webmanifest
++++ b/dist/openvibe.chat/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Chat",
"short_name": "Chat",
++ "description": "One chat for the whole network.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#a78bfa",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.codes/manifest.webmanifest b/dist/openvibe.codes/manifest.webmanifest
iindex fd6fd7a..fda1cbc 100644
---- a/dist/openvibe.codes/manifest.webmanifest
++++ b/dist/openvibe.codes/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Codes",
"short_name": "Codes",
++ "description": "Build on OpenVibe.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#22d3ee",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.coupons/manifest.webmanifest b/dist/openvibe.coupons/manifest.webmanifest
iindex f8764b9..0d8cff1 100644
---- a/dist/openvibe.coupons/manifest.webmanifest
++++ b/dist/openvibe.coupons/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Coupons",
"short_name": "Coupons",
++ "description": "Codes that actually work.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#fbbf24",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.deals/manifest.webmanifest b/dist/openvibe.deals/manifest.webmanifest
iindex c135d91..758abdf 100644
---- a/dist/openvibe.deals/manifest.webmanifest
++++ b/dist/openvibe.deals/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Deals",
"short_name": "Deals",
++ "description": "Deals worth seeing.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#f97316",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.host/manifest.webmanifest b/dist/openvibe.host/manifest.webmanifest
iindex a407883..62dc8e2 100644
---- a/dist/openvibe.host/manifest.webmanifest
++++ b/dist/openvibe.host/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Host",
"short_name": "Host",
++ "description": "Run it yourself.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#94a3b8",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.news/manifest.webmanifest b/dist/openvibe.news/manifest.webmanifest
iindex 8a393fd..082d289 100644
---- a/dist/openvibe.news/manifest.webmanifest
++++ b/dist/openvibe.news/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.News",
"short_name": "News",
++ "description": "Sourced. Summarised. Many angles.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#fb923c",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.reviews/manifest.webmanifest b/dist/openvibe.reviews/manifest.webmanifest
iindex 9038b6a..a641283 100644
---- a/dist/openvibe.reviews/manifest.webmanifest
++++ b/dist/openvibe.reviews/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Reviews",
"short_name": "Reviews",
++ "description": "What people actually say.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#facc15",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.tips/manifest.webmanifest b/dist/openvibe.tips/manifest.webmanifest
iindex fdbccd2..8d51aaf 100644
---- a/dist/openvibe.tips/manifest.webmanifest
++++ b/dist/openvibe.tips/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Tips",
"short_name": "Tips",
++ "description": "Support the people you watch.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#4ade80",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.trade/manifest.webmanifest b/dist/openvibe.trade/manifest.webmanifest
iindex 2d51e35..447ac2f 100644
---- a/dist/openvibe.trade/manifest.webmanifest
++++ b/dist/openvibe.trade/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Trade",
"short_name": "Trade",
++ "description": "Watch, discuss, decide.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#60a5fa",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.vip/manifest.webmanifest b/dist/openvibe.vip/manifest.webmanifest
iindex f6895b8..71bdd52 100644
---- a/dist/openvibe.vip/manifest.webmanifest
++++ b/dist/openvibe.vip/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.VIP",
"short_name": "VIP",
++ "description": "Memberships, network-wide.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#e879f9",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}
ddiff --git a/dist/openvibe.wiki/manifest.webmanifest b/dist/openvibe.wiki/manifest.webmanifest
iindex 261ccc7..4725131 100644
---- a/dist/openvibe.wiki/manifest.webmanifest
++++ b/dist/openvibe.wiki/manifest.webmanifest
@@@ -1,20 +1,48 @@
{
"name": "OpenVibe.Wiki",
"short_name": "Wiki",
++ "description": "Knowledge, with sources.",
"start_url": "/",
++ "scope": "/",
"display": "standalone",
"background_color": "#0a0f1c",
-- "theme_color": "#34d399",
++ "theme_color": "#3b82f6",
"icons": [
++ {
++ "src": "https://openvibe.network/assets/logo-72.png",
++ "sizes": "72x72",
++ "type": "image/png",
++ "purpose": "any"
++ },
{
"src": "https://openvibe.network/assets/logo-192.png",
"sizes": "192x192",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
},
{
"src": "https://openvibe.network/assets/logo-512.png",
"sizes": "512x512",
-- "type": "image/png"
++ "type": "image/png",
++ "purpose": "any"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-192.png",
++ "sizes": "192x192",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo-maskable-512.png",
++ "sizes": "512x512",
++ "type": "image/png",
++ "purpose": "maskable"
++ },
++ {
++ "src": "https://openvibe.network/assets/logo.svg",
++ "sizes": "any",
++ "type": "image/svg+xml",
++ "purpose": "any"
}
]
}