openvibers/openvibe.space Commits

Space: the home shows what works (no planned section); the forum pointer stays (#44)

OP OpenVibers committed 14 Oct 2026 · 3ab5ae360d · 2 files, +5 −8

The plan's rule for every product home is "no placeholders". The Space home ended with a "Next" section: "Dynamic pages — Planned; server side pages are not built yet" and "Spaces — Planned; small apps … are not built yet". The site sweep flagged it on openvibe.space and on openvibe.website, which redirects there.

**Change** (`server/render/pages.js`)
- The "Next" section is gone. Its one useful line, the forum pointer, becomes a small call to action: "Looking for the forum? The forum moved to OpenVibe.Community", with Open the forum linking to openvibe.community/s.
- The home now shows only what works: deploys, previews, Git, domains, headers, members, takedowns, the API and quotas.

**Tests**
- `hosting-launch-switch` checks that the home says neither "Planned" nor "not built".
- `home` and `boot` keep checking the forum pointer and its Community link.

Changes

ddiff --git a/server/render/pages.js b/server/render/pages.js
iindex 55ce920..f5faa83 100644
---- a/server/render/pages.js
++++ b/server/render/pages.js
@@@ -78,13 +78,10 @@ curl -X POST "https://openvibe.space/api/v1/sites/$SITE_ID/deploys?activate=1" \
row('Largest file', 'maxFileBytes', size),
],
source: 'https://github.com/OpenVibers/OpenVibe.Space/blob/main/server/hosting-config.js',
-- }) + sc.steps({
-- title: 'Next',
-- items: [
-- { title: 'Dynamic pages', text: 'Planned; server side pages are not built yet.' },
-- { title: 'Spaces', text: 'Planned; small apps on a person\'s OpenVibe account are not built yet.' },
-- { title: 'The forum', href: FORUM_URL, text: 'The forum moved to OpenVibe.Community.' },
-- ],
++ }) + sc.cta({
++ title: 'Looking for the forum?',
++ text: 'The forum moved to OpenVibe.Community.',
++ actions: [{ label: 'Open the forum', href: FORUM_URL, primary: true }],
});
return renderPage({ canonicalPath: '/', active: 'home', styles: [sc.STYLESHEET], body });
}
ddiff --git a/test/hosting-launch-switch.test.js b/test/hosting-launch-switch.test.js
iindex d13e7e7..0059a35 100644
---- a/test/hosting-launch-switch.test.js
++++ b/test/hosting-launch-switch.test.js
@@@ -13,7 +13,7 @@ const { boot, check, done } = require('./stageb/boot');
assert.match(r.text, /Static site hosting is built and tested/);
assert.match(r.text, /OpenVibe staff only until public launch/);
assert.match(r.text, /designated DMCA agent/);
-- assert.match(r.text, /Dynamic pages/);
++ assert.doesNotMatch(r.text, /Planned|not built/, 'the home shows what works, never what is planned');
});
await check('a person cannot create a project until launch', async () => {
const r = await t.api('POST', '/api/v1/projects', { as: alice, json: { name: 'Too early' } });