diff --git a/frontend/src/routes/dashboard/capsules/+page.svelte b/frontend/src/routes/dashboard/capsules/+page.svelte
index d9818e2..e8785ff 100644
--- a/frontend/src/routes/dashboard/capsules/+page.svelte
+++ b/frontend/src/routes/dashboard/capsules/+page.svelte
@@ -311,8 +311,8 @@
Capsules
-
- Isolated VMs you can start, pause, and snapshot on demand.
+
+ Isolated VMs. Start cold in under a second — pause, snapshot, or destroy at will.
@@ -329,7 +329,7 @@
{runningCount}
- concurrent capsules
+ running now
@@ -482,18 +482,21 @@
{:else if filteredCapsules.length === 0}
-
-
-
-
-
-
+
No capsules yet
- Launch a capsule to start running isolated code.
+ Each capsule is an isolated VM. Launch one to get started.
{ showCreateDialog = true; createError = null; }}
@@ -694,7 +697,7 @@
Launch Capsule
-
Configure and launch a new isolated capsule.
+
Configure resources and launch. The VM will be ready in under a second.
{#if createError}
@@ -741,7 +744,7 @@
-
Auto-pause timeout (seconds, 0 = never)
+
Idle timeout (seconds — 0 = never pause)
Destroy Capsule
- Destroy {destroyTarget.id} ? The capsule will be terminated and all data inside it lost.
+ Terminate {destroyTarget.id} and destroy all data inside it. This cannot be undone.
{#if destroyError}
diff --git a/frontend/src/routes/dashboard/keys/+page.svelte b/frontend/src/routes/dashboard/keys/+page.svelte
index 7376132..bdb0ddb 100644
--- a/frontend/src/routes/dashboard/keys/+page.svelte
+++ b/frontend/src/routes/dashboard/keys/+page.svelte
@@ -120,8 +120,8 @@
API Keys
-
- Keys authenticate SDK and direct API requests. Treat them like passwords.
+
+ Bearer tokens for the Wrenn API and SDKs. Each key grants full access — guard it like a password.
@@ -164,13 +164,16 @@
{:else if keys.length === 0}
-
-
-
-
+
No API keys yet
-
Create your first key to start making API requests.
+
Nothing can call the API without a key. Create one to authenticate your SDK or HTTP requests.
{ showCreate = true; createError = null; createName = ''; }}
class="mt-6 flex items-center gap-2 rounded-[var(--radius-button)] bg-[var(--color-accent)] px-5 py-2.5 text-ui font-semibold text-white transition-all duration-150 hover:brightness-115 hover:-translate-y-px active:translate-y-0"
@@ -201,7 +204,7 @@
{key.name || '—'}
- {key.key_prefix}…
+ {key.key_prefix}…
@@ -261,7 +264,7 @@
New API Key
-
Give your key a name to identify it later.
+
Name it after its environment or purpose — production, staging, CI. You can't rename it later.
{#if createError}
@@ -375,7 +378,7 @@
- Treat this like a password — store it in a secrets manager, not a document or chat message.
+ This is shown once. Store it in your secrets manager — not a note, not a chat message, not a commit.
@@ -404,8 +407,8 @@
Revoke Key
- Revoke {revokeTarget.name || revokeTarget.id} ?
- Any request using it will stop working immediately.
+ Permanently revoke {revokeTarget.name || revokeTarget.id} .
+ Any request using this key will fail immediately.
{revokeTarget.key_prefix}…
diff --git a/frontend/src/routes/dashboard/snapshots/+page.svelte b/frontend/src/routes/dashboard/snapshots/+page.svelte
index 8892a8c..7c03149 100644
--- a/frontend/src/routes/dashboard/snapshots/+page.svelte
+++ b/frontend/src/routes/dashboard/snapshots/+page.svelte
@@ -120,9 +120,9 @@
}
function emptyDescription(f: TypeFilter): string {
- if (f === 'snapshot') return 'Capture a running capsule to create a snapshot.';
- if (f === 'base') return 'Images appear here once added to your account.';
- return 'Snapshots are created from the Capsules page. Pause or snapshot a running capsule to get started.';
+ if (f === 'snapshot') return 'Pause a capsule from the Capsules page, then snapshot it to capture its state.';
+ if (f === 'base') return 'Base images are added by the Wrenn team. Contact support to request a custom image.';
+ return 'To create a snapshot, go to Capsules, pause a running capsule, then choose Snapshot.';
}
onMount(fetchSnapshots);
@@ -161,8 +161,8 @@
Templates
-
- Saved capsule states and base images. Launch a new capsule from any template.
+
+ Snapshots capture a live capsule state. Base images are the rootfs every capsule starts from. Launch a full VM from any template.
@@ -490,8 +490,8 @@
>
Delete Snapshot
- Delete {deleteTarget.name} ?
- This action cannot be undone.
+ Permanently delete {deleteTarget.name} .
+ Any capsule using this template will not be affected, but you won't be able to launch from it again.
{#if deleteTarget.type === 'snapshot'}
@@ -555,7 +555,7 @@
>
Launch Capsule
- Start a new capsule from this template.
+ Configure resources and launch. The VM will clone from this template and be ready in seconds.
{#if launchError}
diff --git a/frontend/src/routes/dashboard/team/+page.svelte b/frontend/src/routes/dashboard/team/+page.svelte
index 998738f..773cdf4 100644
--- a/frontend/src/routes/dashboard/team/+page.svelte
+++ b/frontend/src/routes/dashboard/team/+page.svelte
@@ -334,8 +334,8 @@
Team
-
- Manage your team, its members, and account settings.
+
+ Members, roles, and workspace configuration for your team.
@@ -715,7 +715,7 @@
>{member.name || member.email}
{#if member.user_id === auth.userId}
-
you
+
you
{/if}
@@ -745,7 +745,7 @@
{member.role === 'owner'
? 'bg-[var(--color-accent-glow-mid)] text-[var(--color-accent-mid)]'
: member.role === 'admin'
- ? 'bg-[var(--color-bg-5)] text-[var(--color-text-secondary)]'
+ ? 'bg-[var(--color-amber)]/8 text-[var(--color-amber)]'
: 'bg-[var(--color-bg-4)] text-[var(--color-text-muted)]'}"
>
{roleLabel(member.role)}
@@ -840,7 +840,7 @@
Delete this team
- {#if isLastTeam}Create another team before deleting this one.{:else}Permanently deletes the team and destroys all running capsules. This cannot be undone.{/if}
+ {#if isLastTeam}Create another team first — you can't delete your only team.{:else}Permanently deletes the team and destroys all running capsules. This cannot be undone.{/if}
- {#if isLastTeam}Create another team before leaving this one.{:else}You will lose access to all capsules and resources belonging to this team.{/if}
+ {#if isLastTeam}Create another team first — you can't leave your only team.{:else}You'll immediately lose access to all capsules and resources in this team.{/if}
- Add an existing Wrenn user to your team by email.
+ Search by email. The user must already have a Wrenn account.
{#if addError}
@@ -1101,9 +1101,9 @@
Remove Member
- Remove {removeTarget.name || removeTarget.email} from the team? They will lose access immediately.
+ > will immediately lose access to all team capsules and resources.
{#if removeError}
@@ -1187,7 +1187,7 @@
Leave Team
- You will lose access to all capsules and resources in {team?.name} .
diff --git a/frontend/src/routes/login/+page.svelte b/frontend/src/routes/login/+page.svelte
index 0c6e526..9685dfb 100644
--- a/frontend/src/routes/login/+page.svelte
+++ b/frontend/src/routes/login/+page.svelte
@@ -145,7 +145,7 @@
- Scale Up. Spin Out.
+ Scale Up.Spin Out.
@@ -154,7 +154,7 @@
class="relative z-10 mt-12 font-mono text-ui uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]"
style="animation: fadeUp 0.35s ease 0.2s both"
>
- Run Anything. Worry about Nothing.
+ Isolated VMs. Milliseconds to live.