openvibers/openvibe.sites Commits

events.openvibe.network leaves the placeholders: OpenVibe.Events serves it (launch rule). datePublished stays the first publication date; only dateModified follows rebuilds

OP OpenVibers committed 23 Sept 2026 · 7b7c917eac · 71 files, +63 −812


Changes

ddiff --git a/build.js b/build.js
iindex 658d54c..828325c 100644
---- a/build.js
++++ b/build.js
@@@ -29,6 +29,8 @@ const catalog = JSON.parse(fs.readFileSync(path.join(ROOT, 'sites.json'), 'utf8'
const NET = catalog.network;
const esc = (s) => String(s == null ? '' : s).replace(/[&<>"']/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c]));
const today = new Date().toISOString().slice(0, 10);
++// A page is first published once; rebuilding it later changes dateModified, never datePublished.
++const FIRST_PUBLISHED = '2026-09-17';
function hexToRgb(hex) { const m = String(hex).replace('#', ''); const n = parseInt(m.length === 3 ? m.split('').map(c => c + c).join('') : m, 16); return `${(n >> 16) & 255},${(n >> 8) & 255},${n & 255}`; }
@@@ -45,7 +47,7 @@ function page(site) {
{ '@type': 'WebSite', '@id': `${url}#site`, url, name: site.name, description: site.description, inLanguage: 'en',
publisher: { '@type': 'Organization', '@id': `${NET.networkUrl}/#org`, name: 'OpenVibe', url: `${NET.networkUrl}/`, logo: ogImage, sameAs: [NET.github, NET.discord] },
isPartOf: { '@type': 'WebSite', '@id': `${NET.networkUrl}/#site`, name: 'OpenVibe.Network', url: `${NET.networkUrl}/` } },
-- { '@type': 'WebPage', '@id': `${url}#page`, url, name: title, description: site.description, isPartOf: { '@id': `${url}#site` }, datePublished: today, dateModified: today,
++ { '@type': 'WebPage', '@id': `${url}#page`, url, name: title, description: site.description, isPartOf: { '@id': `${url}#site` }, datePublished: site.published || FIRST_PUBLISHED, dateModified: today,
breadcrumb: { '@type': 'BreadcrumbList', itemListElement: [{ '@type': 'ListItem', position: 1, name: 'OpenVibe', item: `${NET.networkUrl}/` }, { '@type': 'ListItem', position: 2, name: site.name, item: url }] } },
],
};
ddiff --git a/deploy/nginx/events.openvibe.network.conf b/deploy/nginx/events.openvibe.network.conf
ddeleted file mode 100644
iindex 7bd4540..0000000
---- a/deploy/nginx/events.openvibe.network.conf
++++ /dev/null
@@@ -1,43 +0,0 @@
--# events.openvibe.network — static front page (OpenVibe.Sites). Generated by build.js; edit sites.json, not this.
--server {
-- listen 80;
-- listen [::]:80;
-- server_name events.openvibe.network;
-- return 301 https://events.openvibe.network$request_uri;
--}
--
--server {
-- listen 443 ssl;
-- listen [::]:443 ssl;
-- http2 on;
-- server_name events.openvibe.network;
--
-- ssl_certificate /etc/letsencrypt/live/openvibe.network/fullchain.pem;
-- ssl_certificate_key /etc/letsencrypt/live/openvibe.network/privkey.pem;
--
-- root /opt/openvibe.sites/dist/events.openvibe.network;
-- index index.html;
--
-- access_log /var/log/nginx/events.openvibe.network.access.log;
-- error_log /var/log/nginx/events.openvibe.network.error.log;
--
-- add_header X-Content-Type-Options nosniff always;
-- add_header X-Frame-Options SAMEORIGIN always;
-- add_header Referrer-Policy strict-origin-when-cross-origin always;
-- add_header Strict-Transport-Security "max-age=31536000" always;
--
-- gzip on;
-- gzip_types text/html text/plain text/css application/json application/javascript application/xml image/svg+xml application/manifest+json;
--
-- location = /robots.txt { add_header Cache-Control "public, max-age=3600"; }
-- location = /sitemap.xml { add_header Cache-Control "public, max-age=3600"; types { application/xml xml; } }
-- location = /manifest.webmanifest { types { application/manifest+json webmanifest; } add_header Cache-Control "public, max-age=86400"; }
-- location = /status.json { add_header Cache-Control "public, max-age=600"; add_header Access-Control-Allow-Origin "*"; }
--
-- location / {
-- add_header Cache-Control "public, max-age=600";
-- try_files $uri $uri.html $uri/ /index.html;
-- }
--
-- location ~ /\.(?!well-known) { deny all; }
--}
ddiff --git a/dist/admin.openvibe.network/index.html b/dist/admin.openvibe.network/index.html
iindex 3d375d1..bfbf66d 100644
---- a/dist/admin.openvibe.network/index.html
++++ b/dist/admin.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="admin.openvibe.network — One operator console for every service.">
<meta name="twitter:description" content="admin.openvibe.network will be the federated operator console: users, roles, bans, registry and policy, event queues, storage, billing, migrations and emergency controls, discovered from each service rather than hard-wired.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://admin.openvibe.network/#site","url":"https://admin.openvibe.network/","name":"admin.openvibe.network","description":"admin.openvibe.network will be the federated operator console: users, roles, bans, registry and policy, event queues, storage, billing, migrations and emergency controls, discovered from each service rather than hard-wired.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://admin.openvibe.network/#page","url":"https://admin.openvibe.network/","name":"admin.openvibe.network — One operator console for every service.","description":"admin.openvibe.network will be the federated operator console: users, roles, bans, registry and policy, event queues, storage, billing, migrations and emergency controls, discovered from each service rather than hard-wired.","isPartOf":{"@id":"https://admin.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"admin.openvibe.network","item":"https://admin.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://admin.openvibe.network/#site","url":"https://admin.openvibe.network/","name":"admin.openvibe.network","description":"admin.openvibe.network will be the federated operator console: users, roles, bans, registry and policy, event queues, storage, billing, migrations and emergency controls, discovered from each service rather than hard-wired.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://admin.openvibe.network/#page","url":"https://admin.openvibe.network/","name":"admin.openvibe.network — One operator console for every service.","description":"admin.openvibe.network will be the federated operator console: users, roles, bans, registry and policy, event queues, storage, billing, migrations and emergency controls, discovered from each service rather than hard-wired.","isPartOf":{"@id":"https://admin.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"admin.openvibe.network","item":"https://admin.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://auth.openvibe.network/"><i class="fa-solid fa-key" aria-hidden="true"></i>auth.openvibe.network</a>
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/admin.openvibe.network/sitemap.xml b/dist/admin.openvibe.network/sitemap.xml
iindex a815b5c..5e936dd 100644
---- a/dist/admin.openvibe.network/sitemap.xml
++++ b/dist/admin.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://admin.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://admin.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/admin.openvibe.network/status.json b/dist/admin.openvibe.network/status.json
iindex 2139a8b..7746d24 100644
---- a/dist/admin.openvibe.network/status.json
++++ b/dist/admin.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "existing-service",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/ai.openvibe.network/index.html b/dist/ai.openvibe.network/index.html
iindex db199ed..d638b3e 100644
---- a/dist/ai.openvibe.network/index.html
++++ b/dist/ai.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="ai.openvibe.network — AI as a service, for every OpenVibe product.">
<meta name="twitter:description" content="ai.openvibe.network will be the shared AI layer: providers and models, routing, prompt templates, workflows, runs, citations, caching and quotas, used by Live, Wiki, News and the rest instead of each product wiring its own.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://ai.openvibe.network/#site","url":"https://ai.openvibe.network/","name":"ai.openvibe.network","description":"ai.openvibe.network will be the shared AI layer: providers and models, routing, prompt templates, workflows, runs, citations, caching and quotas, used by Live, Wiki, News and the rest instead of each product wiring its own.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://ai.openvibe.network/#page","url":"https://ai.openvibe.network/","name":"ai.openvibe.network — AI as a service, for every OpenVibe product.","description":"ai.openvibe.network will be the shared AI layer: providers and models, routing, prompt templates, workflows, runs, citations, caching and quotas, used by Live, Wiki, News and the rest instead of each product wiring its own.","isPartOf":{"@id":"https://ai.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"ai.openvibe.network","item":"https://ai.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://ai.openvibe.network/#site","url":"https://ai.openvibe.network/","name":"ai.openvibe.network","description":"ai.openvibe.network will be the shared AI layer: providers and models, routing, prompt templates, workflows, runs, citations, caching and quotas, used by Live, Wiki, News and the rest instead of each product wiring its own.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://ai.openvibe.network/#page","url":"https://ai.openvibe.network/","name":"ai.openvibe.network — AI as a service, for every OpenVibe product.","description":"ai.openvibe.network will be the shared AI layer: providers and models, routing, prompt templates, workflows, runs, citations, caching and quotas, used by Live, Wiki, News and the rest instead of each product wiring its own.","isPartOf":{"@id":"https://ai.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"ai.openvibe.network","item":"https://ai.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
</div>
ddiff --git a/dist/ai.openvibe.network/sitemap.xml b/dist/ai.openvibe.network/sitemap.xml
iindex b6353da..5c0a2b4 100644
---- a/dist/ai.openvibe.network/sitemap.xml
++++ b/dist/ai.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://ai.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://ai.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/ai.openvibe.network/status.json b/dist/ai.openvibe.network/status.json
iindex 43449e5..4aca220 100644
---- a/dist/ai.openvibe.network/status.json
++++ b/dist/ai.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/api.openvibe.network/index.html b/dist/api.openvibe.network/index.html
iindex 4a214e6..c653d21 100644
---- a/dist/api.openvibe.network/index.html
++++ b/dist/api.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="api.openvibe.network — The network, machine-readable.">
<meta name="twitter:description" content="api.openvibe.network will expose the ecosystem registry: services, capabilities, event topics, namespaces and releases as versioned, documented APIs backed by the OpenVibe contracts.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://api.openvibe.network/#site","url":"https://api.openvibe.network/","name":"api.openvibe.network","description":"api.openvibe.network will expose the ecosystem registry: services, capabilities, event topics, namespaces and releases as versioned, documented APIs backed by the OpenVibe contracts.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://api.openvibe.network/#page","url":"https://api.openvibe.network/","name":"api.openvibe.network — The network, machine-readable.","description":"api.openvibe.network will expose the ecosystem registry: services, capabilities, event topics, namespaces and releases as versioned, documented APIs backed by the OpenVibe contracts.","isPartOf":{"@id":"https://api.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"api.openvibe.network","item":"https://api.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://api.openvibe.network/#site","url":"https://api.openvibe.network/","name":"api.openvibe.network","description":"api.openvibe.network will expose the ecosystem registry: services, capabilities, event topics, namespaces and releases as versioned, documented APIs backed by the OpenVibe contracts.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://api.openvibe.network/#page","url":"https://api.openvibe.network/","name":"api.openvibe.network — The network, machine-readable.","description":"api.openvibe.network will expose the ecosystem registry: services, capabilities, event topics, namespaces and releases as versioned, documented APIs backed by the OpenVibe contracts.","isPartOf":{"@id":"https://api.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"api.openvibe.network","item":"https://api.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://auth.openvibe.network/"><i class="fa-solid fa-key" aria-hidden="true"></i>auth.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/api.openvibe.network/sitemap.xml b/dist/api.openvibe.network/sitemap.xml
iindex 9e837dc..0e920af 100644
---- a/dist/api.openvibe.network/sitemap.xml
++++ b/dist/api.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://api.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://api.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/api.openvibe.network/status.json b/dist/api.openvibe.network/status.json
iindex 3f0bad5..1c102a9 100644
---- a/dist/api.openvibe.network/status.json
++++ b/dist/api.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "existing-service",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/auth.openvibe.network/index.html b/dist/auth.openvibe.network/index.html
iindex e6dff1e..f06d08b 100644
---- a/dist/auth.openvibe.network/index.html
++++ b/dist/auth.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="auth.openvibe.network — Sign in, once, for the whole network.">
<meta name="twitter:description" content="auth.openvibe.network will be the dedicated home of OpenVibe identity: sign-in, registration, OAuth 2.0 / OpenID Connect for apps, sessions and linked accounts. Today all of this runs inside openvibe.network itself.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://auth.openvibe.network/#site","url":"https://auth.openvibe.network/","name":"auth.openvibe.network","description":"auth.openvibe.network will be the dedicated home of OpenVibe identity: sign-in, registration, OAuth 2.0 / OpenID Connect for apps, sessions and linked accounts. Today all of this runs inside openvibe.network itself.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://auth.openvibe.network/#page","url":"https://auth.openvibe.network/","name":"auth.openvibe.network — Sign in, once, for the whole network.","description":"auth.openvibe.network will be the dedicated home of OpenVibe identity: sign-in, registration, OAuth 2.0 / OpenID Connect for apps, sessions and linked accounts. Today all of this runs inside openvibe.network itself.","isPartOf":{"@id":"https://auth.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"auth.openvibe.network","item":"https://auth.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://auth.openvibe.network/#site","url":"https://auth.openvibe.network/","name":"auth.openvibe.network","description":"auth.openvibe.network will be the dedicated home of OpenVibe identity: sign-in, registration, OAuth 2.0 / OpenID Connect for apps, sessions and linked accounts. Today all of this runs inside openvibe.network itself.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://auth.openvibe.network/#page","url":"https://auth.openvibe.network/","name":"auth.openvibe.network — Sign in, once, for the whole network.","description":"auth.openvibe.network will be the dedicated home of OpenVibe identity: sign-in, registration, OAuth 2.0 / OpenID Connect for apps, sessions and linked accounts. Today all of this runs inside openvibe.network itself.","isPartOf":{"@id":"https://auth.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"auth.openvibe.network","item":"https://auth.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/auth.openvibe.network/sitemap.xml b/dist/auth.openvibe.network/sitemap.xml
iindex c6a6856..ccf6e8a 100644
---- a/dist/auth.openvibe.network/sitemap.xml
++++ b/dist/auth.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://auth.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://auth.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/auth.openvibe.network/status.json b/dist/auth.openvibe.network/status.json
iindex 5df1ffd..3ed8851 100644
---- a/dist/auth.openvibe.network/status.json
++++ b/dist/auth.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "existing-service",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/billing.openvibe.network/index.html b/dist/billing.openvibe.network/index.html
iindex 3b12976..a1e4922 100644
---- a/dist/billing.openvibe.network/index.html
++++ b/dist/billing.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="billing.openvibe.network — Money, accounted once.">
<meta name="twitter:description" content="billing.openvibe.network will be the isolated ledger for the network: payment providers, receipts, subscriptions, entitlements, refunds and payouts, kept separate from loyalty points and from every product.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://billing.openvibe.network/#site","url":"https://billing.openvibe.network/","name":"billing.openvibe.network","description":"billing.openvibe.network will be the isolated ledger for the network: payment providers, receipts, subscriptions, entitlements, refunds and payouts, kept separate from loyalty points and from every product.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://billing.openvibe.network/#page","url":"https://billing.openvibe.network/","name":"billing.openvibe.network — Money, accounted once.","description":"billing.openvibe.network will be the isolated ledger for the network: payment providers, receipts, subscriptions, entitlements, refunds and payouts, kept separate from loyalty points and from every product.","isPartOf":{"@id":"https://billing.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"billing.openvibe.network","item":"https://billing.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://billing.openvibe.network/#site","url":"https://billing.openvibe.network/","name":"billing.openvibe.network","description":"billing.openvibe.network will be the isolated ledger for the network: payment providers, receipts, subscriptions, entitlements, refunds and payouts, kept separate from loyalty points and from every product.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://billing.openvibe.network/#page","url":"https://billing.openvibe.network/","name":"billing.openvibe.network — Money, accounted once.","description":"billing.openvibe.network will be the isolated ledger for the network: payment providers, receipts, subscriptions, entitlements, refunds and payouts, kept separate from loyalty points and from every product.","isPartOf":{"@id":"https://billing.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"billing.openvibe.network","item":"https://billing.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -154,7 +154,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
</div>
ddiff --git a/dist/billing.openvibe.network/sitemap.xml b/dist/billing.openvibe.network/sitemap.xml
iindex 06c82cd..ab8412f 100644
---- a/dist/billing.openvibe.network/sitemap.xml
++++ b/dist/billing.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://billing.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://billing.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/billing.openvibe.network/status.json b/dist/billing.openvibe.network/status.json
iindex e690902..b345304 100644
---- a/dist/billing.openvibe.network/status.json
++++ b/dist/billing.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/events.openvibe.network/dmca.html b/dist/events.openvibe.network/dmca.html
ddeleted file mode 100644
iindex da73bd3..0000000
---- a/dist/events.openvibe.network/dmca.html
++++ /dev/null
@@@ -1,101 +0,0 @@
--<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
--<title>DMCA &amp; Copyright — events.openvibe.network</title>
--<meta name="description" content="How to report copyright infringement on events.openvibe.network, and how to respond to a report.">
--<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
--<link rel="canonical" href="https://events.openvibe.network/dmca">
--<meta property="og:type" content="article">
--<meta property="og:site_name" content="events.openvibe.network">
--<meta property="og:title" content="DMCA &amp; Copyright — events.openvibe.network">
--<meta property="og:description" content="How to report copyright infringement on events.openvibe.network, and how to respond to a report.">
--<meta property="og:url" content="https://events.openvibe.network/dmca">
--<meta property="og:locale" content="en_US">
--<meta name="twitter:card" content="summary">
--<meta name="twitter:title" content="DMCA &amp; Copyright — events.openvibe.network">
--<meta name="twitter:description" content="How to report copyright infringement on events.openvibe.network, and how to respond to a report.">
--<link rel="icon" type="image/svg+xml" data-ov-icon="events" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-32%20-32%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22ring%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%232563eb%22%2F%3E%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22glow%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%22.34%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22bg%22%20cx%3D%22.5%22%20cy%3D%22.38%22%20r%3D%22.8%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2316223a%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%230a0f1c%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23060912%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Crect%20x%3D%22-32%22%20y%3D%22-32%22%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2215%22%20fill%3D%22url(%23bg)%22%2F%3E%3Cg%20transform%3D%22scale(1.22)%22%3E%0A%3Ccircle%20r%3D%2221%22%20fill%3D%22url(%23glow)%22%2F%3E%0A%3Ccircle%20r%3D%2218%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224%22%20opacity%3D%22.38%22%2F%3E%0A%3Cpath%20d%3D%22M0%2C-18%20A18%2C18%200%200%2C1%2017.4%2C4.6%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224.4%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M-9.5%2C-7%20L0%2C10%20L9.5%2C-7%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%224.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Ccircle%20cx%3D%2217.4%22%20cy%3D%224.6%22%20r%3D%223.2%22%20fill%3D%22%23ffffff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
--<meta name="theme-color" content="#0d131d">
--<meta name="color-scheme" content="dark">
--<style id="ov-critical">html{background:#0a0f1c;color:#e6edf7;color-scheme:dark}</style><script>(function(){try{var r=localStorage.getItem('ov_theme');if(!r)return;var t=JSON.parse(r),v=t&&t.variables;if(!v)return;var e=document.documentElement;for(var k in v)if(k.charAt(0)==='-')e.style.setProperty(k,v[k]);if(v['--bg-primary'])e.style.background=v['--bg-primary'];if(v['--text-primary'])e.style.color=v['--text-primary'];if(v['--color-scheme']==='light'||v['--color-scheme']==='dark')e.style.colorScheme=v['--color-scheme'];if(t.id)e.setAttribute('data-theme',t.id)}catch(_){}})();</script>
--<script src="https://openvibe.network/shared/theme-loader.js" defer></script><style>*{box-sizing:border-box}body{margin:0;background:var(--bg-primary,#0a0f18);color:var(--text-primary,#e6edf7);font:400 16px/1.65 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
--.ov-legal{max-width:760px;margin:0 auto;padding:40px 20px 24px}.ov-legal-kicker{margin:0;font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent-light,var(--accent,#60a5fa))}
--.ov-legal h1{font-size:clamp(28px,4.5vw,40px);letter-spacing:-.03em;line-height:1.1;margin:6px 0 4px}.ov-legal-date{color:var(--text-muted,#7d8aa0);font-size:14px;margin:0 0 28px}
--.ov-legal-toc{margin:0 0 8px;padding:14px 18px;border:1px solid var(--border,rgba(255,255,255,.1));border-radius:12px;background:var(--bg-secondary,#111826)}.ov-legal-toc ol{margin:0;padding-left:20px;columns:2 220px;column-gap:28px}.ov-legal-toc li{margin:3px 0;font-size:14px;break-inside:avoid}.ov-legal-toc a{text-decoration:none}.ov-legal section{scroll-margin-top:80px}
--.ov-legal h2{font-size:19px;margin:30px 0 8px;letter-spacing:-.01em}.ov-legal p,.ov-legal li{color:var(--text-secondary,#a8b3c4)}.ov-legal li{margin:6px 0}.ov-legal b{color:var(--text-primary,#e6edf7)}
--.ov-legal a{color:var(--accent-light,var(--accent,#60a5fa))}.ov-legal code{font-size:13.5px;background:var(--bg-secondary,#111826);padding:1px 6px;border-radius:5px}
--.ov-legal-more{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:20px;border-top:1px solid var(--border,rgba(255,255,255,.1))}.ov-legal-more a{padding:8px 14px;border:1px solid var(--border,rgba(255,255,255,.12));border-radius:10px;text-decoration:none;font-weight:600;font-size:14px}</style></head><body>
--<noscript><nav aria-label="Site" style="display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.1);font:500 14px/1.4 system-ui,sans-serif"><a href="/" style="font-weight:700;color:inherit;text-decoration:none">events.openvibe.network</a><span style="flex:1"></span><a href="https://openvibe.live/">Live</a><a href="https://openvibe.tools/">Tools</a><a href="https://openvibe.community/">Community</a><a href="https://openvibe.games/">Games</a><a href="https://openvibe.media/">Media</a><a href="https://openvibe.network/">Network</a></nav></noscript>
--<main><article class="ov-legal"><p class="ov-legal-kicker">events.openvibe.network</p><h1>DMCA &amp; Copyright</h1><p class="ov-legal-date">Last updated <time datetime="2026-09-18">September 18, 2026</time></p>
--<nav class="ov-legal-toc" aria-label="On this page"><ol><li><a href="#s1">Our position</a></li><li><a href="#s2">Before you send a notice</a></li><li><a href="#s3">Send a takedown notice</a></li><li><a href="#s4">What happens next</a></li><li><a href="#s5">Repeat infringers and false claims</a></li><li><a href="#s6">Other complaints</a></li></ol></nav>
--<section><h2 id="s1">Our position</h2><p>events.openvibe.network respects copyright and responds to clear notices of alleged infringement under the Digital Millennium Copyright Act (17 U.S.C. § 512). events.openvibe.network currently publishes only its own material and does not host uploads from the public.</p></section>
--<section><h2 id="s2">Before you send a notice</h2><p>Consider whether the use is permitted, for example as fair use, commentary, criticism, or under a licence. Notices must come from the copyright owner or someone authorised to act for them. Misrepresentations in a notice carry legal liability.</p></section>
--<section><h2 id="s3">Send a takedown notice</h2><p>Email <a href="mailto:[email protected]">[email protected]</a> with all of the following:</p><ol><li>Your name, postal address, phone number and email address, and whom you represent.</li><li>The copyrighted work you say was infringed, or a representative list if there are several.</li><li>The exact URL on events.openvibe.network of each item you want removed. General descriptions, search results and channel links are not enough to find it.</li><li>A statement that you have a good-faith belief the use is not authorised by the copyright owner, its agent or the law.</li><li>A statement, under penalty of perjury, that the information is accurate and that you are the owner or authorised to act for the owner.</li><li>Your physical or electronic signature.</li></ol></section>
--<section><h2 id="s4">What happens next</h2><p>We remove or disable access to the material, tell the person who posted it, and give them a copy of your notice, including your contact details. We act on complete notices as quickly as we can, normally within a few business days. Incomplete notices get a reply saying what is missing.</p></section>
--<section><h2 id="s5">Repeat infringers and false claims</h2><p>Accounts that receive repeated valid notices lose the ability to post and, in appropriate circumstances, are terminated across the network. Knowingly false notices and counter-notices carry liability under § 512(f); we refuse notices that are clearly abusive or automated without review.</p></section>
--<section><h2 id="s6">Other complaints</h2><p>Trademark, privacy, impersonation, harassment and other non-copyright complaints go to the same address; say which kind of complaint it is and give the exact URL. Content that sexually exploits children should be reported to us immediately and to the <a href="https://report.cybertip.org/" rel="noopener">NCMEC CyberTipline</a> or your national hotline; we remove it and report it to the authorities.</p></section>
--<nav class="ov-legal-more" aria-label="Other policies"><a href="/terms">Terms of Service</a><a href="/privacy">Privacy Policy</a><a href="https://openvibe.network/">About OpenVibe</a></nav></article></main><style id="ovf-css">
--.ovf{background:var(--bg-secondary,#12131c);border-top:1px solid var(--border,rgba(255,255,255,.08));margin-top:40px;
-- padding:clamp(24px,4vw,40px) clamp(14px,4vw,32px) calc(clamp(20px,3vw,28px) + env(safe-area-inset-bottom,0px));}
--.ovf[data-variant="compact"]{margin-top:24px;padding:14px clamp(12px,3vw,24px) calc(14px + env(safe-area-inset-bottom,0px));}
--.ovf-inner{max-width:1240px;margin:0 auto}
--.ovf-inner--compact{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px;text-align:center}
--.ovf-cols{display:grid;gap:clamp(20px,3vw,36px);grid-template-columns:minmax(230px,1.6fr) repeat(auto-fit,minmax(120px,1fr));align-items:start}
--.ovf-col{display:flex;flex-direction:column;gap:8px;min-width:0}
--.ovf-col h3{margin:0 0 2px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted,#8b93ad)}
--.ovf-col a{color:var(--text-secondary,#b6bdd2);font-size:.86rem;text-decoration:none;line-height:1.4;width:fit-content;transition:color .15s,transform .15s}
--.ovf-col a:hover{color:var(--accent,#60a5fa);transform:translateX(2px)}
--.ovf-more{font-weight:600;opacity:.85}.ovf-ic{flex:none;vertical-align:-.14em}.ovf-more .ovf-ic{font-size:.85em;margin-left:3px;transition:transform .15s}.ovf-more:hover .ovf-ic{transform:translateX(3px)}.ovf-social .ovf-ic{font-size:17px}.ovf-account-links .ovf-ic{font-size:1.05em;opacity:.85}
--.ovf-brand{display:inline-flex;align-items:center;gap:9px;color:var(--text-primary,#f1f4fb);font-size:1.05rem;font-weight:700;text-decoration:none}
--.ovf-brand--sm{font-size:.9rem}
--.ovf-tagline{margin:0;font-size:.82rem;line-height:1.55;color:var(--text-muted,#8b93ad);max-width:46ch}
--.ovf-social{display:flex;gap:8px;margin-top:4px}
--.ovf-social a{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--text-secondary,#b6bdd2);
-- background:var(--bg-tertiary,#1a1b28);border:1px solid var(--border,rgba(255,255,255,.08));font-size:.95rem;transition:color .15s,border-color .15s,transform .15s}
--.ovf-social a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-2px)}
--.ovf-account{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;
-- margin-top:clamp(18px,2.5vw,26px);padding:10px 14px;border-radius:14px;
-- background:color-mix(in srgb, var(--accent,#60a5fa) 8%, var(--bg-tertiary,#1a1b28));
-- border:1px solid color-mix(in srgb, var(--accent,#60a5fa) 26%, var(--border,rgba(255,255,255,.08)));
-- animation:ovfIn .4s ease-out both}
--@keyframes ovfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
--.ovf-account-who{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--text-secondary,#b6bdd2)}
--.ovf-account-who strong{color:var(--text-primary,#f1f4fb)}
--.ovf-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
-- background:var(--accent,#60a5fa);color:#fff;font-size:.7rem;font-weight:800;flex:none}
--.ovf-avatar img{width:100%;height:100%;object-fit:cover}
--.ovf-account-links{display:flex;flex-wrap:wrap;gap:6px}
--.ovf-account-links a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:600;
-- color:var(--text-secondary,#b6bdd2);background:var(--bg-secondary,#12131c);border:1px solid var(--border,rgba(255,255,255,.08));
-- text-decoration:none;transition:color .15s,border-color .15s,transform .15s}
--.ovf-account-links a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-1px)}
--.ovf-account-links i{font-size:.72rem;opacity:.8}
--.ovf-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
-- margin-top:clamp(20px,3vw,30px);padding-top:16px;border-top:1px solid var(--border,rgba(255,255,255,.08));
-- padding-inline:clamp(0px, calc(84px - (100vw - 1240px) / 2), 84px)}
--.ovf-copy{color:var(--text-muted,#8b93ad);font-size:.78rem}
--.ovf-legal-inline,.ovf-compact-links{display:flex;flex-wrap:wrap;gap:14px}
--.ovf-legal-inline a,.ovf-compact-links a{color:var(--text-muted,#8b93ad);font-size:.78rem;text-decoration:none;transition:color .15s}
--.ovf-legal-inline a:hover,.ovf-compact-links a:hover{color:var(--accent,#60a5fa)}
--.ovf-compact-meta{color:var(--text-muted,#8b93ad);font-size:.74rem}
--@media (max-width:900px){.ovf-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.ovf-col--brand{grid-column:1/-1}}
--@media (max-width:560px){
-- .ovf{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
-- .ovf[data-variant="compact"]{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
-- .ovf-cols{gap:22px 16px}
-- .ovf-bar{justify-content:center;text-align:center;padding-inline:0}
-- .ovf-legal-inline{justify-content:center}
-- .ovf-account{flex-direction:column;align-items:flex-start}
--}
--@media (prefers-reduced-motion:reduce){.ovf-account{animation:none}.ovf-col a:hover,.ovf-social a:hover,.ovf-account-links a:hover{transform:none}}</style><footer id="ov-footer" class="ovf" data-variant="compact"><div class="ovf-inner ovf-inner--compact">
-- <a class="ovf-brand ovf-brand--sm" href="/"><span class="ov-mark" data-size="20"></span><span>OpenVibe.Network</span></a>
-- <nav class="ovf-compact-links" aria-label="Site links">
--
-- <a href="https://openvibe.network" target="_blank" rel="noopener">Network</a>
-- <a href="https://openvibe.live/tos">Terms</a><a href="https://openvibe.live/privacy">Privacy</a><a href="https://openvibe.live/dmca">DMCA</a>
-- </nav>
-- <span class="ovf-compact-meta">Open source · 2026</span>
-- </div></footer>
--<script src="https://openvibe.network/shared/navbar.js" defer></script><script src="https://openvibe.network/shared/footer.js" defer></script>
--<script>addEventListener('DOMContentLoaded',function(){var t=null;try{t=(document.cookie.match(/(?:^|; )ov_token=([^;]*)/)||[])[1]||localStorage.getItem('ov_token')}catch(e){}
--try{OpenVibeNavbar.init({service:"network",apiBase:'https://openvibe.network',token:t?decodeURIComponent(t):null})}catch(e){}
--try{OpenVibeFooter.init({service:"network",variant:'compact',mount:'#ov-footer',apiBase:'https://openvibe.network'})}catch(e){}});</script>
--</body></html>
\\ No newline at end of file
ddiff --git a/dist/events.openvibe.network/index.html b/dist/events.openvibe.network/index.html
ddeleted file mode 100644
iindex a5ab7d8..0000000
---- a/dist/events.openvibe.network/index.html
++++ /dev/null
@@@ -1,262 +0,0 @@
--<!DOCTYPE html>
--<html lang="en">
--<head>
--<meta charset="utf-8">
--<meta name="viewport" content="width=device-width, initial-scale=1">
--<title>events.openvibe.network — Durable events for the whole network.</title>
--<meta name="description" content="events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.">
--<meta name="keywords" content="openvibe events, openvibe network events, openvibe platform">
--<meta name="robots" content="index, follow, max-image-preview:large">
--<meta name="theme-color" content="#fb7185">
--<link rel="canonical" href="https://events.openvibe.network/">
--<link rel="icon" type="image/svg+xml" data-ov-icon="network" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-32%20-32%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22ring%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%232563eb%22%2F%3E%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22glow%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%22.34%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22bg%22%20cx%3D%22.5%22%20cy%3D%22.38%22%20r%3D%22.8%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2316223a%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%230a0f1c%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23060912%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Crect%20x%3D%22-32%22%20y%3D%22-32%22%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2215%22%20fill%3D%22url(%23bg)%22%2F%3E%3Cg%20transform%3D%22scale(1.22)%22%3E%0A%3Ccircle%20r%3D%2221%22%20fill%3D%22url(%23glow)%22%2F%3E%0A%3Ccircle%20r%3D%2218%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224%22%20opacity%3D%22.38%22%2F%3E%0A%3Cpath%20d%3D%22M0%2C-18%20A18%2C18%200%200%2C1%2017.4%2C4.6%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224.4%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M-9.5%2C-7%20L0%2C10%20L9.5%2C-7%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%224.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Ccircle%20cx%3D%2217.4%22%20cy%3D%224.6%22%20r%3D%223.2%22%20fill%3D%22%23ffffff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
--<style id="ov-critical">html{background:#0a0f1c;color:#e6edf7;color-scheme:dark}</style><script>(function(){try{var r=localStorage.getItem('ov_theme');if(!r)return;var t=JSON.parse(r),v=t&&t.variables;if(!v)return;var e=document.documentElement;for(var k in v)if(k.charAt(0)==='-')e.style.setProperty(k,v[k]);if(v['--bg-primary'])e.style.background=v['--bg-primary'];if(v['--text-primary'])e.style.color=v['--text-primary'];if(v['--color-scheme']==='light'||v['--color-scheme']==='dark')e.style.colorScheme=v['--color-scheme'];if(t.id)e.setAttribute('data-theme',t.id)}catch(_){}})();</script>
--<link rel="manifest" href="/manifest.webmanifest">
--<link rel="alternate" type="text/html" hreflang="en" href="https://events.openvibe.network/">
--<meta property="og:type" content="website">
--<meta property="og:site_name" content="events.openvibe.network">
--<meta property="og:url" content="https://events.openvibe.network/">
--<meta property="og:title" content="events.openvibe.network — Durable events for the whole network.">
--<meta property="og:description" content="events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.">
--<meta property="og:image" content="https://openvibe.network/assets/logo-512.png">
--<meta property="og:image:alt" content="OpenVibe">
--<meta name="twitter:card" content="summary">
--<meta name="twitter:title" content="events.openvibe.network — Durable events for the whole network.">
--<meta name="twitter:description" content="events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.">
--<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://events.openvibe.network/#site","url":"https://events.openvibe.network/","name":"events.openvibe.network","description":"events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://events.openvibe.network/#page","url":"https://events.openvibe.network/","name":"events.openvibe.network — Durable events for the whole network.","description":"events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.","isPartOf":{"@id":"https://events.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"events.openvibe.network","item":"https://events.openvibe.network/"}]}}]}</script>
--<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
--<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
--<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" media="print" onload="this.media='all'">
--<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"></noscript>
--<style>
--*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
--:root{--bg-primary:#0a0f1c;--bg-secondary:#101828;--bg-card:#131c2e;--bg-hover:#1c2a44;--border:#1f2d47;--text-primary:#e6edf7;--text-secondary:#96a7c2;--text-muted:#7386a3;--accent:#3b82f6;--accent-light:#60a5fa;--accent-rgb:59,130,246;--on-accent:#fff;--site:#fb7185;--site-rgb:251,113,133}
--html{scroll-behavior:smooth}
--body{background:var(--bg-primary);color:var(--text-primary);font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
--main{flex:1;position:relative}
--.orbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
--.orbs i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.16;animation:drift 26s ease-in-out infinite alternate}
--.orbs i:nth-child(1){width:420px;height:420px;background:var(--site);top:-140px;left:-120px}
--.orbs i:nth-child(2){width:360px;height:360px;background:var(--accent);top:40%;right:-140px;animation-delay:-9s}
--.orbs i:nth-child(3){width:300px;height:300px;background:var(--site);bottom:-120px;left:38%;animation-delay:-17s}
--@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-26px,36px) scale(1.07)}100%{transform:translate(34px,-28px) scale(.95)}}
--.wrap{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:0 20px}
--.hero{padding:84px 0 44px;text-align:center}
--.hero .mark{display:inline-grid;place-items:center;width:84px;height:84px;border-radius:24px;background:rgba(var(--site-rgb),.12);border:1px solid rgba(var(--site-rgb),.35);color:var(--site);font-size:34px;margin-bottom:22px;box-shadow:0 20px 60px rgba(var(--site-rgb),.18);animation:rise .6s cubic-bezier(.2,.8,.2,1) both}
--.hero .badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-secondary);letter-spacing:.3px;margin-bottom:22px;animation:rise .6s .05s cubic-bezier(.2,.8,.2,1) both}
--.hero .badge b{color:var(--site)}
--.hero h1{font-size:clamp(34px,6vw,58px);font-weight:800;letter-spacing:-1.4px;line-height:1.08;animation:rise .6s .1s cubic-bezier(.2,.8,.2,1) both}
--.hero h1 .d{color:var(--site)}
--.hero h1 .tld{color:var(--text-secondary)}
--.hero .tag{font-size:clamp(18px,2.6vw,24px);font-weight:600;color:var(--text-primary);margin:18px 0 10px;animation:rise .6s .16s cubic-bezier(.2,.8,.2,1) both}
--.hero p.lead{color:var(--text-secondary);font-size:16px;line-height:1.65;max-width:680px;margin:0 auto;animation:rise .6s .22s cubic-bezier(.2,.8,.2,1) both}
--.ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px;animation:rise .6s .3s cubic-bezier(.2,.8,.2,1) both}
--.hero .status{margin:22px auto 0;max-width:720px;font-size:12.5px;line-height:1.7;color:var(--text-muted);border:1px dashed var(--border);border-radius:12px;padding:10px 14px;background:rgba(0,0,0,.15)}
--.hero .status b{color:var(--site)}
--.hero .status code{font-size:12px;color:var(--text-secondary);background:var(--bg-secondary);padding:1px 6px;border-radius:6px}
--.hero .status a{color:var(--text-secondary)}
--.btn{display:inline-flex;align-items:center;gap:9px;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--border);color:var(--text-primary);background:var(--bg-secondary);transition:transform .15s,border-color .15s,box-shadow .15s}
--.btn:hover{transform:translateY(-1px);border-color:var(--site);box-shadow:0 10px 30px rgba(var(--site-rgb),.15)}
--.btn-primary{background:var(--site);border-color:var(--site);color:#0b0d10}
--.btn-primary:hover{filter:brightness(1.08)}
--@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
--section{padding:36px 0}
--h2{font-size:22px;font-weight:700;letter-spacing:-.3px;margin-bottom:6px}
--.lead2{color:var(--text-secondary);font-size:14px;margin-bottom:20px}
--.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
--.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px;transition:transform .2s,border-color .2s,box-shadow .2s;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:8px}
--a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);box-shadow:0 16px 40px rgba(0,0,0,.35)}
--.card .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:rgba(var(--site-rgb),.12);color:var(--site);font-size:17px}
--.card b{font-size:15px}
--.card span{font-size:13px;color:var(--text-secondary);line-height:1.55}
--.card .go{margin-top:auto;font-size:12.5px;font-weight:600;color:var(--site)}
--.meanwhile .card .ic{background:rgba(var(--accent-rgb),.12);color:var(--accent-light)}
--.net .card .ic{background:var(--bg-hover);color:var(--text-primary)}
--.rooms{display:flex;flex-wrap:wrap;gap:8px}
--.rooms a{font-size:12.5px;padding:7px 12px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary);text-decoration:none;transition:all .15s;background:var(--bg-secondary)}
--.rooms a:hover{color:var(--text-primary);border-color:var(--site)}
--.rooms a i{margin-right:6px;opacity:.8}
--.strip{border:1px solid var(--border);border-radius:18px;background:var(--bg-secondary);padding:30px 26px;text-align:center;margin:10px 0 50px}
--.strip h3{font-size:19px;font-weight:700;margin:12px 0 8px}
--.strip p{font-size:14px;color:var(--text-secondary);max-width:600px;margin:0 auto 18px;line-height:1.6}
--.strip .ov-mark{width:44px;height:44px}
--@media (max-width:600px){.hero{padding-top:56px}.ctas .btn{width:100%;justify-content:center}}
--@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
--</style>
--</head>
--<body>
--<div class="orbs"><i></i><i></i><i></i></div>
--<div id="navbar-mount"></div>
--<main class="wrap">
-- <header class="hero">
-- <div class="mark"><i class="fa-solid fa-bolt" aria-hidden="true"></i></div>
-- <div class="badge"><span class="ov-mark" data-size="16" data-variant="events"></span> Part of the OpenVibe network · <b>opening soon</b></div>
-- <h1><span class="d">events</span><span class="tld">.openvibe.network</span></h1>
-- <div class="tag">Durable events for the whole network.</div>
-- <p class="lead">events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.</p>
-- <div class="ctas">
-- <a class="btn btn-primary" href="https://openvibe.network/login?return=https%3A%2F%2Fevents.openvibe.network%2F"><i class="fa-solid fa-right-to-bracket"></i> Sign in with OpenVibe</a>
-- <a class="btn" href="https://openvibe.network/#network"><i class="fa-solid fa-circle-nodes"></i> The whole network</a>
-- <a class="btn" href="https://discord.gg/M6MuRUaeJj" rel="noopener"><i class="fa-brands fa-discord"></i> Follow the build</a>
-- </div>
-- <p class="status"><i class="fa-solid fa-clock" aria-hidden="true"></i> Status: <b>coming soon</b> · this page is a placeholder, nothing here is live yet · home: <a href="https://github.com/OpenVibers/OpenVibe.Events" rel="noopener"><code>OpenVibers/OpenVibe.Events</code></a> (charter only, no code yet) · <a href="/status.json">status.json</a></p>
-- </header>
--
-- <section>
-- <h2>What events.openvibe.network will be</h2>
-- <p class="lead2">Same account, same themes, same navbar as every other OpenVibe site — built in the open, run by its community.</p>
-- <div class="grid">
-- <div class="card"><div class="ic"><i class="fa-solid fa-bolt" aria-hidden="true"></i></div><b>Durable delivery</b><span>Persisted before delivery, retried until acknowledged.</span></div>
-- <div class="card"><div class="ic"><i class="fa-solid fa-bolt" aria-hidden="true"></i></div><b>Subscriptions</b><span>Services, apps and mods subscribe to the topics they are allowed to see.</span></div>
-- <div class="card"><div class="ic"><i class="fa-solid fa-bolt" aria-hidden="true"></i></div><b>Replay &amp; dead letters</b><span>Recover from consumer downtime without losing anything.</span></div>
-- <div class="card"><div class="ic"><i class="fa-solid fa-bolt" aria-hidden="true"></i></div><b>Webhooks</b><span>Signed deliveries to your own endpoints.</span></div>
-- </div>
-- </section>
--
-- <section class="meanwhile">
-- <h2>Meanwhile, on the network</h2>
-- <p class="lead2">Most of this already exists somewhere on OpenVibe — start there today.</p>
-- <div class="grid">
-- <a class="card" href="https://openvibe.live"><div class="ic"><i class="fa-solid fa-arrow-up-right-from-square" aria-hidden="true"></i></div><b>Live updates today</b><span>Stream, chat and clip updates are delivered by OpenVibe.Live for now.</span><span class="go">openvibe.live →</span></a>
-- </div>
-- </section>
--
-- <section class="net">
-- <h2>The OpenVibe network</h2>
-- <p class="lead2">One account for all of it. Sign in once and every site signs you in.</p>
-- <div class="grid">
-- <a class="card" href="https://openvibe.live"><div class="ic"><i class="fa-solid fa-tower-broadcast" aria-hidden="true"></i></div><b>OpenVibe.Live</b><span>Go live, chat, clip, restream</span><span class="go">openvibe.live →</span></a>
-- <a class="card" href="https://openvibe.tools"><div class="ic"><i class="fa-solid fa-screwdriver-wrench" aria-hidden="true"></i></div><b>OpenVibe.Tools</b><span>Hundreds of online tools</span><span class="go">openvibe.tools →</span></a>
-- <a class="card" href="https://openvibe.community"><div class="ic"><i class="fa-solid fa-people-group" aria-hidden="true"></i></div><b>OpenVibe.Community</b><span>Pastes, posts, people</span><span class="go">openvibe.community →</span></a>
-- <a class="card" href="https://openvibe.games"><div class="ic"><i class="fa-solid fa-gamepad" aria-hidden="true"></i></div><b>OpenVibe.Games</b><span>Scraplandia and browser games</span><span class="go">openvibe.games →</span></a>
-- <a class="card" href="https://openvibe.media"><div class="ic"><i class="fa-solid fa-photo-film" aria-hidden="true"></i></div><b>OpenVibe.Media</b><span>VODs, clips and files</span><span class="go">openvibe.media →</span></a>
-- <a class="card" href="https://openvibe.network"><div class="ic"><i class="fa-solid fa-circle-nodes" aria-hidden="true"></i></div><b>OpenVibe.Network</b><span>One account, every site</span><span class="go">openvibe.network →</span></a>
-- </div>
-- <h2 style="margin-top:28px;font-size:16px">More rooms opening</h2>
-- <div class="rooms" style="margin-top:8px">
-- <a href="https://openvibe.chat/"><i class="fa-solid fa-comments" aria-hidden="true"></i>OpenVibe.Chat</a>
-- <a href="https://openvibe.codes/"><i class="fa-solid fa-code" aria-hidden="true"></i>OpenVibe.Codes</a>
-- <a href="https://openvibe.blog/"><i class="fa-solid fa-pen-nib" aria-hidden="true"></i>OpenVibe.Blog</a>
-- <a href="https://openvibe.wiki/"><i class="fa-solid fa-book" aria-hidden="true"></i>OpenVibe.Wiki</a>
-- <a href="https://openvibe.news/"><i class="fa-solid fa-newspaper" aria-hidden="true"></i>OpenVibe.News</a>
-- <a href="https://openvibe.reviews/"><i class="fa-solid fa-star-half-stroke" aria-hidden="true"></i>OpenVibe.Reviews</a>
-- <a href="https://openvibe.tips/"><i class="fa-solid fa-hand-holding-heart" aria-hidden="true"></i>OpenVibe.Tips</a>
-- <a href="https://openvibe.vip/"><i class="fa-solid fa-crown" aria-hidden="true"></i>OpenVibe.VIP</a>
-- <a href="https://openvibe.trade/"><i class="fa-solid fa-chart-line" aria-hidden="true"></i>OpenVibe.Trade</a>
-- <a href="https://openvibe.host/"><i class="fa-solid fa-server" aria-hidden="true"></i>OpenVibe.Host</a>
-- <a href="https://openvibe.deals/"><i class="fa-solid fa-tags" aria-hidden="true"></i>OpenVibe.Deals</a>
-- <a href="https://openvibe.coupons/"><i class="fa-solid fa-ticket" aria-hidden="true"></i>OpenVibe.Coupons</a>
-- <a href="https://openre.stream/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>OpenRe.Stream</a>
-- <a href="https://auth.openvibe.network/"><i class="fa-solid fa-key" aria-hidden="true"></i>auth.openvibe.network</a>
-- <a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
-- <a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
-- <a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
-- <a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
-- <a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
-- </div>
-- </section>
--
-- <div class="strip">
-- <span class="ov-mark" data-size="44" data-variant="events"></span>
-- <h3>Open source. Community run.</h3>
-- <p>Every OpenVibe site is built in the open by the people using it — free speech within the rules, no gatekeeping, one identity that follows you everywhere.</p>
-- <a class="btn" href="https://github.com/OpenVibers" rel="noopener"><i class="fa-brands fa-github"></i> OpenVibers on GitHub</a>
-- </div>
--</main>
--<style id="ovf-css">
--.ovf{background:var(--bg-secondary,#12131c);border-top:1px solid var(--border,rgba(255,255,255,.08));margin-top:40px;
-- padding:clamp(24px,4vw,40px) clamp(14px,4vw,32px) calc(clamp(20px,3vw,28px) + env(safe-area-inset-bottom,0px));}
--.ovf[data-variant="compact"]{margin-top:24px;padding:14px clamp(12px,3vw,24px) calc(14px + env(safe-area-inset-bottom,0px));}
--.ovf-inner{max-width:1240px;margin:0 auto}
--.ovf-inner--compact{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px;text-align:center}
--.ovf-cols{display:grid;gap:clamp(20px,3vw,36px);grid-template-columns:minmax(230px,1.6fr) repeat(auto-fit,minmax(120px,1fr));align-items:start}
--.ovf-col{display:flex;flex-direction:column;gap:8px;min-width:0}
--.ovf-col h3{margin:0 0 2px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted,#8b93ad)}
--.ovf-col a{color:var(--text-secondary,#b6bdd2);font-size:.86rem;text-decoration:none;line-height:1.4;width:fit-content;transition:color .15s,transform .15s}
--.ovf-col a:hover{color:var(--accent,#60a5fa);transform:translateX(2px)}
--.ovf-more{font-weight:600;opacity:.85}.ovf-ic{flex:none;vertical-align:-.14em}.ovf-more .ovf-ic{font-size:.85em;margin-left:3px;transition:transform .15s}.ovf-more:hover .ovf-ic{transform:translateX(3px)}.ovf-social .ovf-ic{font-size:17px}.ovf-account-links .ovf-ic{font-size:1.05em;opacity:.85}
--.ovf-brand{display:inline-flex;align-items:center;gap:9px;color:var(--text-primary,#f1f4fb);font-size:1.05rem;font-weight:700;text-decoration:none}
--.ovf-brand--sm{font-size:.9rem}
--.ovf-tagline{margin:0;font-size:.82rem;line-height:1.55;color:var(--text-muted,#8b93ad);max-width:46ch}
--.ovf-social{display:flex;gap:8px;margin-top:4px}
--.ovf-social a{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--text-secondary,#b6bdd2);
-- background:var(--bg-tertiary,#1a1b28);border:1px solid var(--border,rgba(255,255,255,.08));font-size:.95rem;transition:color .15s,border-color .15s,transform .15s}
--.ovf-social a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-2px)}
--.ovf-account{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;
-- margin-top:clamp(18px,2.5vw,26px);padding:10px 14px;border-radius:14px;
-- background:color-mix(in srgb, var(--accent,#60a5fa) 8%, var(--bg-tertiary,#1a1b28));
-- border:1px solid color-mix(in srgb, var(--accent,#60a5fa) 26%, var(--border,rgba(255,255,255,.08)));
-- animation:ovfIn .4s ease-out both}
--@keyframes ovfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
--.ovf-account-who{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--text-secondary,#b6bdd2)}
--.ovf-account-who strong{color:var(--text-primary,#f1f4fb)}
--.ovf-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
-- background:var(--accent,#60a5fa);color:#fff;font-size:.7rem;font-weight:800;flex:none}
--.ovf-avatar img{width:100%;height:100%;object-fit:cover}
--.ovf-account-links{display:flex;flex-wrap:wrap;gap:6px}
--.ovf-account-links a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:600;
-- color:var(--text-secondary,#b6bdd2);background:var(--bg-secondary,#12131c);border:1px solid var(--border,rgba(255,255,255,.08));
-- text-decoration:none;transition:color .15s,border-color .15s,transform .15s}
--.ovf-account-links a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-1px)}
--.ovf-account-links i{font-size:.72rem;opacity:.8}
--.ovf-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
-- margin-top:clamp(20px,3vw,30px);padding-top:16px;border-top:1px solid var(--border,rgba(255,255,255,.08));
-- padding-inline:clamp(0px, calc(84px - (100vw - 1240px) / 2), 84px)}
--.ovf-copy{color:var(--text-muted,#8b93ad);font-size:.78rem}
--.ovf-legal-inline,.ovf-compact-links{display:flex;flex-wrap:wrap;gap:14px}
--.ovf-legal-inline a,.ovf-compact-links a{color:var(--text-muted,#8b93ad);font-size:.78rem;text-decoration:none;transition:color .15s}
--.ovf-legal-inline a:hover,.ovf-compact-links a:hover{color:var(--accent,#60a5fa)}
--.ovf-compact-meta{color:var(--text-muted,#8b93ad);font-size:.74rem}
--@media (max-width:900px){.ovf-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.ovf-col--brand{grid-column:1/-1}}
--@media (max-width:560px){
-- .ovf{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
-- .ovf[data-variant="compact"]{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
-- .ovf-cols{gap:22px 16px}
-- .ovf-bar{justify-content:center;text-align:center;padding-inline:0}
-- .ovf-legal-inline{justify-content:center}
-- .ovf-account{flex-direction:column;align-items:flex-start}
--}
--@media (prefers-reduced-motion:reduce){.ovf-account{animation:none}.ovf-col a:hover,.ovf-social a:hover,.ovf-account-links a:hover{transform:none}}</style><footer id="ov-footer" class="ovf" data-variant="full"><div class="ovf-inner">
-- <div class="ovf-cols">
-- <div class="ovf-col ovf-col--brand">
-- <a class="ovf-brand" href="/"><span class="ov-mark" data-size="26"></span><span>OpenVibe.Network</span></a>
-- <p class="ovf-tagline">Open source and community run. Built in the open by the people using it.</p>
-- <div class="ovf-social">
-- <a href="https://github.com/OpenVibers" target="_blank" rel="noopener" aria-label="GitHub" title="GitHub"><svg class="ovf-ic" viewBox="0 0 24 24" width="1em" height="1em" fill="none" stroke="currentColor" stroke-width="1.800" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path fill="currentColor" stroke="none" d="M12 2.2a9.8 9.8 0 0 0-3.1 19.1c.5.1.7-.2.7-.5v-1.7c-2.7.6-3.3-1.2-3.3-1.2-.4-1.1-1.1-1.4-1.1-1.4-.9-.6.1-.6.1-.6 1 .1 1.5 1 1.5 1 .9 1.5 2.3 1.1 2.9.8.1-.6.3-1.1.6-1.3-2.2-.2-4.5-1.1-4.5-4.8 0-1.1.4-1.9 1-2.6-.1-.2-.4-1.2.1-2.6 0 0 .8-.3 2.7 1a9.3 9.3 0 0 1 4.9 0c1.9-1.3 2.7-1 2.7-1 .5 1.4.2 2.4.1 2.6.6.7 1 1.5 1 2.6 0 3.7-2.3 4.6-4.5 4.8.4.3.7.9.7 1.800v2.700c0 .3.2.6.7.5A9.8 9.8 0 0 0 12 2.200z"/></svg></a><a href="https://discord.gg/M6MuRUaeJj" target="_blank" rel="noopener" aria-label="Discord" title="Discord"><svg class="ovf-ic" viewBox="0 0 24 24" width="1em" height="1em" fill="none" stroke="currentColor" stroke-width="1.800" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path fill="currentColor" stroke="none" d="M19.3 5.300a16.5 16.5 0 0 0-4.1-1.300l-.5 1a15.3 15.3 0 0 0-5.4 0l-.5-1a16.5 16.5 0 0 0-4.1 1.300C2.1 9.2 1.4 13 1.7 16.700a16.6 16.6 0 0 0 5.1 2.600l1.1-1.800c-.6-.2-1.2-.5-1.7-.8l.4-.3a11.8 11.8 0 0 0 10.8 0l.4.3c-.5.3-1.1.6-1.7.8l1.1 1.800a16.6 16.6 0 0 0 5.1-2.600c.4-4.3-.7-8.1-3-11.400zM8.7 14.400c-1 0-1.8-.9-1.8-2.100s.8-2.1 1.8-2.1 1.9 1 1.8 2.100c0 1.2-.8 2.1-1.8 2.100zm6.6 0c-1 0-1.8-.9-1.8-2.100s.8-2.1 1.8-2.1 1.9 1 1.8 2.100c0 1.2-.8 2.1-1.8 2.100z"/></svg></a>
-- <a href="/sitemap.xml" aria-label="Sitemap" title="Sitemap"><svg class="ovf-ic" viewBox="0 0 24 24" width="1em" height="1em" fill="none" stroke="currentColor" stroke-width="1.800" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><rect x="9" y="3.5" width="6" height="4.5" rx="1"/><rect x="3" y="16" width="6" height="4.5" rx="1"/><rect x="15" y="16" width="6" height="4.5" rx="1"/><path d="M12 8v4M6 16v-2.500h12V16"/></svg></a>
-- </div>
-- </div>
--
-- <nav class="ovf-col" aria-label="The OpenVibe network">
-- <h3>Network</h3>
-- <a href="https://openvibe.live" title="Go live, restream and clip">Live streaming</a><a href="https://openvibe.tools" title="The whole toolbox">Online tools</a><a href="https://dev.openvibe.tools" title="Formatters, encoders, validators">Developer tools</a><a href="https://net.openvibe.tools" title="Ping, DNS, Whois, SSL">Network diagnostics</a><a href="https://img.openvibe.tools" title="Convert, resize, compress">Image converter</a><a href="https://audio.openvibe.tools" title="Convert, trim, pitch-shift">Audio converter</a>
-- <a class="ovf-more" href="https://openvibe.network" target="_blank" rel="noopener">Everything else <svg class="ovf-ic" viewBox="0 0 24 24" width="1em" height="1em" fill="none" stroke="currentColor" stroke-width="1.800" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
-- </nav>
--
-- <nav class="ovf-col" aria-label="Legal">
-- <h3>Legal</h3>
-- <a href="https://openvibe.live/tos">Terms of Service</a><a href="https://openvibe.live/privacy">Privacy Policy</a><a href="https://openvibe.live/dmca">DMCA</a>
-- </nav>
-- </div>
-- <div class="ovf-account" id="ovf-account" hidden></div>
-- <div class="ovf-bar">
-- <span class="ovf-copy">Open source &amp; community driven · built in the open</span>
-- <span class="ovf-legal-inline">
-- <a href="https://openvibe.live/tos">Terms</a><a href="https://openvibe.live/privacy">Privacy</a><a href="https://openvibe.live/dmca">DMCA</a>
-- </span>
-- </div>
-- </div></footer>
--<script src="https://openvibe.network/shared/ov-mark.js" async></script>
--<script src="https://openvibe.network/shared/navbar.js"></script>
--<script src="https://openvibe.network/shared/footer.js"></script>
--<script>
--(function () {
-- if (window.OpenVibeNavbar) { try { OpenVibeNavbar.init({ service: 'events', apiBase: 'https://openvibe.network', links: [{ label: 'What it will be', href: '#what' }, { label: 'The network', href: 'https://openvibe.network/#network', external: false }], history: { type: 'page', title: 'events.openvibe.network' } }); } catch (e) {} }
-- if (window.OpenVibeFooter) { try { OpenVibeFooter.init({ service: 'events', variant: 'full', links: [{ heading: 'events.openvibe.network', items: [{ name: 'Sign in', url: 'https://openvibe.network/login?return=https%3A%2F%2Fevents.openvibe.network%2F' }, { name: 'The network', url: 'https://openvibe.network/#network' }, { name: 'Discord', url: 'https://discord.gg/M6MuRUaeJj' }] }] }); } catch (e) {} }
--})();
--</script>
--</body>
--</html>
ddiff --git a/dist/events.openvibe.network/manifest.webmanifest b/dist/events.openvibe.network/manifest.webmanifest
ddeleted file mode 100644
iindex 7b48070..0000000
---- a/dist/events.openvibe.network/manifest.webmanifest
++++ /dev/null
@@@ -1,48 +0,0 @@
--{
-- "name": "events.openvibe.network",
-- "short_name": "network",
-- "description": "Durable events for the whole network.",
-- "start_url": "/",
-- "scope": "/",
-- "display": "standalone",
-- "background_color": "#0a0f1c",
-- "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",
-- "purpose": "any"
-- },
-- {
-- "src": "https://openvibe.network/assets/logo-512.png",
-- "sizes": "512x512",
-- "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/events.openvibe.network/privacy.html b/dist/events.openvibe.network/privacy.html
ddeleted file mode 100644
iindex 9642f2d..0000000
---- a/dist/events.openvibe.network/privacy.html
++++ /dev/null
@@@ -1,107 +0,0 @@
--<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
--<title>Privacy Policy — events.openvibe.network</title>
--<meta name="description" content="What events.openvibe.network collects, why, and the choices you have.">
--<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
--<link rel="canonical" href="https://events.openvibe.network/privacy">
--<meta property="og:type" content="article">
--<meta property="og:site_name" content="events.openvibe.network">
--<meta property="og:title" content="Privacy Policy — events.openvibe.network">
--<meta property="og:description" content="What events.openvibe.network collects, why, and the choices you have.">
--<meta property="og:url" content="https://events.openvibe.network/privacy">
--<meta property="og:locale" content="en_US">
--<meta name="twitter:card" content="summary">
--<meta name="twitter:title" content="Privacy Policy — events.openvibe.network">
--<meta name="twitter:description" content="What events.openvibe.network collects, why, and the choices you have.">
--<link rel="icon" type="image/svg+xml" data-ov-icon="events" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-32%20-32%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22ring%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%232563eb%22%2F%3E%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22glow%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%22.34%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22bg%22%20cx%3D%22.5%22%20cy%3D%22.38%22%20r%3D%22.8%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2316223a%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%230a0f1c%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23060912%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Crect%20x%3D%22-32%22%20y%3D%22-32%22%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2215%22%20fill%3D%22url(%23bg)%22%2F%3E%3Cg%20transform%3D%22scale(1.22)%22%3E%0A%3Ccircle%20r%3D%2221%22%20fill%3D%22url(%23glow)%22%2F%3E%0A%3Ccircle%20r%3D%2218%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224%22%20opacity%3D%22.38%22%2F%3E%0A%3Cpath%20d%3D%22M0%2C-18%20A18%2C18%200%200%2C1%2017.4%2C4.6%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224.4%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M-9.5%2C-7%20L0%2C10%20L9.5%2C-7%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%224.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Ccircle%20cx%3D%2217.4%22%20cy%3D%224.6%22%20r%3D%223.2%22%20fill%3D%22%23ffffff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
--<meta name="theme-color" content="#0d131d">
--<meta name="color-scheme" content="dark">
--<style id="ov-critical">html{background:#0a0f1c;color:#e6edf7;color-scheme:dark}</style><script>(function(){try{var r=localStorage.getItem('ov_theme');if(!r)return;var t=JSON.parse(r),v=t&&t.variables;if(!v)return;var e=document.documentElement;for(var k in v)if(k.charAt(0)==='-')e.style.setProperty(k,v[k]);if(v['--bg-primary'])e.style.background=v['--bg-primary'];if(v['--text-primary'])e.style.color=v['--text-primary'];if(v['--color-scheme']==='light'||v['--color-scheme']==='dark')e.style.colorScheme=v['--color-scheme'];if(t.id)e.setAttribute('data-theme',t.id)}catch(_){}})();</script>
--<script src="https://openvibe.network/shared/theme-loader.js" defer></script><style>*{box-sizing:border-box}body{margin:0;background:var(--bg-primary,#0a0f18);color:var(--text-primary,#e6edf7);font:400 16px/1.65 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
--.ov-legal{max-width:760px;margin:0 auto;padding:40px 20px 24px}.ov-legal-kicker{margin:0;font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent-light,var(--accent,#60a5fa))}
--.ov-legal h1{font-size:clamp(28px,4.5vw,40px);letter-spacing:-.03em;line-height:1.1;margin:6px 0 4px}.ov-legal-date{color:var(--text-muted,#7d8aa0);font-size:14px;margin:0 0 28px}
--.ov-legal-toc{margin:0 0 8px;padding:14px 18px;border:1px solid var(--border,rgba(255,255,255,.1));border-radius:12px;background:var(--bg-secondary,#111826)}.ov-legal-toc ol{margin:0;padding-left:20px;columns:2 220px;column-gap:28px}.ov-legal-toc li{margin:3px 0;font-size:14px;break-inside:avoid}.ov-legal-toc a{text-decoration:none}.ov-legal section{scroll-margin-top:80px}
--.ov-legal h2{font-size:19px;margin:30px 0 8px;letter-spacing:-.01em}.ov-legal p,.ov-legal li{color:var(--text-secondary,#a8b3c4)}.ov-legal li{margin:6px 0}.ov-legal b{color:var(--text-primary,#e6edf7)}
--.ov-legal a{color:var(--accent-light,var(--accent,#60a5fa))}.ov-legal code{font-size:13.5px;background:var(--bg-secondary,#111826);padding:1px 6px;border-radius:5px}
--.ov-legal-more{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:20px;border-top:1px solid var(--border,rgba(255,255,255,.1))}.ov-legal-more a{padding:8px 14px;border:1px solid var(--border,rgba(255,255,255,.12));border-radius:10px;text-decoration:none;font-weight:600;font-size:14px}</style></head><body>
--<noscript><nav aria-label="Site" style="display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.1);font:500 14px/1.4 system-ui,sans-serif"><a href="/" style="font-weight:700;color:inherit;text-decoration:none">events.openvibe.network</a><span style="flex:1"></span><a href="https://openvibe.live/">Live</a><a href="https://openvibe.tools/">Tools</a><a href="https://openvibe.community/">Community</a><a href="https://openvibe.games/">Games</a><a href="https://openvibe.media/">Media</a><a href="https://openvibe.network/">Network</a></nav></noscript>
--<main><article class="ov-legal"><p class="ov-legal-kicker">events.openvibe.network</p><h1>Privacy Policy</h1><p class="ov-legal-date">Last updated <time datetime="2026-09-18">September 18, 2026</time></p>
--<nav class="ov-legal-toc" aria-label="On this page"><ol><li><a href="#s1">The short version</a></li><li><a href="#s2">What we collect</a></li><li><a href="#s3">Why we use it</a></li><li><a href="#s4">Cookies and storage in your browser</a></li><li><a href="#s5">Across OpenVibe sites</a></li><li><a href="#s6">Who we share with</a></li><li><a href="#s7">How long we keep things</a></li><li><a href="#s8">Where your data is</a></li><li><a href="#s9">Security</a></li><li><a href="#s10">Your choices and rights</a></li><li><a href="#s11">Children</a></li><li><a href="#s12">Changes and contact</a></li></ol></nav>
--<section><h2 id="s1">The short version</h2><p>events.openvibe.network collects what it needs to work and to keep abuse out, and no more. We do not sell or rent personal information, we do not share it for advertising, and we do not run advertising trackers. Most of events.openvibe.network works without an account.</p></section>
--<section><h2 id="s2">What we collect</h2><ul><li><b>Request logs.</b> Like every web server, ours record your IP address, browser type, the address requested and the time. We use them for security, rate limiting, debugging and aggregate traffic statistics.</li><li><b>Usage statistics.</b> First-party page views with a random session identifier, kept on our own servers, so we can see which parts of the network are used.</li><li><b>An anonymous page count.</b> The shared navigation bar reports one count per page load containing only the site's hostname and the day. No user, IP address or page is stored with it. It decides the order of sites in our menus. It is skipped when your browser sends Global Privacy Control or Do Not Track.</li></ul></section>
--<section><h2 id="s3">Why we use it</h2><ul><li>To provide the service you asked for and keep you signed in (performance of our agreement with you).</li><li>To keep the service secure, prevent abuse and understand usage in aggregate (our legitimate interests).</li><li>To send account email such as verification and password resets, and notifications you switched on (agreement and consent).</li><li>To comply with the law.</li></ul></section>
--<section><h2 id="s4">Cookies and storage in your browser</h2><p>We use a small number of first-party cookies: a sign-in token (<code>ov_token</code>), a refresh token limited to the sign-in paths, a short-lived state cookie during sign-in, and a hint (<code>ov_sso_hint</code>) that remembers whether you were signed in. openvibe.network also keeps a sign-in cookie that lets other OpenVibe sites check, in a hidden frame or through your browser's built-in federated sign-in, whether to sign you in quietly. It is never used for anything except that check.</p><p>Your theme, display settings (text size, reduced motion), recent pages, a cached copy of the navigation and similar conveniences are kept in your browser's local storage. There are no third-party advertising or social cookies. Our sites sit behind Cloudflare, which may set its own security cookies and measure performance.</p></section>
--<section><h2 id="s5">Across OpenVibe sites</h2><p>OpenVibe sites share one account. When you are signed in, the site you visit learns who you are from openvibe.network. While cross-site history is switched on, the pages and tools you open while signed in are listed for you, and only you, at <a href="https://openvibe.network/history">openvibe.network/history</a>, where you can clear the list or pause it.</p></section>
--<section><h2 id="s6">Who we share with</h2><p>Only the services needed to run the network: hosting (OVH, servers in the United States), network security and delivery (Cloudflare), object storage for media (Backblaze B2 or Cloudflare R2), and email delivery for account messages. They process data on our instructions. We disclose information when the law requires it, and we tell the person affected when we are allowed to. If OpenVibe is ever reorganised or handed to new maintainers, the data moves under the same promises.</p></section>
--<section><h2 id="s7">How long we keep things</h2><ul><li>Request logs and raw usage events: a limited rolling period, then totals only.</li><li>The anonymous page count: totals per site and day, nothing personal to delete.</li></ul></section>
--<section><h2 id="s8">Where your data is</h2><p>Our servers are in the United States. If you use OpenVibe from elsewhere, your information is transferred to and processed in the United States, which may have different data protection rules from your country.</p></section>
--<section><h2 id="s9">Security</h2><p>Traffic is encrypted in transit. Passwords are stored as salted hashes, sign-in tokens are signed and short-lived, and internal service routes are not reachable from the internet. No system is perfectly secure; if a breach affects your personal information we will tell you and the relevant authorities as the law requires.</p></section>
--<section><h2 id="s10">Your choices and rights</h2><p>You can use most of events.openvibe.network without an account, block cookies, and switch on Global Privacy Control to skip the anonymous page count. With an account you can view, correct, export and delete your data from your account settings, or ask us to do it.</p><p>Depending on where you live, including the EEA, the UK and US states such as California, you may have rights to access, correct, delete, restrict or object to the use of your data, to data portability, and to complain to your data protection authority. We do not sell or share personal information as those laws define it, and we do not make automated decisions with legal effect. Write to <a href="mailto:[email protected]">[email protected]</a>; we answer within 30 days and will not treat you differently for asking.</p></section>
--<section><h2 id="s11">Children</h2><p>events.openvibe.network is not for children under 13, and we do not knowingly collect their information. If you believe a child has given us personal information, contact us and we will delete it.</p></section>
--<section><h2 id="s12">Changes and contact</h2><p>We will post changes here and update the date above; significant changes are announced on the site. Questions and requests: <a href="mailto:[email protected]">[email protected]</a>.</p></section>
--<nav class="ov-legal-more" aria-label="Other policies"><a href="/terms">Terms of Service</a><a href="/dmca">DMCA &amp; Copyright</a><a href="https://openvibe.network/">About OpenVibe</a></nav></article></main><style id="ovf-css">
--.ovf{background:var(--bg-secondary,#12131c);border-top:1px solid var(--border,rgba(255,255,255,.08));margin-top:40px;
-- padding:clamp(24px,4vw,40px) clamp(14px,4vw,32px) calc(clamp(20px,3vw,28px) + env(safe-area-inset-bottom,0px));}
--.ovf[data-variant="compact"]{margin-top:24px;padding:14px clamp(12px,3vw,24px) calc(14px + env(safe-area-inset-bottom,0px));}
--.ovf-inner{max-width:1240px;margin:0 auto}
--.ovf-inner--compact{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px;text-align:center}
--.ovf-cols{display:grid;gap:clamp(20px,3vw,36px);grid-template-columns:minmax(230px,1.6fr) repeat(auto-fit,minmax(120px,1fr));align-items:start}
--.ovf-col{display:flex;flex-direction:column;gap:8px;min-width:0}
--.ovf-col h3{margin:0 0 2px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted,#8b93ad)}
--.ovf-col a{color:var(--text-secondary,#b6bdd2);font-size:.86rem;text-decoration:none;line-height:1.4;width:fit-content;transition:color .15s,transform .15s}
--.ovf-col a:hover{color:var(--accent,#60a5fa);transform:translateX(2px)}
--.ovf-more{font-weight:600;opacity:.85}.ovf-ic{flex:none;vertical-align:-.14em}.ovf-more .ovf-ic{font-size:.85em;margin-left:3px;transition:transform .15s}.ovf-more:hover .ovf-ic{transform:translateX(3px)}.ovf-social .ovf-ic{font-size:17px}.ovf-account-links .ovf-ic{font-size:1.05em;opacity:.85}
--.ovf-brand{display:inline-flex;align-items:center;gap:9px;color:var(--text-primary,#f1f4fb);font-size:1.05rem;font-weight:700;text-decoration:none}
--.ovf-brand--sm{font-size:.9rem}
--.ovf-tagline{margin:0;font-size:.82rem;line-height:1.55;color:var(--text-muted,#8b93ad);max-width:46ch}
--.ovf-social{display:flex;gap:8px;margin-top:4px}
--.ovf-social a{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--text-secondary,#b6bdd2);
-- background:var(--bg-tertiary,#1a1b28);border:1px solid var(--border,rgba(255,255,255,.08));font-size:.95rem;transition:color .15s,border-color .15s,transform .15s}
--.ovf-social a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-2px)}
--.ovf-account{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;
-- margin-top:clamp(18px,2.5vw,26px);padding:10px 14px;border-radius:14px;
-- background:color-mix(in srgb, var(--accent,#60a5fa) 8%, var(--bg-tertiary,#1a1b28));
-- border:1px solid color-mix(in srgb, var(--accent,#60a5fa) 26%, var(--border,rgba(255,255,255,.08)));
-- animation:ovfIn .4s ease-out both}
--@keyframes ovfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
--.ovf-account-who{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--text-secondary,#b6bdd2)}
--.ovf-account-who strong{color:var(--text-primary,#f1f4fb)}
--.ovf-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
-- background:var(--accent,#60a5fa);color:#fff;font-size:.7rem;font-weight:800;flex:none}
--.ovf-avatar img{width:100%;height:100%;object-fit:cover}
--.ovf-account-links{display:flex;flex-wrap:wrap;gap:6px}
--.ovf-account-links a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:600;
-- color:var(--text-secondary,#b6bdd2);background:var(--bg-secondary,#12131c);border:1px solid var(--border,rgba(255,255,255,.08));
-- text-decoration:none;transition:color .15s,border-color .15s,transform .15s}
--.ovf-account-links a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-1px)}
--.ovf-account-links i{font-size:.72rem;opacity:.8}
--.ovf-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
-- margin-top:clamp(20px,3vw,30px);padding-top:16px;border-top:1px solid var(--border,rgba(255,255,255,.08));
-- padding-inline:clamp(0px, calc(84px - (100vw - 1240px) / 2), 84px)}
--.ovf-copy{color:var(--text-muted,#8b93ad);font-size:.78rem}
--.ovf-legal-inline,.ovf-compact-links{display:flex;flex-wrap:wrap;gap:14px}
--.ovf-legal-inline a,.ovf-compact-links a{color:var(--text-muted,#8b93ad);font-size:.78rem;text-decoration:none;transition:color .15s}
--.ovf-legal-inline a:hover,.ovf-compact-links a:hover{color:var(--accent,#60a5fa)}
--.ovf-compact-meta{color:var(--text-muted,#8b93ad);font-size:.74rem}
--@media (max-width:900px){.ovf-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.ovf-col--brand{grid-column:1/-1}}
--@media (max-width:560px){
-- .ovf{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
-- .ovf[data-variant="compact"]{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
-- .ovf-cols{gap:22px 16px}
-- .ovf-bar{justify-content:center;text-align:center;padding-inline:0}
-- .ovf-legal-inline{justify-content:center}
-- .ovf-account{flex-direction:column;align-items:flex-start}
--}
--@media (prefers-reduced-motion:reduce){.ovf-account{animation:none}.ovf-col a:hover,.ovf-social a:hover,.ovf-account-links a:hover{transform:none}}</style><footer id="ov-footer" class="ovf" data-variant="compact"><div class="ovf-inner ovf-inner--compact">
-- <a class="ovf-brand ovf-brand--sm" href="/"><span class="ov-mark" data-size="20"></span><span>OpenVibe.Network</span></a>
-- <nav class="ovf-compact-links" aria-label="Site links">
--
-- <a href="https://openvibe.network" target="_blank" rel="noopener">Network</a>
-- <a href="https://openvibe.live/tos">Terms</a><a href="https://openvibe.live/privacy">Privacy</a><a href="https://openvibe.live/dmca">DMCA</a>
-- </nav>
-- <span class="ovf-compact-meta">Open source · 2026</span>
-- </div></footer>
--<script src="https://openvibe.network/shared/navbar.js" defer></script><script src="https://openvibe.network/shared/footer.js" defer></script>
--<script>addEventListener('DOMContentLoaded',function(){var t=null;try{t=(document.cookie.match(/(?:^|; )ov_token=([^;]*)/)||[])[1]||localStorage.getItem('ov_token')}catch(e){}
--try{OpenVibeNavbar.init({service:"network",apiBase:'https://openvibe.network',token:t?decodeURIComponent(t):null})}catch(e){}
--try{OpenVibeFooter.init({service:"network",variant:'compact',mount:'#ov-footer',apiBase:'https://openvibe.network'})}catch(e){}});</script>
--</body></html>
\\ No newline at end of file
ddiff --git a/dist/events.openvibe.network/robots.txt b/dist/events.openvibe.network/robots.txt
ddeleted file mode 100644
iindex 6f11c0a..0000000
---- a/dist/events.openvibe.network/robots.txt
++++ /dev/null
@@@ -1,4 +0,0 @@
--User-agent: *
--Allow: /
--Disallow: /auth/
--Sitemap: https://events.openvibe.network/sitemap.xml
ddiff --git a/dist/events.openvibe.network/sitemap.xml b/dist/events.openvibe.network/sitemap.xml
ddeleted file mode 100644
iindex 91d8080..0000000
---- a/dist/events.openvibe.network/sitemap.xml
++++ /dev/null
@@@ -1,4 +0,0 @@
--<?xml version="1.0" encoding="UTF-8"?>
--<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://events.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
--</urlset>
ddiff --git a/dist/events.openvibe.network/status.json b/dist/events.openvibe.network/status.json
ddeleted file mode 100644
iindex 5b5c9a2..0000000
---- a/dist/events.openvibe.network/status.json
++++ /dev/null
@@@ -1,13 +0,0 @@
--{
-- "domain": "events.openvibe.network",
-- "name": "events.openvibe.network",
-- "stage": "placeholder",
-- "live": false,
-- "plannedRepo": "OpenVibers/OpenVibe.Events",
-- "repoUrl": "https://github.com/OpenVibers/OpenVibe.Events",
-- "repoExists": true,
-- "repoStage": "charter-only",
-- "network": "https://openvibe.network",
-- "updated": "2026-09-21",
-- "note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
--}
ddiff --git a/dist/events.openvibe.network/terms.html b/dist/events.openvibe.network/terms.html
ddeleted file mode 100644
iindex 038d935..0000000
---- a/dist/events.openvibe.network/terms.html
++++ /dev/null
@@@ -1,106 +0,0 @@
--<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
--<title>Terms of Service — events.openvibe.network</title>
--<meta name="description" content="The rules for using events.openvibe.network, in plain language.">
--<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
--<link rel="canonical" href="https://events.openvibe.network/terms">
--<meta property="og:type" content="article">
--<meta property="og:site_name" content="events.openvibe.network">
--<meta property="og:title" content="Terms of Service — events.openvibe.network">
--<meta property="og:description" content="The rules for using events.openvibe.network, in plain language.">
--<meta property="og:url" content="https://events.openvibe.network/terms">
--<meta property="og:locale" content="en_US">
--<meta name="twitter:card" content="summary">
--<meta name="twitter:title" content="Terms of Service — events.openvibe.network">
--<meta name="twitter:description" content="The rules for using events.openvibe.network, in plain language.">
--<link rel="icon" type="image/svg+xml" data-ov-icon="events" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-32%20-32%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22ring%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%232563eb%22%2F%3E%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22glow%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%22.34%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2360a5fa%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22bg%22%20cx%3D%22.5%22%20cy%3D%22.38%22%20r%3D%22.8%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%2316223a%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%230a0f1c%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23060912%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Crect%20x%3D%22-32%22%20y%3D%22-32%22%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2215%22%20fill%3D%22url(%23bg)%22%2F%3E%3Cg%20transform%3D%22scale(1.22)%22%3E%0A%3Ccircle%20r%3D%2221%22%20fill%3D%22url(%23glow)%22%2F%3E%0A%3Ccircle%20r%3D%2218%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224%22%20opacity%3D%22.38%22%2F%3E%0A%3Cpath%20d%3D%22M0%2C-18%20A18%2C18%200%200%2C1%2017.4%2C4.6%22%20fill%3D%22none%22%20stroke%3D%22url(%23ring)%22%20stroke-width%3D%224.4%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M-9.5%2C-7%20L0%2C10%20L9.5%2C-7%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%224.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Ccircle%20cx%3D%2217.4%22%20cy%3D%224.6%22%20r%3D%223.2%22%20fill%3D%22%23ffffff%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
--<meta name="theme-color" content="#0d131d">
--<meta name="color-scheme" content="dark">
--<style id="ov-critical">html{background:#0a0f1c;color:#e6edf7;color-scheme:dark}</style><script>(function(){try{var r=localStorage.getItem('ov_theme');if(!r)return;var t=JSON.parse(r),v=t&&t.variables;if(!v)return;var e=document.documentElement;for(var k in v)if(k.charAt(0)==='-')e.style.setProperty(k,v[k]);if(v['--bg-primary'])e.style.background=v['--bg-primary'];if(v['--text-primary'])e.style.color=v['--text-primary'];if(v['--color-scheme']==='light'||v['--color-scheme']==='dark')e.style.colorScheme=v['--color-scheme'];if(t.id)e.setAttribute('data-theme',t.id)}catch(_){}})();</script>
--<script src="https://openvibe.network/shared/theme-loader.js" defer></script><style>*{box-sizing:border-box}body{margin:0;background:var(--bg-primary,#0a0f18);color:var(--text-primary,#e6edf7);font:400 16px/1.65 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
--.ov-legal{max-width:760px;margin:0 auto;padding:40px 20px 24px}.ov-legal-kicker{margin:0;font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent-light,var(--accent,#60a5fa))}
--.ov-legal h1{font-size:clamp(28px,4.5vw,40px);letter-spacing:-.03em;line-height:1.1;margin:6px 0 4px}.ov-legal-date{color:var(--text-muted,#7d8aa0);font-size:14px;margin:0 0 28px}
--.ov-legal-toc{margin:0 0 8px;padding:14px 18px;border:1px solid var(--border,rgba(255,255,255,.1));border-radius:12px;background:var(--bg-secondary,#111826)}.ov-legal-toc ol{margin:0;padding-left:20px;columns:2 220px;column-gap:28px}.ov-legal-toc li{margin:3px 0;font-size:14px;break-inside:avoid}.ov-legal-toc a{text-decoration:none}.ov-legal section{scroll-margin-top:80px}
--.ov-legal h2{font-size:19px;margin:30px 0 8px;letter-spacing:-.01em}.ov-legal p,.ov-legal li{color:var(--text-secondary,#a8b3c4)}.ov-legal li{margin:6px 0}.ov-legal b{color:var(--text-primary,#e6edf7)}
--.ov-legal a{color:var(--accent-light,var(--accent,#60a5fa))}.ov-legal code{font-size:13.5px;background:var(--bg-secondary,#111826);padding:1px 6px;border-radius:5px}
--.ov-legal-more{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:20px;border-top:1px solid var(--border,rgba(255,255,255,.1))}.ov-legal-more a{padding:8px 14px;border:1px solid var(--border,rgba(255,255,255,.12));border-radius:10px;text-decoration:none;font-weight:600;font-size:14px}</style></head><body>
--<noscript><nav aria-label="Site" style="display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.1);font:500 14px/1.4 system-ui,sans-serif"><a href="/" style="font-weight:700;color:inherit;text-decoration:none">events.openvibe.network</a><span style="flex:1"></span><a href="https://openvibe.live/">Live</a><a href="https://openvibe.tools/">Tools</a><a href="https://openvibe.community/">Community</a><a href="https://openvibe.games/">Games</a><a href="https://openvibe.media/">Media</a><a href="https://openvibe.network/">Network</a></nav></noscript>
--<main><article class="ov-legal"><p class="ov-legal-kicker">events.openvibe.network</p><h1>Terms of Service</h1><p class="ov-legal-date">Last updated <time datetime="2026-09-18">September 18, 2026</time></p>
--<nav class="ov-legal-toc" aria-label="On this page"><ol><li><a href="#s1">The short version</a></li><li><a href="#s2">Who can use it</a></li><li><a href="#s3">This site is not open yet</a></li><li><a href="#s4">Rules for everyone</a></li><li><a href="#s5">Automated and AI-written text</a></li><li><a href="#s6">Reporting and moderation</a></li><li><a href="#s7">Leaving</a></li><li><a href="#s8">Open source, links and feedback</a></li><li><a href="#s9">No warranty, limited liability</a></li><li><a href="#s10">Governing law</a></li><li><a href="#s11">Changes and contact</a></li></ol></nav>
--<section><h2 id="s1">The short version</h2><p>events.openvibe.network is part of OpenVibe, an open source, community-run network. Use it for lawful things, be decent to other people, and do not try to break it. Most of it works without an account. We can remove content or accounts that break these terms. The service is provided as it is, without warranties.</p><p>These terms cover events.openvibe.network, its subdomains, and any other domain that serves the same service. Other OpenVibe sites have their own terms, written for what those sites do.</p></section>
--<section><h2 id="s2">Who can use it</h2><p>You must be at least 13 years old, or the minimum age of digital consent where you live. If you are under 18, a parent or guardian must agree to these terms for you. You may not use events.openvibe.network if you were banned from the network, or if the law where you live forbids it.</p></section>
--<section><h2 id="s3">This site is not open yet</h2><p>events.openvibe.network is a reserved address that currently shows a preview page. There is nothing to sign up for or post here yet. When it opens, these terms will be replaced with ones written for what it does, and the date above will change.</p></section>
--<section><h2 id="s4">Rules for everyone</h2><p>OpenVibe leans toward open expression. These limits apply on every site:</p><ul><li>Nothing illegal where you are or in the United States, where our servers are.</li><li>No sexual content involving minors and no sexualisation of minors, ever. We report it to the authorities.</li><li>No credible threats, incitement to violence, or publishing private information to harm someone.</li><li>No content you do not have the rights to.</li><li>No malware, phishing, spam, fraud, or impersonation of a person or organisation to deceive.</li><li>No attempts to disrupt the service, get around bans, rate limits or access controls, or reach other people's accounts or data.</li><li>No scraping that ignores robots.txt or our rate limits. Respectful crawlers, archives and AI agents are welcome; a machine-readable map is at /llms.txt where available.</li></ul></section>
--<section><h2 id="s5">Automated and AI-written text</h2><p>Some descriptive text on OpenVibe, such as footer blurbs, summaries and suggestions, is written by automated systems and checked by rules rather than by a person. It can be wrong. Do not rely on it for decisions that matter.</p></section>
--<section><h2 id="s6">Reporting and moderation</h2><p>Report content with the report controls where they exist, or write to <a href="mailto:[email protected]">[email protected]</a>. Copyright complaints follow the <a href="/dmca">DMCA process</a>. We may remove content, limit features, or suspend accounts that break these terms or put other people or the service at risk, and we may act without notice when the harm is urgent. If you think we got it wrong, reply to the notice or write to the same address and a person will look again.</p></section>
--<section><h2 id="s7">Leaving</h2><p>You can stop using events.openvibe.network at any time. Sections that by their nature should survive (licences for content already shared, liability, governing law) continue after you leave.</p></section>
--<section><h2 id="s8">Open source, links and feedback</h2><p>OpenVibe's code is public. Each repository's licence governs your use of the code; these terms govern your use of the hosted service at events.openvibe.network. Links to other sites are provided for convenience and we are not responsible for them. If you send us ideas or fixes, we may use them without owing you anything, and contributions to the code are made under the repository's licence.</p></section>
--<section><h2 id="s9">No warranty, limited liability</h2><p>The service is provided "as is" and "as available", without warranties of any kind, including fitness for a particular purpose, accuracy of results, or uninterrupted availability. To the extent the law allows, OpenVibe and the people who run it are not liable for indirect, incidental or consequential losses, lost data or lost profits arising from your use of events.openvibe.network, and our total liability is limited to the greater of what you paid us in the past twelve months or fifty US dollars. Nothing here limits liability that cannot be limited by law, and consumer rights you have under the law of your country remain.</p><p>If your use of events.openvibe.network breaks these terms or the law and someone brings a claim against us because of it, you agree to cover our reasonable costs.</p></section>
--<section><h2 id="s10">Governing law</h2><p>These terms are governed by the laws of the United States and the State of Washington, without regard to conflicts of law. Disputes are handled in the federal or state courts located in Washington State, unless the consumer law of your country gives you the right to use your local courts. If part of these terms cannot be enforced, the rest still applies. Not enforcing a term once does not waive it. These terms are the whole agreement between us about events.openvibe.network.</p></section>
--<section><h2 id="s11">Changes and contact</h2><p>We may update these terms. Material changes are announced on the site before they take effect, and the date at the top changes. Continuing to use events.openvibe.network after a change means you accept it. Questions: <a href="mailto:[email protected]">[email protected]</a>.</p></section>
--<nav class="ov-legal-more" aria-label="Other policies"><a href="/privacy">Privacy Policy</a><a href="/dmca">DMCA &amp; Copyright</a><a href="https://openvibe.network/">About OpenVibe</a></nav></article></main><style id="ovf-css">
--.ovf{background:var(--bg-secondary,#12131c);border-top:1px solid var(--border,rgba(255,255,255,.08));margin-top:40px;
-- padding:clamp(24px,4vw,40px) clamp(14px,4vw,32px) calc(clamp(20px,3vw,28px) + env(safe-area-inset-bottom,0px));}
--.ovf[data-variant="compact"]{margin-top:24px;padding:14px clamp(12px,3vw,24px) calc(14px + env(safe-area-inset-bottom,0px));}
--.ovf-inner{max-width:1240px;margin:0 auto}
--.ovf-inner--compact{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px;text-align:center}
--.ovf-cols{display:grid;gap:clamp(20px,3vw,36px);grid-template-columns:minmax(230px,1.6fr) repeat(auto-fit,minmax(120px,1fr));align-items:start}
--.ovf-col{display:flex;flex-direction:column;gap:8px;min-width:0}
--.ovf-col h3{margin:0 0 2px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted,#8b93ad)}
--.ovf-col a{color:var(--text-secondary,#b6bdd2);font-size:.86rem;text-decoration:none;line-height:1.4;width:fit-content;transition:color .15s,transform .15s}
--.ovf-col a:hover{color:var(--accent,#60a5fa);transform:translateX(2px)}
--.ovf-more{font-weight:600;opacity:.85}.ovf-ic{flex:none;vertical-align:-.14em}.ovf-more .ovf-ic{font-size:.85em;margin-left:3px;transition:transform .15s}.ovf-more:hover .ovf-ic{transform:translateX(3px)}.ovf-social .ovf-ic{font-size:17px}.ovf-account-links .ovf-ic{font-size:1.05em;opacity:.85}
--.ovf-brand{display:inline-flex;align-items:center;gap:9px;color:var(--text-primary,#f1f4fb);font-size:1.05rem;font-weight:700;text-decoration:none}
--.ovf-brand--sm{font-size:.9rem}
--.ovf-tagline{margin:0;font-size:.82rem;line-height:1.55;color:var(--text-muted,#8b93ad);max-width:46ch}
--.ovf-social{display:flex;gap:8px;margin-top:4px}
--.ovf-social a{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--text-secondary,#b6bdd2);
-- background:var(--bg-tertiary,#1a1b28);border:1px solid var(--border,rgba(255,255,255,.08));font-size:.95rem;transition:color .15s,border-color .15s,transform .15s}
--.ovf-social a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-2px)}
--.ovf-account{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;
-- margin-top:clamp(18px,2.5vw,26px);padding:10px 14px;border-radius:14px;
-- background:color-mix(in srgb, var(--accent,#60a5fa) 8%, var(--bg-tertiary,#1a1b28));
-- border:1px solid color-mix(in srgb, var(--accent,#60a5fa) 26%, var(--border,rgba(255,255,255,.08)));
-- animation:ovfIn .4s ease-out both}
--@keyframes ovfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
--.ovf-account-who{display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--text-secondary,#b6bdd2)}
--.ovf-account-who strong{color:var(--text-primary,#f1f4fb)}
--.ovf-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
-- background:var(--accent,#60a5fa);color:#fff;font-size:.7rem;font-weight:800;flex:none}
--.ovf-avatar img{width:100%;height:100%;object-fit:cover}
--.ovf-account-links{display:flex;flex-wrap:wrap;gap:6px}
--.ovf-account-links a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:600;
-- color:var(--text-secondary,#b6bdd2);background:var(--bg-secondary,#12131c);border:1px solid var(--border,rgba(255,255,255,.08));
-- text-decoration:none;transition:color .15s,border-color .15s,transform .15s}
--.ovf-account-links a:hover{color:var(--accent,#60a5fa);border-color:var(--accent,#60a5fa);transform:translateY(-1px)}
--.ovf-account-links i{font-size:.72rem;opacity:.8}
--.ovf-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
-- margin-top:clamp(20px,3vw,30px);padding-top:16px;border-top:1px solid var(--border,rgba(255,255,255,.08));
-- padding-inline:clamp(0px, calc(84px - (100vw - 1240px) / 2), 84px)}
--.ovf-copy{color:var(--text-muted,#8b93ad);font-size:.78rem}
--.ovf-legal-inline,.ovf-compact-links{display:flex;flex-wrap:wrap;gap:14px}
--.ovf-legal-inline a,.ovf-compact-links a{color:var(--text-muted,#8b93ad);font-size:.78rem;text-decoration:none;transition:color .15s}
--.ovf-legal-inline a:hover,.ovf-compact-links a:hover{color:var(--accent,#60a5fa)}
--.ovf-compact-meta{color:var(--text-muted,#8b93ad);font-size:.74rem}
--@media (max-width:900px){.ovf-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.ovf-col--brand{grid-column:1/-1}}
--@media (max-width:560px){
-- .ovf{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
-- .ovf[data-variant="compact"]{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
-- .ovf-cols{gap:22px 16px}
-- .ovf-bar{justify-content:center;text-align:center;padding-inline:0}
-- .ovf-legal-inline{justify-content:center}
-- .ovf-account{flex-direction:column;align-items:flex-start}
--}
--@media (prefers-reduced-motion:reduce){.ovf-account{animation:none}.ovf-col a:hover,.ovf-social a:hover,.ovf-account-links a:hover{transform:none}}</style><footer id="ov-footer" class="ovf" data-variant="compact"><div class="ovf-inner ovf-inner--compact">
-- <a class="ovf-brand ovf-brand--sm" href="/"><span class="ov-mark" data-size="20"></span><span>OpenVibe.Network</span></a>
-- <nav class="ovf-compact-links" aria-label="Site links">
--
-- <a href="https://openvibe.network" target="_blank" rel="noopener">Network</a>
-- <a href="https://openvibe.live/tos">Terms</a><a href="https://openvibe.live/privacy">Privacy</a><a href="https://openvibe.live/dmca">DMCA</a>
-- </nav>
-- <span class="ovf-compact-meta">Open source · 2026</span>
-- </div></footer>
--<script src="https://openvibe.network/shared/navbar.js" defer></script><script src="https://openvibe.network/shared/footer.js" defer></script>
--<script>addEventListener('DOMContentLoaded',function(){var t=null;try{t=(document.cookie.match(/(?:^|; )ov_token=([^;]*)/)||[])[1]||localStorage.getItem('ov_token')}catch(e){}
--try{OpenVibeNavbar.init({service:"network",apiBase:'https://openvibe.network',token:t?decodeURIComponent(t):null})}catch(e){}
--try{OpenVibeFooter.init({service:"network",variant:'compact',mount:'#ov-footer',apiBase:'https://openvibe.network'})}catch(e){}});</script>
--</body></html>
\\ No newline at end of file
ddiff --git a/dist/openre.stream/index.html b/dist/openre.stream/index.html
iindex 04678ed..6ecc04d 100644
---- a/dist/openre.stream/index.html
++++ b/dist/openre.stream/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenRe.Stream — Ingest and restream, in the open.">
<meta name="twitter:description" content="OpenRe.Stream is the ingest and restream infrastructure behind OpenVibe.Live: RTMP, WHIP and SRT ingest, stream lifecycle, restream destinations and output status — the plumbing, documented and open.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openre.stream/#site","url":"https://openre.stream/","name":"OpenRe.Stream","description":"OpenRe.Stream is the ingest and restream infrastructure behind OpenVibe.Live: RTMP, WHIP and SRT ingest, stream lifecycle, restream destinations and output status — the plumbing, documented and open.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openre.stream/#page","url":"https://openre.stream/","name":"OpenRe.Stream — Ingest and restream, in the open.","description":"OpenRe.Stream is the ingest and restream infrastructure behind OpenVibe.Live: RTMP, WHIP and SRT ingest, stream lifecycle, restream destinations and output status — the plumbing, documented and open.","isPartOf":{"@id":"https://openre.stream/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenRe.Stream","item":"https://openre.stream/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openre.stream/#site","url":"https://openre.stream/","name":"OpenRe.Stream","description":"OpenRe.Stream is the ingest and restream infrastructure behind OpenVibe.Live: RTMP, WHIP and SRT ingest, stream lifecycle, restream destinations and output status — the plumbing, documented and open.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openre.stream/#page","url":"https://openre.stream/","name":"OpenRe.Stream — Ingest and restream, in the open.","description":"OpenRe.Stream is the ingest and restream infrastructure behind OpenVibe.Live: RTMP, WHIP and SRT ingest, stream lifecycle, restream destinations and output status — the plumbing, documented and open.","isPartOf":{"@id":"https://openre.stream/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenRe.Stream","item":"https://openre.stream/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openre.stream/sitemap.xml b/dist/openre.stream/sitemap.xml
iindex 2b4b16d..31e4031 100644
---- a/dist/openre.stream/sitemap.xml
++++ b/dist/openre.stream/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openre.stream/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openre.stream/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openre.stream/status.json b/dist/openre.stream/status.json
iindex 2194816..3de714e 100644
---- a/dist/openre.stream/status.json
++++ b/dist/openre.stream/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.blog/index.html b/dist/openvibe.blog/index.html
iindex b24a839..060b6f6 100644
---- a/dist/openvibe.blog/index.html
++++ b/dist/openvibe.blog/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Blog — Long-form, yours to keep.">
<meta name="twitter:description" content="OpenVibe.Blog is the publishing home of the OpenVibe network: the official OpenVibe blog and blogs for every member — drafts, scheduled posts, media-rich writing, comments and feeds, with your OpenVibe account.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.blog/#site","url":"https://openvibe.blog/","name":"OpenVibe.Blog","description":"OpenVibe.Blog is the publishing home of the OpenVibe network: the official OpenVibe blog and blogs for every member — drafts, scheduled posts, media-rich writing, comments and feeds, with your OpenVibe account.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.blog/#page","url":"https://openvibe.blog/","name":"OpenVibe.Blog — Long-form, yours to keep.","description":"OpenVibe.Blog is the publishing home of the OpenVibe network: the official OpenVibe blog and blogs for every member — drafts, scheduled posts, media-rich writing, comments and feeds, with your OpenVibe account.","isPartOf":{"@id":"https://openvibe.blog/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Blog","item":"https://openvibe.blog/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.blog/#site","url":"https://openvibe.blog/","name":"OpenVibe.Blog","description":"OpenVibe.Blog is the publishing home of the OpenVibe network: the official OpenVibe blog and blogs for every member — drafts, scheduled posts, media-rich writing, comments and feeds, with your OpenVibe account.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.blog/#page","url":"https://openvibe.blog/","name":"OpenVibe.Blog — Long-form, yours to keep.","description":"OpenVibe.Blog is the publishing home of the OpenVibe network: the official OpenVibe blog and blogs for every member — drafts, scheduled posts, media-rich writing, comments and feeds, with your OpenVibe account.","isPartOf":{"@id":"https://openvibe.blog/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Blog","item":"https://openvibe.blog/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.blog/sitemap.xml b/dist/openvibe.blog/sitemap.xml
iindex 82baaea..8a5db90 100644
---- a/dist/openvibe.blog/sitemap.xml
++++ b/dist/openvibe.blog/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.blog/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.blog/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.blog/status.json b/dist/openvibe.blog/status.json
iindex 9b16667..34b9cff 100644
---- a/dist/openvibe.blog/status.json
++++ b/dist/openvibe.blog/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.chat/index.html b/dist/openvibe.chat/index.html
iindex fbd6944..a2404cc 100644
---- a/dist/openvibe.chat/index.html
++++ b/dist/openvibe.chat/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Chat — One chat for the whole network.">
<meta name="twitter:description" content="OpenVibe.Chat is the communication layer of the OpenVibe network: global rooms, stream chat, direct messages, group rooms, voice calls and text-to-speech — one identity, every conversation.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.chat/#site","url":"https://openvibe.chat/","name":"OpenVibe.Chat","description":"OpenVibe.Chat is the communication layer of the OpenVibe network: global rooms, stream chat, direct messages, group rooms, voice calls and text-to-speech — one identity, every conversation.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.chat/#page","url":"https://openvibe.chat/","name":"OpenVibe.Chat — One chat for the whole network.","description":"OpenVibe.Chat is the communication layer of the OpenVibe network: global rooms, stream chat, direct messages, group rooms, voice calls and text-to-speech — one identity, every conversation.","isPartOf":{"@id":"https://openvibe.chat/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Chat","item":"https://openvibe.chat/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.chat/#site","url":"https://openvibe.chat/","name":"OpenVibe.Chat","description":"OpenVibe.Chat is the communication layer of the OpenVibe network: global rooms, stream chat, direct messages, group rooms, voice calls and text-to-speech — one identity, every conversation.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.chat/#page","url":"https://openvibe.chat/","name":"OpenVibe.Chat — One chat for the whole network.","description":"OpenVibe.Chat is the communication layer of the OpenVibe network: global rooms, stream chat, direct messages, group rooms, voice calls and text-to-speech — one identity, every conversation.","isPartOf":{"@id":"https://openvibe.chat/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Chat","item":"https://openvibe.chat/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.chat/sitemap.xml b/dist/openvibe.chat/sitemap.xml
iindex 500a95a..3a45e43 100644
---- a/dist/openvibe.chat/sitemap.xml
++++ b/dist/openvibe.chat/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.chat/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.chat/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.chat/status.json b/dist/openvibe.chat/status.json
iindex e9ba118..b782340 100644
---- a/dist/openvibe.chat/status.json
++++ b/dist/openvibe.chat/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.codes/index.html b/dist/openvibe.codes/index.html
iindex 91f35ac..2689934 100644
---- a/dist/openvibe.codes/index.html
++++ b/dist/openvibe.codes/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Codes — Build on OpenVibe.">
<meta name="twitter:description" content="OpenVibe.Codes is the developer portal of the OpenVibe network: API and SDK documentation, the service and capability registry, event schemas, mod publishing, starter templates and vibe-coding sessions.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.codes/#site","url":"https://openvibe.codes/","name":"OpenVibe.Codes","description":"OpenVibe.Codes is the developer portal of the OpenVibe network: API and SDK documentation, the service and capability registry, event schemas, mod publishing, starter templates and vibe-coding sessions.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.codes/#page","url":"https://openvibe.codes/","name":"OpenVibe.Codes — Build on OpenVibe.","description":"OpenVibe.Codes is the developer portal of the OpenVibe network: API and SDK documentation, the service and capability registry, event schemas, mod publishing, starter templates and vibe-coding sessions.","isPartOf":{"@id":"https://openvibe.codes/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Codes","item":"https://openvibe.codes/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.codes/#site","url":"https://openvibe.codes/","name":"OpenVibe.Codes","description":"OpenVibe.Codes is the developer portal of the OpenVibe network: API and SDK documentation, the service and capability registry, event schemas, mod publishing, starter templates and vibe-coding sessions.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.codes/#page","url":"https://openvibe.codes/","name":"OpenVibe.Codes — Build on OpenVibe.","description":"OpenVibe.Codes is the developer portal of the OpenVibe network: API and SDK documentation, the service and capability registry, event schemas, mod publishing, starter templates and vibe-coding sessions.","isPartOf":{"@id":"https://openvibe.codes/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Codes","item":"https://openvibe.codes/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -154,7 +154,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.codes/sitemap.xml b/dist/openvibe.codes/sitemap.xml
iindex f547d40..6148d1b 100644
---- a/dist/openvibe.codes/sitemap.xml
++++ b/dist/openvibe.codes/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.codes/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.codes/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.codes/status.json b/dist/openvibe.codes/status.json
iindex e53624e..b6e1668 100644
---- a/dist/openvibe.codes/status.json
++++ b/dist/openvibe.codes/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.coupons/index.html b/dist/openvibe.coupons/index.html
iindex 0be6e12..75df24c 100644
---- a/dist/openvibe.coupons/index.html
++++ b/dist/openvibe.coupons/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Coupons — Codes that actually work.">
<meta name="twitter:description" content="OpenVibe.Coupons is community-checked coupon discovery: codes matched to stores, validity reported by real people, expirations tracked, and a browser helper on the way.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.coupons/#site","url":"https://openvibe.coupons/","name":"OpenVibe.Coupons","description":"OpenVibe.Coupons is community-checked coupon discovery: codes matched to stores, validity reported by real people, expirations tracked, and a browser helper on the way.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.coupons/#page","url":"https://openvibe.coupons/","name":"OpenVibe.Coupons — Codes that actually work.","description":"OpenVibe.Coupons is community-checked coupon discovery: codes matched to stores, validity reported by real people, expirations tracked, and a browser helper on the way.","isPartOf":{"@id":"https://openvibe.coupons/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Coupons","item":"https://openvibe.coupons/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.coupons/#site","url":"https://openvibe.coupons/","name":"OpenVibe.Coupons","description":"OpenVibe.Coupons is community-checked coupon discovery: codes matched to stores, validity reported by real people, expirations tracked, and a browser helper on the way.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.coupons/#page","url":"https://openvibe.coupons/","name":"OpenVibe.Coupons — Codes that actually work.","description":"OpenVibe.Coupons is community-checked coupon discovery: codes matched to stores, validity reported by real people, expirations tracked, and a browser helper on the way.","isPartOf":{"@id":"https://openvibe.coupons/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Coupons","item":"https://openvibe.coupons/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.coupons/sitemap.xml b/dist/openvibe.coupons/sitemap.xml
iindex 8e9b8df..8260d4f 100644
---- a/dist/openvibe.coupons/sitemap.xml
++++ b/dist/openvibe.coupons/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.coupons/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.coupons/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.coupons/status.json b/dist/openvibe.coupons/status.json
iindex a96fac2..3468677 100644
---- a/dist/openvibe.coupons/status.json
++++ b/dist/openvibe.coupons/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.deals/index.html b/dist/openvibe.deals/index.html
iindex 915f24e..10591ff 100644
---- a/dist/openvibe.deals/index.html
++++ b/dist/openvibe.deals/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Deals — Deals worth seeing.">
<meta name="twitter:description" content="OpenVibe.Deals is community deal discovery for the OpenVibe network: deals people vote on, hotness that reflects real interest, keyword alerts, price comparisons and honest discussion.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.deals/#site","url":"https://openvibe.deals/","name":"OpenVibe.Deals","description":"OpenVibe.Deals is community deal discovery for the OpenVibe network: deals people vote on, hotness that reflects real interest, keyword alerts, price comparisons and honest discussion.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.deals/#page","url":"https://openvibe.deals/","name":"OpenVibe.Deals — Deals worth seeing.","description":"OpenVibe.Deals is community deal discovery for the OpenVibe network: deals people vote on, hotness that reflects real interest, keyword alerts, price comparisons and honest discussion.","isPartOf":{"@id":"https://openvibe.deals/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Deals","item":"https://openvibe.deals/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.deals/#site","url":"https://openvibe.deals/","name":"OpenVibe.Deals","description":"OpenVibe.Deals is community deal discovery for the OpenVibe network: deals people vote on, hotness that reflects real interest, keyword alerts, price comparisons and honest discussion.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.deals/#page","url":"https://openvibe.deals/","name":"OpenVibe.Deals — Deals worth seeing.","description":"OpenVibe.Deals is community deal discovery for the OpenVibe network: deals people vote on, hotness that reflects real interest, keyword alerts, price comparisons and honest discussion.","isPartOf":{"@id":"https://openvibe.deals/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Deals","item":"https://openvibe.deals/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.deals/sitemap.xml b/dist/openvibe.deals/sitemap.xml
iindex 4d7d181..5f2e029 100644
---- a/dist/openvibe.deals/sitemap.xml
++++ b/dist/openvibe.deals/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.deals/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.deals/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.deals/status.json b/dist/openvibe.deals/status.json
iindex 0f9a80a..1abf21d 100644
---- a/dist/openvibe.deals/status.json
++++ b/dist/openvibe.deals/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.host/index.html b/dist/openvibe.host/index.html
iindex b8c498b..d013d4d 100644
---- a/dist/openvibe.host/index.html
++++ b/dist/openvibe.host/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Host — Run it yourself.">
<meta name="twitter:description" content="OpenVibe.Host is the hosting and deployment surface of the OpenVibe network: deploy OpenVibe services, bots, mods and static sites, with TLS, DNS and logs handled for you.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.host/#site","url":"https://openvibe.host/","name":"OpenVibe.Host","description":"OpenVibe.Host is the hosting and deployment surface of the OpenVibe network: deploy OpenVibe services, bots, mods and static sites, with TLS, DNS and logs handled for you.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.host/#page","url":"https://openvibe.host/","name":"OpenVibe.Host — Run it yourself.","description":"OpenVibe.Host is the hosting and deployment surface of the OpenVibe network: deploy OpenVibe services, bots, mods and static sites, with TLS, DNS and logs handled for you.","isPartOf":{"@id":"https://openvibe.host/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Host","item":"https://openvibe.host/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.host/#site","url":"https://openvibe.host/","name":"OpenVibe.Host","description":"OpenVibe.Host is the hosting and deployment surface of the OpenVibe network: deploy OpenVibe services, bots, mods and static sites, with TLS, DNS and logs handled for you.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.host/#page","url":"https://openvibe.host/","name":"OpenVibe.Host — Run it yourself.","description":"OpenVibe.Host is the hosting and deployment surface of the OpenVibe network: deploy OpenVibe services, bots, mods and static sites, with TLS, DNS and logs handled for you.","isPartOf":{"@id":"https://openvibe.host/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Host","item":"https://openvibe.host/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.host/sitemap.xml b/dist/openvibe.host/sitemap.xml
iindex 833e50a..453fc63 100644
---- a/dist/openvibe.host/sitemap.xml
++++ b/dist/openvibe.host/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.host/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.host/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.host/status.json b/dist/openvibe.host/status.json
iindex 8fb13d0..9e9469d 100644
---- a/dist/openvibe.host/status.json
++++ b/dist/openvibe.host/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.news/index.html b/dist/openvibe.news/index.html
iindex 3db6d73..a0b21c0 100644
---- a/dist/openvibe.news/index.html
++++ b/dist/openvibe.news/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.News — Sourced. Summarised. Many angles.">
<meta name="twitter:description" content="OpenVibe.News aggregates the news with transparency: sourced stories, summaries that show their sources, multiple angles side by side, topic pages and framing you control — not an algorithm you can&#39;t see.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.news/#site","url":"https://openvibe.news/","name":"OpenVibe.News","description":"OpenVibe.News aggregates the news with transparency: sourced stories, summaries that show their sources, multiple angles side by side, topic pages and framing you control — not an algorithm you can't see.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.news/#page","url":"https://openvibe.news/","name":"OpenVibe.News — Sourced. Summarised. Many angles.","description":"OpenVibe.News aggregates the news with transparency: sourced stories, summaries that show their sources, multiple angles side by side, topic pages and framing you control — not an algorithm you can't see.","isPartOf":{"@id":"https://openvibe.news/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.News","item":"https://openvibe.news/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.news/#site","url":"https://openvibe.news/","name":"OpenVibe.News","description":"OpenVibe.News aggregates the news with transparency: sourced stories, summaries that show their sources, multiple angles side by side, topic pages and framing you control — not an algorithm you can't see.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.news/#page","url":"https://openvibe.news/","name":"OpenVibe.News — Sourced. Summarised. Many angles.","description":"OpenVibe.News aggregates the news with transparency: sourced stories, summaries that show their sources, multiple angles side by side, topic pages and framing you control — not an algorithm you can't see.","isPartOf":{"@id":"https://openvibe.news/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.News","item":"https://openvibe.news/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.news/sitemap.xml b/dist/openvibe.news/sitemap.xml
iindex 6cd31d2..b674bb0 100644
---- a/dist/openvibe.news/sitemap.xml
++++ b/dist/openvibe.news/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.news/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.news/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.news/status.json b/dist/openvibe.news/status.json
iindex eab5425..ccfcc36 100644
---- a/dist/openvibe.news/status.json
++++ b/dist/openvibe.news/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.reviews/index.html b/dist/openvibe.reviews/index.html
iindex b0862f0..c394ff8 100644
---- a/dist/openvibe.reviews/index.html
++++ b/dist/openvibe.reviews/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Reviews — What people actually say.">
<meta name="twitter:description" content="OpenVibe.Reviews gathers what people say about products, services, employers, hosts and communities across many sources — with provenance, without fake ratings — and lets the community discuss it.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.reviews/#site","url":"https://openvibe.reviews/","name":"OpenVibe.Reviews","description":"OpenVibe.Reviews gathers what people say about products, services, employers, hosts and communities across many sources — with provenance, without fake ratings — and lets the community discuss it.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.reviews/#page","url":"https://openvibe.reviews/","name":"OpenVibe.Reviews — What people actually say.","description":"OpenVibe.Reviews gathers what people say about products, services, employers, hosts and communities across many sources — with provenance, without fake ratings — and lets the community discuss it.","isPartOf":{"@id":"https://openvibe.reviews/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Reviews","item":"https://openvibe.reviews/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.reviews/#site","url":"https://openvibe.reviews/","name":"OpenVibe.Reviews","description":"OpenVibe.Reviews gathers what people say about products, services, employers, hosts and communities across many sources — with provenance, without fake ratings — and lets the community discuss it.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.reviews/#page","url":"https://openvibe.reviews/","name":"OpenVibe.Reviews — What people actually say.","description":"OpenVibe.Reviews gathers what people say about products, services, employers, hosts and communities across many sources — with provenance, without fake ratings — and lets the community discuss it.","isPartOf":{"@id":"https://openvibe.reviews/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Reviews","item":"https://openvibe.reviews/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.reviews/sitemap.xml b/dist/openvibe.reviews/sitemap.xml
iindex 176d53a..0bdfc67 100644
---- a/dist/openvibe.reviews/sitemap.xml
++++ b/dist/openvibe.reviews/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.reviews/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.reviews/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.reviews/status.json b/dist/openvibe.reviews/status.json
iindex 6751051..dc6647d 100644
---- a/dist/openvibe.reviews/status.json
++++ b/dist/openvibe.reviews/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.tips/index.html b/dist/openvibe.tips/index.html
iindex 7fc021d..8282336 100644
---- a/dist/openvibe.tips/index.html
++++ b/dist/openvibe.tips/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Tips — Support the people you watch.">
<meta name="twitter:description" content="OpenVibe.Tips is the tipping and alerts layer of the OpenVibe network: tips, donation goals, superchats, paid text-to-speech and media requests, with alert overlays for creators.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.tips/#site","url":"https://openvibe.tips/","name":"OpenVibe.Tips","description":"OpenVibe.Tips is the tipping and alerts layer of the OpenVibe network: tips, donation goals, superchats, paid text-to-speech and media requests, with alert overlays for creators.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.tips/#page","url":"https://openvibe.tips/","name":"OpenVibe.Tips — Support the people you watch.","description":"OpenVibe.Tips is the tipping and alerts layer of the OpenVibe network: tips, donation goals, superchats, paid text-to-speech and media requests, with alert overlays for creators.","isPartOf":{"@id":"https://openvibe.tips/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Tips","item":"https://openvibe.tips/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.tips/#site","url":"https://openvibe.tips/","name":"OpenVibe.Tips","description":"OpenVibe.Tips is the tipping and alerts layer of the OpenVibe network: tips, donation goals, superchats, paid text-to-speech and media requests, with alert overlays for creators.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.tips/#page","url":"https://openvibe.tips/","name":"OpenVibe.Tips — Support the people you watch.","description":"OpenVibe.Tips is the tipping and alerts layer of the OpenVibe network: tips, donation goals, superchats, paid text-to-speech and media requests, with alert overlays for creators.","isPartOf":{"@id":"https://openvibe.tips/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Tips","item":"https://openvibe.tips/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.tips/sitemap.xml b/dist/openvibe.tips/sitemap.xml
iindex 63198c8..ae8a5d7 100644
---- a/dist/openvibe.tips/sitemap.xml
++++ b/dist/openvibe.tips/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.tips/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.tips/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.tips/status.json b/dist/openvibe.tips/status.json
iindex 1c33017..eaa801c 100644
---- a/dist/openvibe.tips/status.json
++++ b/dist/openvibe.tips/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.trade/index.html b/dist/openvibe.trade/index.html
iindex d895fe2..e4c187d 100644
---- a/dist/openvibe.trade/index.html
++++ b/dist/openvibe.trade/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Trade — Watch, discuss, decide.">
<meta name="twitter:description" content="OpenVibe.Trade is the market intelligence room of the OpenVibe network: watchlists, alerts, summaries and community discussion for markets, collectibles and deals — information and tools, never advice.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.trade/#site","url":"https://openvibe.trade/","name":"OpenVibe.Trade","description":"OpenVibe.Trade is the market intelligence room of the OpenVibe network: watchlists, alerts, summaries and community discussion for markets, collectibles and deals — information and tools, never advice.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.trade/#page","url":"https://openvibe.trade/","name":"OpenVibe.Trade — Watch, discuss, decide.","description":"OpenVibe.Trade is the market intelligence room of the OpenVibe network: watchlists, alerts, summaries and community discussion for markets, collectibles and deals — information and tools, never advice.","isPartOf":{"@id":"https://openvibe.trade/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Trade","item":"https://openvibe.trade/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.trade/#site","url":"https://openvibe.trade/","name":"OpenVibe.Trade","description":"OpenVibe.Trade is the market intelligence room of the OpenVibe network: watchlists, alerts, summaries and community discussion for markets, collectibles and deals — information and tools, never advice.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.trade/#page","url":"https://openvibe.trade/","name":"OpenVibe.Trade — Watch, discuss, decide.","description":"OpenVibe.Trade is the market intelligence room of the OpenVibe network: watchlists, alerts, summaries and community discussion for markets, collectibles and deals — information and tools, never advice.","isPartOf":{"@id":"https://openvibe.trade/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Trade","item":"https://openvibe.trade/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.trade/sitemap.xml b/dist/openvibe.trade/sitemap.xml
iindex 423c450..2b047b4 100644
---- a/dist/openvibe.trade/sitemap.xml
++++ b/dist/openvibe.trade/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.trade/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.trade/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.trade/status.json b/dist/openvibe.trade/status.json
iindex 931a932..f8bc949 100644
---- a/dist/openvibe.trade/status.json
++++ b/dist/openvibe.trade/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.vip/index.html b/dist/openvibe.vip/index.html
iindex 6587fe8..05e852e 100644
---- a/dist/openvibe.vip/index.html
++++ b/dist/openvibe.vip/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.VIP — Memberships, network-wide.">
<meta name="twitter:description" content="OpenVibe.VIP is the membership layer of the OpenVibe network: creator memberships, channel subscriptions, VIP tiers and perks that unlock across Live, Community, Blog and more.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.vip/#site","url":"https://openvibe.vip/","name":"OpenVibe.VIP","description":"OpenVibe.VIP is the membership layer of the OpenVibe network: creator memberships, channel subscriptions, VIP tiers and perks that unlock across Live, Community, Blog and more.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.vip/#page","url":"https://openvibe.vip/","name":"OpenVibe.VIP — Memberships, network-wide.","description":"OpenVibe.VIP is the membership layer of the OpenVibe network: creator memberships, channel subscriptions, VIP tiers and perks that unlock across Live, Community, Blog and more.","isPartOf":{"@id":"https://openvibe.vip/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.VIP","item":"https://openvibe.vip/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.vip/#site","url":"https://openvibe.vip/","name":"OpenVibe.VIP","description":"OpenVibe.VIP is the membership layer of the OpenVibe network: creator memberships, channel subscriptions, VIP tiers and perks that unlock across Live, Community, Blog and more.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.vip/#page","url":"https://openvibe.vip/","name":"OpenVibe.VIP — Memberships, network-wide.","description":"OpenVibe.VIP is the membership layer of the OpenVibe network: creator memberships, channel subscriptions, VIP tiers and perks that unlock across Live, Community, Blog and more.","isPartOf":{"@id":"https://openvibe.vip/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.VIP","item":"https://openvibe.vip/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.vip/sitemap.xml b/dist/openvibe.vip/sitemap.xml
iindex b521a8e..3fb7f0c 100644
---- a/dist/openvibe.vip/sitemap.xml
++++ b/dist/openvibe.vip/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.vip/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.vip/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.vip/status.json b/dist/openvibe.vip/status.json
iindex b7d575a..9567c7f 100644
---- a/dist/openvibe.vip/status.json
++++ b/dist/openvibe.vip/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/openvibe.wiki/index.html b/dist/openvibe.wiki/index.html
iindex d9b22a2..5d30dce 100644
---- a/dist/openvibe.wiki/index.html
++++ b/dist/openvibe.wiki/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="OpenVibe.Wiki — Knowledge, with sources.">
<meta name="twitter:description" content="OpenVibe.Wiki is the knowledge space of the OpenVibe network: wiki spaces you can build and edit together, source-backed and AI-assisted, with page trees, citations, media and discussion.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.wiki/#site","url":"https://openvibe.wiki/","name":"OpenVibe.Wiki","description":"OpenVibe.Wiki is the knowledge space of the OpenVibe network: wiki spaces you can build and edit together, source-backed and AI-assisted, with page trees, citations, media and discussion.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.wiki/#page","url":"https://openvibe.wiki/","name":"OpenVibe.Wiki — Knowledge, with sources.","description":"OpenVibe.Wiki is the knowledge space of the OpenVibe network: wiki spaces you can build and edit together, source-backed and AI-assisted, with page trees, citations, media and discussion.","isPartOf":{"@id":"https://openvibe.wiki/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Wiki","item":"https://openvibe.wiki/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://openvibe.wiki/#site","url":"https://openvibe.wiki/","name":"OpenVibe.Wiki","description":"OpenVibe.Wiki is the knowledge space of the OpenVibe network: wiki spaces you can build and edit together, source-backed and AI-assisted, with page trees, citations, media and discussion.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://openvibe.wiki/#page","url":"https://openvibe.wiki/","name":"OpenVibe.Wiki — Knowledge, with sources.","description":"OpenVibe.Wiki is the knowledge space of the OpenVibe network: wiki spaces you can build and edit together, source-backed and AI-assisted, with page trees, citations, media and discussion.","isPartOf":{"@id":"https://openvibe.wiki/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"OpenVibe.Wiki","item":"https://openvibe.wiki/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/openvibe.wiki/sitemap.xml b/dist/openvibe.wiki/sitemap.xml
iindex b22ae87..c97a37f 100644
---- a/dist/openvibe.wiki/sitemap.xml
++++ b/dist/openvibe.wiki/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://openvibe.wiki/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://openvibe.wiki/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/openvibe.wiki/status.json b/dist/openvibe.wiki/status.json
iindex 079b06b..24d17dc 100644
---- a/dist/openvibe.wiki/status.json
++++ b/dist/openvibe.wiki/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/realtime.openvibe.network/index.html b/dist/realtime.openvibe.network/index.html
iindex 9afbb8f..78b5b15 100644
---- a/dist/realtime.openvibe.network/index.html
++++ b/dist/realtime.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="realtime.openvibe.network — Authorized live updates, resumable.">
<meta name="twitter:description" content="realtime.openvibe.network will be the browser delivery plane for events: WebSocket and SSE subscriptions with cursors, presence and gap recovery, separate from the durable event store.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://realtime.openvibe.network/#site","url":"https://realtime.openvibe.network/","name":"realtime.openvibe.network","description":"realtime.openvibe.network will be the browser delivery plane for events: WebSocket and SSE subscriptions with cursors, presence and gap recovery, separate from the durable event store.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://realtime.openvibe.network/#page","url":"https://realtime.openvibe.network/","name":"realtime.openvibe.network — Authorized live updates, resumable.","description":"realtime.openvibe.network will be the browser delivery plane for events: WebSocket and SSE subscriptions with cursors, presence and gap recovery, separate from the durable event store.","isPartOf":{"@id":"https://realtime.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"realtime.openvibe.network","item":"https://realtime.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://realtime.openvibe.network/#site","url":"https://realtime.openvibe.network/","name":"realtime.openvibe.network","description":"realtime.openvibe.network will be the browser delivery plane for events: WebSocket and SSE subscriptions with cursors, presence and gap recovery, separate from the durable event store.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://realtime.openvibe.network/#page","url":"https://realtime.openvibe.network/","name":"realtime.openvibe.network — Authorized live updates, resumable.","description":"realtime.openvibe.network will be the browser delivery plane for events: WebSocket and SSE subscriptions with cursors, presence and gap recovery, separate from the durable event store.","isPartOf":{"@id":"https://realtime.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"realtime.openvibe.network","item":"https://realtime.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -153,7 +153,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
<a href="https://themes.openvibe.network/"><i class="fa-solid fa-palette" aria-hidden="true"></i>themes.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
</div>
ddiff --git a/dist/realtime.openvibe.network/sitemap.xml b/dist/realtime.openvibe.network/sitemap.xml
iindex 907719d..25fa635 100644
---- a/dist/realtime.openvibe.network/sitemap.xml
++++ b/dist/realtime.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://realtime.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://realtime.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/realtime.openvibe.network/status.json b/dist/realtime.openvibe.network/status.json
iindex c4f3c50..2356ffa 100644
---- a/dist/realtime.openvibe.network/status.json
++++ b/dist/realtime.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "charter-only",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/dist/themes.openvibe.network/index.html b/dist/themes.openvibe.network/index.html
iindex d1d4275..b0eead1 100644
---- a/dist/themes.openvibe.network/index.html
++++ b/dist/themes.openvibe.network/index.html
@@@ -24,7 +24,7 @@
<meta name="twitter:title" content="themes.openvibe.network — Your look, on every site.">
<meta name="twitter:description" content="themes.openvibe.network will be the theme catalog and API: built-in and community themes, previews, per-site overrides, import/export and the shared design tokens every OpenVibe site renders.">
<meta name="twitter:image" content="https://openvibe.network/assets/logo-512.png">
--<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://themes.openvibe.network/#site","url":"https://themes.openvibe.network/","name":"themes.openvibe.network","description":"themes.openvibe.network will be the theme catalog and API: built-in and community themes, previews, per-site overrides, import/export and the shared design tokens every OpenVibe site renders.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://themes.openvibe.network/#page","url":"https://themes.openvibe.network/","name":"themes.openvibe.network — Your look, on every site.","description":"themes.openvibe.network will be the theme catalog and API: built-in and community themes, previews, per-site overrides, import/export and the shared design tokens every OpenVibe site renders.","isPartOf":{"@id":"https://themes.openvibe.network/#site"},"datePublished":"2026-09-21","dateModified":"2026-09-21","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"themes.openvibe.network","item":"https://themes.openvibe.network/"}]}}]}</script>
++<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://themes.openvibe.network/#site","url":"https://themes.openvibe.network/","name":"themes.openvibe.network","description":"themes.openvibe.network will be the theme catalog and API: built-in and community themes, previews, per-site overrides, import/export and the shared design tokens every OpenVibe site renders.","inLanguage":"en","publisher":{"@type":"Organization","@id":"https://openvibe.network/#org","name":"OpenVibe","url":"https://openvibe.network/","logo":"https://openvibe.network/assets/logo-512.png","sameAs":["https://github.com/OpenVibers","https://discord.gg/M6MuRUaeJj"]},"isPartOf":{"@type":"WebSite","@id":"https://openvibe.network/#site","name":"OpenVibe.Network","url":"https://openvibe.network/"}},{"@type":"WebPage","@id":"https://themes.openvibe.network/#page","url":"https://themes.openvibe.network/","name":"themes.openvibe.network — Your look, on every site.","description":"themes.openvibe.network will be the theme catalog and API: built-in and community themes, previews, per-site overrides, import/export and the shared design tokens every OpenVibe site renders.","isPartOf":{"@id":"https://themes.openvibe.network/#site"},"datePublished":"2026-09-17","dateModified":"2026-09-23","breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"OpenVibe","item":"https://openvibe.network/"},{"@type":"ListItem","position":2,"name":"themes.openvibe.network","item":"https://themes.openvibe.network/"}]}}]}</script>
<script>(function(){try{var raw=localStorage.getItem('ov_theme');if(!raw)return;var t=JSON.parse(raw),v=t&&t.variables;if(!v)return;var el=document.documentElement;for(var k in v)if(k.charAt(0)==='-')el.style.setProperty(k,v[k]);if(t.id)el.setAttribute('data-theme',t.id);}catch(_){}})();</script>
<script src="https://openvibe.network/shared/theme-loader.js" defer></script>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
@@@ -152,7 +152,6 @@ a.card:hover{transform:translateY(-3px);border-color:rgba(var(--site-rgb),.6);bo
<a href="https://auth.openvibe.network/"><i class="fa-solid fa-key" aria-hidden="true"></i>auth.openvibe.network</a>
<a href="https://api.openvibe.network/"><i class="fa-solid fa-plug" aria-hidden="true"></i>api.openvibe.network</a>
<a href="https://admin.openvibe.network/"><i class="fa-solid fa-shield-halved" aria-hidden="true"></i>admin.openvibe.network</a>
-- <a href="https://events.openvibe.network/"><i class="fa-solid fa-bolt" aria-hidden="true"></i>events.openvibe.network</a>
<a href="https://realtime.openvibe.network/"><i class="fa-solid fa-satellite-dish" aria-hidden="true"></i>realtime.openvibe.network</a>
<a href="https://billing.openvibe.network/"><i class="fa-solid fa-coins" aria-hidden="true"></i>billing.openvibe.network</a>
<a href="https://ai.openvibe.network/"><i class="fa-solid fa-robot" aria-hidden="true"></i>ai.openvibe.network</a>
ddiff --git a/dist/themes.openvibe.network/sitemap.xml b/dist/themes.openvibe.network/sitemap.xml
iindex 1299031..f0ba8b0 100644
---- a/dist/themes.openvibe.network/sitemap.xml
++++ b/dist/themes.openvibe.network/sitemap.xml
@@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-- <url><loc>https://themes.openvibe.network/</loc><lastmod>2026-09-21</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
++ <url><loc>https://themes.openvibe.network/</loc><lastmod>2026-09-23</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>
</urlset>
ddiff --git a/dist/themes.openvibe.network/status.json b/dist/themes.openvibe.network/status.json
iindex 91779fe..b2029fe 100644
---- a/dist/themes.openvibe.network/status.json
++++ b/dist/themes.openvibe.network/status.json
@@@ -8,6 +8,6 @@
"repoExists": true,
"repoStage": "existing-service",
"network": "https://openvibe.network",
-- "updated": "2026-09-21",
++ "updated": "2026-09-23",
"note": "Static placeholder served by OpenVibers/OpenVibe.Sites. Removed from sites.json in the same release that the real service takes over this domain."
}
ddiff --git a/sites.json b/sites.json
iindex d684ffb..a9accd1 100644
---- a/sites.json
++++ b/sites.json
@@@ -739,49 +739,6 @@
],
"keywords": "openvibe themes, openvibe network themes, openvibe platform"
},
-- {
-- "domain": "events.openvibe.network",
-- "zone": "openvibe.network",
-- "hostParts": [
-- "events",
-- "openvibe.network"
-- ],
-- "tld": "events",
-- "name": "events.openvibe.network",
-- "icon": "fa-bolt",
-- "accent": "#fb7185",
-- "stage": "placeholder",
-- "plannedRepo": "OpenVibe.Events",
-- "legalProfile": "info",
-- "tagline": "Durable events for the whole network.",
-- "description": "events.openvibe.network will be the durable event backbone: every meaningful thing that happens on an OpenVibe service is recorded, delivered to subscribers with retries, replayable and auditable.",
-- "pillars": [
-- [
-- "Durable delivery",
-- "Persisted before delivery, retried until acknowledged."
-- ],
-- [
-- "Subscriptions",
-- "Services, apps and mods subscribe to the topics they are allowed to see."
-- ],
-- [
-- "Replay & dead letters",
-- "Recover from consumer downtime without losing anything."
-- ],
-- [
-- "Webhooks",
-- "Signed deliveries to your own endpoints."
-- ]
-- ],
-- "meanwhile": [
-- [
-- "Live updates today",
-- "https://openvibe.live",
-- "Stream, chat and clip updates are delivered by OpenVibe.Live for now."
-- ]
-- ],
-- "keywords": "openvibe events, openvibe network events, openvibe platform"
-- },
{
"domain": "realtime.openvibe.network",
"zone": "openvibe.network",