Skip to content

UI/UX polish for the single-user Git Forge - #267

Open
rawkode wants to merge 2 commits into
mainfrom
claude/git-forge-ui-ux-HCEwi
Open

UI/UX polish for the single-user Git Forge#267
rawkode wants to merge 2 commits into
mainfrom
claude/git-forge-ui-ux-HCEwi

Conversation

@rawkode

Copy link
Copy Markdown
Member

A rolling series of UI/UX improvements toward the goal of a single-user
Git Forge that feels familiar but special. Each improvement lands as its
own commit on this branch; this PR is the running collection.

Improvements

1. Guided first-run onboarding on an empty workspace home

A freshly-provisioned forge has no repositories, so the workspace home
previously rendered an empty summary strip over an empty activity stream
— which reads as "broken" on first run. The home now swaps to a guided
onboarding panel when the workspace has resolved with zero repositories:

  • Two equal action cards — Create a repository and Import from a
    URL
    — both routing to /new.
  • Quiet tips that surface the two affordances a newcomer won't discover
    on their own: the ⌘K / Ctrl K command palette and the
    comtrya.cue config model.
  • Gated on a resolved zero-repo workspace so a slow load never flashes
    the panel.

Pure predicate covered by WorkspaceHome.onboard.test.ts.

Verification

  • bun run typecheck — clean
  • bun run build — succeeds
  • bun test — 279 pass / 0 fail

Browser verification (per the repo's UI Verification rule) is pending:
Chrome MCP is not available in this session. The change is build- and
test-verified; end-to-end browser verification will be completed when
the tooling reconnects, before this is treated as merge-ready.

https://claude.ai/code/session_01Fwkt9XPwkwWH3iEfWwabtr


Generated by Claude Code

A freshly-provisioned single-user forge has no repositories, so the
workspace home rendered an empty summary strip over an empty activity
stream — reading as broken on first run. Swap in a guided onboarding
panel (create / import action cards + palette and comtrya.cue tips)
gated on a resolved, zero-repository workspace so a slow load never
flashes it.
CopilotAI review requested due to automatic review settings May 31, 2026 22:34

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR improves the first-run experience of the workspace home in the frontend by showing a guided onboarding panel when a workspace has resolved with zero repositories, helping new users understand how to create/import a repo and discover key navigation/config affordances.

Changes:

  • Add a resolved-state gate (isFreshWorkspace) to swap the normal home grid for a first-run onboarding panel when there are zero repositories.
  • Introduce dedicated onboarding markup (two /new action cards + tips, including platform-specific ⌘ vs Ctrl label).
  • Add onboarding styles and a fast, dependency-free unit test that mirrors the gating predicate.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

FileDescription
frontend/src/styles.cssAdds styling for the first-run onboarding panel and action cards on the workspace home.
frontend/src/routes/WorkspaceHome.vueAdds the isFreshWorkspace gate and renders the onboarding panel when the workspace is ready and empty.
frontend/src/routes/WorkspaceHome.onboard.test.tsAdds a unit test for the onboarding gate predicate (mirroring the SFC logic).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadfrontend/src/styles.css
The first-run onboarding cards are large clickable RouterLinks with
only a hover treatment; keyboard users tabbing to them got no visible
focus ring. Add a :focus-visible style (accent border + soft ring)
matching the composer/textarea focus pattern already in the sheet.
Sign up for freeto 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.

3 participants

@rawkode@claude