openvibers/openvibe.space Commits

openvibe.website names its other half: your own computer, through Connect (#187)

OP OpenVibers committed 11 days ago · 6341c2f446 · 3 files, +7 −1

The owner (10-29): openvibe.website is multi-use, a site or your own machine on the web. The front door gains a band
"Or put your own computer on the web" linking connect.openvibe.website, a question about it, and a line in llms.txt.

Changes

ddiff --git a/server/render/website.js b/server/render/website.js
iindex 1c6532e..e2c7c45 100644
---- a/server/render/website.js
++++ b/server/render/website.js
@@@ -27,6 +27,7 @@ const FAQ = [
['When can I put it on my own address?', 'Publishing at yourname.openvibe.website or on your own domain opens with public hosting, once the automatic abuse checks, a designated DMCA agent and the domain\'s Public Suffix List entry are in place. Until then you build, edit and preview, and OpenVibe staff publish.'],
['Do I need an account?', 'Not to start. Pick a template or describe your site and you get a private link to edit it, good for a week. Sign in with OpenVibe on openvibe.space to keep it; openvibe.website itself keeps no cookies, so no site here can touch your sign-in.'],
['Can I take my site somewhere else?', 'Yes. A site is plain HTML, CSS and JavaScript; copy its files out of the editor whenever you like.'],
++ ['Can I put something running on my own computer here?', 'Yes, with OpenVibe Connect: one port on your computer at its own address, like agents--you.openvibe.website, opened only by the people you pick after they sign in with OpenVibe. One file and Node, no router settings. Start at connect.openvibe.website.'],
];
/** The room's motif: the prompt types, then the bakery template's page assembles in its browser, block by block. */
@@@ -88,6 +89,10 @@ ${sc.steps({ id: 'how', title: 'From idea to address', items: [
<div><h2 id="wb-first-h">Sites made here</h2><p>None public yet: publishing opens with public hosting. Build yours now and it is ready on the first day.</p></div>
<a class="wb-btn" href="#templates">Pick a template</a>
</div></section>
++<section class="sc-sec" id="your-computer" aria-labelledby="wb-connect-h"><div class="wb-first">
++<div><h2 id="wb-connect-h">Or put your own computer on the web</h2><p>Running something at home or on your laptop? OpenVibe Connect gives one port its own address, like agents--you.openvibe.website, and only the people you pick can open it, signed in with OpenVibe.</p></div>
++<a class="wb-btn" href="https://connect.openvibe.website/">Open Connect</a>
++</div></section>
${sc.faq({ id: 'questions', items: FAQ })}
</div>`;
return page({ base, title: `${NAME} · Websites that look finished`, canonicalPath: '/', body, jsonLd: [
ddiff --git a/server/website.js b/server/website.js
iindex 78e4cd3..cd4d483 100644
---- a/server/website.js
++++ b/server/website.js
@@@ -53,7 +53,7 @@ function createWebsite({ sitesDomain, publicDir }) {
name: 'OpenVibe.Website',
summary: pages.DESCRIPTION,
sections: [
-- { title: 'Start', links: [{ title: 'Website templates', url: `${base}/#templates`, html: true }, { title: 'Build on OpenVibe.Space', url: 'https://openvibe.space/spaces/new', html: true }] },
++ { title: 'Start', links: [{ title: 'Website templates', url: `${base}/#templates`, html: true }, { title: 'Build on OpenVibe.Space', url: 'https://openvibe.space/spaces/new', html: true }, { title: 'Put your own computer on the web (OpenVibe Connect)', url: 'https://connect.openvibe.website/', html: true }] },
{ title: 'Templates', links: templates.sites().map((t) => ({ title: t.name, url: `${base}/templates/${t.id}`, html: true, note: t.description })) },
],
})));
ddiff --git a/test/website-home.test.js b/test/website-home.test.js
iindex 6b934dc..e6d1152 100644
---- a/test/website-home.test.js
++++ b/test/website-home.test.js
@@@ -38,6 +38,7 @@ assert.match(hostingSrc, /target\.kind === 'dashboard' \|\| target\.kind === 'we
assert.match(r.text, /<link rel="canonical" href="https:\/\/openvibe\.website\/">/);
assert.strictEqual((r.text.match(/<h1[\s>]/g) || []).length, 1, 'one h1');
assert.ok(r.text.includes('"@type":"FAQPage"'), 'its questions are structured data');
++ assert.ok(r.text.includes('href="https://connect.openvibe.website/"'), 'the other half of openvibe.website: your own computer, through Connect');
});
await check('no cookie, ever: none set, none read, no sign-in or API on this host', async () => {