Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,8 @@
"headSlot": "slot",
"headBackups": "daily backups",
"notes": [
"Premium (200€) includes one free Micro workspace.",
"Slots pay for the machine only. Agents use NaN inference only on an inference plan (70€ or 200€).",
"The premium plan includes one free Micro workspace.",
"Slots pay for the machine only. Agents use NaN inference only if your plan includes it.",
"Backups are optional: one snapshot a day, kept 7 days, restore it yourself.",
"Monthly, billed in euros. Cancel a slot anytime."
],
Expand Down
4 changes: 2 additions & 2 deletions i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,8 @@
"headSlot": "slot",
"headBackups": "backups diarios",
"notes": [
"Premium (200€) incluye un workspace Micro gratis.",
"Los slots pagan solo la máquina. Los agentes usan la inferencia de NaN solo con un plan de inferencia (70€ o 200€).",
"El plan premium incluye un workspace Micro gratis.",
"Los slots pagan solo la máquina. Los agentes usan la inferencia de NaN solo si tu plan la incluye.",
"Los backups son opcionales: una instantánea al día, guardada 7 días, y la restauras tú.",
"Mensual, se factura en euros. Cancela un slot cuando quieras."
],
Expand Down
Binary file modified public/docs/workspaces/phone-03-add-ssh-key.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 8 additions & 12 deletions src/content/docs-es/workspaces.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,9 @@ Todo se gestiona desde [cloud.nan.builders/workspaces](https://cloud.nan.builder

## Quién puede tener uno

Cualquier **miembro de pago** de NaN puede comprar slots de workspace: comunidad (14,99€), inferencia (70€) y premium (200€).
Cualquier **miembro de pago** de NaN puede comprar slots de workspace. El plan Premium incluye **un workspace gratis** (Micro: 1 vCPU, 2 GiB de RAM, 10 GiB de disco).

| Tu plan | Workspace gratis | Puede comprar slots | Los agentes usan la inferencia de NaN |
|---|---|---|---|
| Comunidad, 14,99€ | No | Sí | No |
| Inferencia, 70€ | No | Sí | Sí |
| Premium, 200€ | **Uno, incluido** | Sí | Sí |

Un slot paga **solo la máquina**. No incluye inferencia: los agentes de tu workspace llaman a los modelos de NaN solo si tu membresía es un plan de inferencia (70€ o 200€). Con el plan de comunidad puedes usar el workspace igualmente como máquina de desarrollo y apuntar los agentes a cualquier proveedor que ya tengas.
Un slot paga **solo la máquina**. No incluye inferencia: los agentes de tu workspace llaman a los modelos de NaN solo si tu membresía incluye inferencia. Sin ella puedes usar el workspace igualmente como máquina de desarrollo y apuntar los agentes a cualquier proveedor que ya tengas.

## Tamaños y precios

Expand Down Expand Up @@ -131,7 +125,9 @@ Selecciona la clave que acabas de crear. Puedes enviártela por email o copiar l
Comparte y pega solo la clave **pública**. La clave privada nunca sale de tu móvil.
</Callout>

<Screenshot src="/docs/workspaces/phone-03-add-ssh-key.webp" alt="Pestaña SSH keys de un workspace en el panel de NaN, con el comando SSH, la clave actual y el formulario Add a key" width={1436} height={821} caption="La pestaña SSH keys: arriba el comando SSH y debajo Add a key." />
En esa misma pestaña tienes también, en campos separados que puedes copiar, los datos que necesita tu app de SSH: **Username**, **Hostname** y **Port**. Los usarás en los pasos siguientes.

<Screenshot src="/docs/workspaces/phone-03-add-ssh-key.webp" alt="Pestaña SSH keys de un workspace en el panel de NaN, con el comando SSH, los campos Username, Hostname y Port, las claves guardadas y el formulario Add a key" width={1010} height={818} caption="La pestaña SSH keys: el comando SSH, los campos Username, Hostname y Port para el móvil, tus claves y Add a key. Los valores de la imagen son ejemplos." />

### Crea un host en Termius

Expand All @@ -146,7 +142,7 @@ Ve a **Hosts** y añade un host nuevo.
| Label | Lo que quieras |
| IP or Hostname | Siempre `ssh.nan.builders` |
| Port | `30222` |
| Username | Lo que va antes de la `@` en el comando SSH de tu workspace, en la pestaña **SSH keys** (el panel también puede mostrarlo como Username) |
| Username | Cópialo del campo **Username** de la pestaña **SSH keys** |
| Key (SSH ID, Key, Certificate, FIDO2) | La clave que generaste antes |

Deja todo lo demás como está: **Use SSH** activado y **Use Mosh** desactivado. La conexión solo funciona por SSH.
Expand Down Expand Up @@ -270,7 +266,7 @@ No. Cada workspace es una máquina dedicada y aislada, con su CPU, su memoria y

<Details summary="¿Un slot incluye inferencia?">

No. Un slot paga la máquina. Los agentes usan los modelos de NaN solo si tu membresía es un plan de inferencia (70€ o 200€). Con el plan de comunidad puedes instalar los agentes igualmente y conectarlos a otro proveedor.
No. Un slot paga la máquina. Los agentes usan los modelos de NaN solo si tu membresía incluye inferencia. Sin ella puedes instalar los agentes igualmente y conectarlos a otro proveedor.

</Details>

Expand All @@ -288,7 +284,7 @@ No sobre la marcha. Compra un slot del tamaño nuevo, crea un workspace en él,

<Details summary="Mi plan de comunidad se abrió en dólares. ¿Puedo comprar un slot?">

Sí. Los slots de workspace se facturan en euros, así que el portal pasa primero tu plan de comunidad a euros (14,99€ / mes) y luego te deja comprar. Te lo avisa antes de cobrar nada.
Sí. Los slots de workspace se facturan en euros, así que el portal pasa primero tu plan a euros y luego te deja comprar. Te lo avisa antes de cobrar nada.

</Details>

Expand Down
20 changes: 8 additions & 12 deletions src/content/docs/workspaces.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,9 @@ Everything is managed from [cloud.nan.builders/workspaces](https://cloud.nan.bui

## Who can get one

Any **paying member** of NaN can buy workspace slots: community (14,99€), inference (70€) and premium (200€).
Any **paying member** of NaN can buy workspace slots. The Premium plan includes **one free workspace** (Micro: 1 vCPU, 2 GiB RAM, 10 GiB disk).

| Your plan | Free workspace | Can buy slots | Agents use NaN inference |
|---|---|---|---|
| Community, 14,99€ | No | Yes | No |
| Inference, 70€ | No | Yes | Yes |
| Premium, 200€ | **One, included** | Yes | Yes |

A slot pays for the **machine only**. It does not include inference: the agents in your workspace call NaN models only if your membership is an inference plan (70€ or 200€). On the community plan you can still use the workspace as a dev box, and point the agents at any provider you already have.
A slot pays for the **machine only**. It does not include inference: the agents in your workspace call NaN models only if your membership includes inference. Without it you can still use the workspace as a dev box, and point the agents at any provider you already have.

## Sizes and prices

Expand Down Expand Up @@ -131,7 +125,9 @@ Select the key you just created. You can email it to yourself or copy the **publ
Share and paste only the **public** key. The private key never leaves your phone.
</Callout>

<Screenshot src="/docs/workspaces/phone-03-add-ssh-key.webp" alt="SSH keys tab of a workspace in the NaN dashboard, with the SSH command, the current key and the Add a key form" width={1436} height={821} caption="The SSH keys tab: the SSH command at the top, and Add a key below." />
The same tab also shows the values your SSH app needs as separate fields you can copy: **Username**, **Hostname** and **Port**. You will use them in the next steps.

<Screenshot src="/docs/workspaces/phone-03-add-ssh-key.webp" alt="SSH keys tab of a workspace in the NaN dashboard, with the SSH command, the Username, Hostname and Port fields, the saved keys and the Add a key form" width={1010} height={818} caption="The SSH keys tab: the SSH command, the Username, Hostname and Port fields for your phone, your keys, and Add a key. The values in the picture are placeholders." />

### Create a host in Termius

Expand All @@ -146,7 +142,7 @@ Go to **Hosts** and add a new host.
| Label | Anything you like |
| IP or Hostname | Always `ssh.nan.builders` |
| Port | `30222` |
| Username | The part before the `@` in your workspace's SSH command, in the **SSH keys** tab (the dashboard may also show it as Username) |
| Username | Copy it from the **Username** field in the **SSH keys** tab |
| Key (SSH ID, Key, Certificate, FIDO2) | The key you generated before |

Leave everything else as it is: **Use SSH** on and **Use Mosh** off. The connection only works over SSH.
Expand Down Expand Up @@ -270,7 +266,7 @@ No. Each workspace is a dedicated, isolated machine with its own CPU, memory and

<Details summary="Does a slot include inference?">

No. A slot pays for the machine. The agents use NaN models only if your membership is an inference plan (70€ or 200€). On the community plan you can still install the agents and connect them to another provider.
No. A slot pays for the machine. The agents use NaN models only if your membership includes inference. Without it you can still install the agents and connect them to another provider.

</Details>

Expand All @@ -288,7 +284,7 @@ Not in place. Buy a slot of the new size, create a workspace on it, copy your da

<Details summary="My community plan was opened in dollars. Can I buy a slot?">

Yes. Workspace slots are billed in euros, so the portal first moves your community plan to euros (14,99€ / month) and then lets you buy. It tells you before charging anything.
Yes. Workspace slots are billed in euros, so the portal first moves your plan to euros and then lets you buy. It tells you before charging anything.

</Details>

Expand Down
4 changes: 3 additions & 1 deletion src/tests/landing/pricing.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,9 @@ describe.each(locales)('Pricing copy — workspaces (%s)', (locale) => {

test('the workspaces block says slots do not include inference and premium has one free', () => {
const notes = tArr('nan.pricing.workspaces.notes', locale).join(' ');
expect(notes).toMatch(/Premium \(200€\)/);
expect(notes).toMatch(/(premium plan includes one free Micro workspace|plan premium incluye un workspace Micro gratis)/i);
// No plan enumeration with prices in the workspaces notes (owner, 2026-10-09).
expect(notes).not.toMatch(/70€|200€/);
expect(notes).toMatch(/(machine only|solo la máquina)/);
expect(notes).toMatch(/euros/);
});
Expand Down
26 changes: 23 additions & 3 deletions src/tests/layouts/workspacesDocs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,23 @@ describe.each(Object.entries(pages))('workspaces guide (%s)', (locale, page) =>
expect(tableRows(body)).toEqual(expectedRows);
});

test('says any paying member can buy slots, without listing the plans and their prices', () => {
expect(flat).toMatch(
locale === 'en'
? /Any \*\*paying member\*\* of NaN can buy workspace slots\./
: /Cualquier \*\*miembro de pago\*\* de NaN puede comprar slots de workspace\./,
);
// Owner decision (2026-10-09): no plan enumeration with prices on this page.
expect(body).not.toMatch(/14,99€|\b70€|\b200€/);
expect(body).not.toMatch(/\| (Community|Comunidad|Inference|Inferencia)\b/);
});

test('the free workspace is the premium benefit, Micro sized', () => {
expect(flat).toMatch(/\| (Premium), 200€ \| \*\*(One, included|Uno, incluido)\*\* \|/);
expect(flat).toMatch(/\| (Inference|Inferencia), 70€ \| No \|/);
expect(flat).toMatch(/\| (Community|Comunidad), 14,99€ \| No \|/);
expect(flat).toMatch(
locale === 'en'
? /The Premium plan includes \*\*one free workspace\*\*/
: /El plan Premium incluye \*\*un workspace gratis\*\*/,
);
expect(flat).toContain(locale === 'en' ? '1 vCPU, 2 GiB RAM, 10 GiB disk' : '1 vCPU, 2 GiB de RAM, 10 GiB de disco');
});

Expand Down Expand Up @@ -201,6 +214,13 @@ describe.each(Object.entries(pages))('workspaces guide (%s)', (locale, page) =>
expect(flat).toContain('https://termius.com/download');
expect(flat).toContain('`ssh.nan.builders`');
expect(flat).toContain('`30222`');
// The SSH keys tab shows Username / Hostname / Port as copyable fields now.
expect(flat).toMatch(
locale === 'en'
? /Copy it from the \*\*Username\*\* field in the \*\*SSH keys\*\* tab/
: /Cópialo del campo \*\*Username\*\* de la pestaña \*\*SSH keys\*\*/,
);
expect(flat).not.toMatch(/may also show it as Username|también puede mostrarlo como Username/);
expect(flat).toMatch(/Use Mosh\*\* (off|desactivado)/);
expect(body).toContain('```bash\nherdr\n```');
expect(flat).toContain('https://herdr.dev');
Expand Down
Loading