diff --git a/i18n/en.json b/i18n/en.json
index 4063033..55114f4 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -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."
],
diff --git a/i18n/es.json b/i18n/es.json
index f7eb3cc..b0275b8 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -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."
],
diff --git a/public/docs/workspaces/phone-03-add-ssh-key.webp b/public/docs/workspaces/phone-03-add-ssh-key.webp
index a5799b9..811c5df 100644
Binary files a/public/docs/workspaces/phone-03-add-ssh-key.webp and b/public/docs/workspaces/phone-03-add-ssh-key.webp differ
diff --git a/src/content/docs-es/workspaces.mdx b/src/content/docs-es/workspaces.mdx
index 8863eff..2f79e5d 100644
--- a/src/content/docs-es/workspaces.mdx
+++ b/src/content/docs-es/workspaces.mdx
@@ -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
@@ -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.
-
+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.
+
+
### Crea un host en Termius
@@ -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.
@@ -270,7 +266,7 @@ No. Cada workspace es una máquina dedicada y aislada, con su CPU, su memoria y
-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.
@@ -288,7 +284,7 @@ No sobre la marcha. Compra un slot del tamaño nuevo, crea un workspace en él,
-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.
diff --git a/src/content/docs/workspaces.mdx b/src/content/docs/workspaces.mdx
index 9ad10fe..6de6ac4 100644
--- a/src/content/docs/workspaces.mdx
+++ b/src/content/docs/workspaces.mdx
@@ -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
@@ -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.
-
+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.
+
+
### Create a host in Termius
@@ -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.
@@ -270,7 +266,7 @@ No. Each workspace is a dedicated, isolated machine with its own CPU, memory and
-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.
@@ -288,7 +284,7 @@ Not in place. Buy a slot of the new size, create a workspace on it, copy your da
-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.
diff --git a/src/tests/landing/pricing.test.ts b/src/tests/landing/pricing.test.ts
index 69488db..9ee2e7e 100644
--- a/src/tests/landing/pricing.test.ts
+++ b/src/tests/landing/pricing.test.ts
@@ -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/);
});
diff --git a/src/tests/layouts/workspacesDocs.test.ts b/src/tests/layouts/workspacesDocs.test.ts
index fe74cc0..31f16e6 100644
--- a/src/tests/layouts/workspacesDocs.test.ts
+++ b/src/tests/layouts/workspacesDocs.test.ts
@@ -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');
});
@@ -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');