Skip to content

Replace the default workspace with a home screen - #660

Merged
gschier merged 5 commits into
mainfrom
onboarding-home-screen
Sep 15, 2026
Merged

gschier merged 5 commits into
mainfrom
onboarding-home-screen

Conversation

@gschier

@gschier gschier commented Sep 15, 2026

Copy link
Copy Markdown
Member

New installs no longer get an empty "Yaak" workspace. With no workspaces, the app shows a home screen to import from Postman, Insomnia, OpenAPI, or curl, open an example workspace, or start fresh. It also links to opening a folder or cloning a Git repository. Deleting the last workspace returns there.

image

The example workspace uses JSONPlaceholder and covers requests, variables, request chaining, and folder auth. It is created by a new cmd_create_example_workspace command instead of the importer, because the importer remaps request IDs without updating the response() tags that reference them. The web build declines that command for now.

Also removes an unused event sender from WriteDb.

@gschier
gschier marked this pull request as ready for review September 15, 2026 20:09
@greptile-apps

greptile-apps Bot commented Sep 15, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR is not yet safe to merge because fresh web users are presented with onboarding actions that predictably fail or do nothing on that host.

Findings

  1. P1 Unsupported web onboarding actions

Summary

This PR replaces automatic creation of the default workspace with an empty-state onboarding screen and adds a native command that creates a pre-populated example workspace.

  • Fresh installations and deletion of the final workspace now lead to onboarding.
  • Onboarding offers imports, an example workspace, a fresh workspace, folder opening, and Git cloning.
  • The example workspace is created transactionally from an embedded JSON resource with regenerated model IDs.
  • Database initialization no longer guarantees that a workspace exists.
  • The web host explicitly declines example-workspace creation, but its onboarding UI currently exposes that and other unsupported actions.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Global models load] --> B{Any workspaces?}
  B -->|Yes| C[Restore latest workspace]
  B -->|No| D[Render onboarding]
  D --> E[Start fresh]
  D --> F[Create example workspace]
  D --> G[Import data]
  D --> H[Open folder or clone Git]
  E --> I[Create workspace model]
  F --> J[Native example-workspace command]
  J --> K[Regenerate placeholder IDs]
  K --> L[Batch upsert transaction]
  G --> M[Import plan and commit]
  I --> N[Navigate to workspace]
  L --> N
  M --> N
Loading

Reviews (1) · Last reviewed commit: "Restyle the home screen with launcher op..."

Comment on lines +70 to +86
<StartOption
color="primary"
icon="folder_input"
title="Migrate from another tool"
description="Postman, Insomnia, OpenAPI, or curl"
busy={busy === "import"}
disabled={busy != null}
onClick={choose("import", () => importData.mutateAsync())}
/>
<StartOption
color="info"
icon="flask"
title="Try Yaak with a real API"
description="Ready-made requests you can send right away"
busy={busy === "example"}
disabled={busy != null}
onClick={choose("example", createExampleWorkspace)}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Unsupported web onboarding actions

On a fresh web install, this screen enables actions that the web host cannot run. “Try Yaak with a real API” calls the explicitly declined cmd_create_example_workspace command and shows an error instead of creating a workspace. The import choices also call declined commands, while opening a folder or cloning a repository is unavailable under the web host’s local-file, sync, and Git capabilities. Gate these options by host capability or provide supported web implementations so onboarding does not lead to errors or silent no-ops.

Knowledge Base Used:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're going to implement those once the web version is live and promoted

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense. If the web build isn’t live or promoted yet, I agree this can be deferred as follow-up work rather than blocking this PR. Once it is enabled, the onboarding actions should be gated or implemented before users can reach this screen.

@gschier
gschier merged commit 06142d0 into main Sep 15, 2026
6 checks passed
@gschier
gschier deleted the onboarding-home-screen branch September 15, 2026 20:33
gschier added a commit that referenced this pull request Sep 15, 2026
Fresh databases stopped getting a default workspace with the home screen
(#660), so the fixtures from #654 that took the first workspace panicked
on an empty list. They now create one.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant