Skip to content

feat: focus onboarding on setting up an Alby Hub#3576

Merged
pavanjoshi914 merged 3 commits into
masterfrom
chore/extension-hub-primary-onboarding
Jul 14, 2026
Merged

feat: focus onboarding on setting up an Alby Hub#3576
pavanjoshi914 merged 3 commits into
masterfrom
chore/extension-hub-primary-onboarding

Conversation

@reneaaron

@reneaaron reneaaron commented Jun 29, 2026

Copy link
Copy Markdown
Member

Describe the changes you have made in this PR

Reworks the extension's first-run wallet-connection screen (ChooseConnectorPath) to focus new users on getting an Alby Hub rather than connecting an Alby Account.

Post–Alby Cloud, connecting an Alby Account no longer yields a working wallet on its own (you still need a hub), so leading onboarding with "Continue with Alby Account" dead-ended the majority of new installs. This reframes the screen around the question a new user can actually answer about themselves:

  • "Don't have a wallet yet?" (primary) → Get Startedhttps://getalby.com/alby-hub#download to set up an Alby Hub.
  • "Already have a wallet?"Connect → the existing connector grid (Alby Hub via NWC is still Initial popup frontend #1, plus all other wallets/nodes).
  • The Alby Account OAuth path is demoted from a primary button to a secondary text link ("Have an Alby Account? Connect it"). The OAuth flow itself is unchanged, so existing account users can still connect.

No connector logic changed — this is an onboarding IA + copy change.

Type of change

  • feat: New feature (non-breaking change which adds functionality)

How has this been tested?

Built the Chrome extension (yarn build:chrome), loaded it unpacked, and verified the onboarding screen renders, the "Get Started" link points at getalby.com/alby-hub#download, "Connect" opens the connector grid, and the Alby Account link still triggers the OAuth flow. yarn lint-level prettier checks pass on the changed files.

Checklist

  • Self-review of changed code
  • Manual testing (light mode, desktop width)
  • Added automated tests where applicable (n/a — copy/IA only)
  • For UI-related changes
  • Darkmode (not yet verified)
  • Responsive layout (not yet verified)

Summary by CodeRabbit

  • New Features

    • Updated the connector choice screen with refreshed Alby Hub wording and a direct external download link.
    • Added a centered prompt row beneath the connector grid to guide users to the Alby connection flow.
  • Bug Fixes

    • Improved the Alby action behavior during loading by disabling the trigger and adjusting its interactive styling.
  • Localization

    • Refreshed connector selection copy across many languages for the Alby/other options.

Rework the wallet-connection path screen to split by user state instead
of product: 'Don't have a wallet yet?' leads new users to set up an Alby
Hub (getalby.com/alby-hub#download), while 'Already have a wallet?' keeps
the existing connector grid. The Alby Account OAuth path is demoted from a
primary button to a secondary text link, but stays fully reachable so
existing account users can still connect.
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 16d1c469-f85c-44f8-bcce-77a1684d2146

📥 Commits

Reviewing files that changed from the base of the PR and between 35ec4c5 and a2a2c68.

📒 Files selected for processing (1)
  • src/app/screens/connectors/ChooseConnectorPath/index.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/app/screens/connectors/ChooseConnectorPath/index.tsx

📝 Walkthrough

Walkthrough

The connector path screen now promotes Alby Hub with an external download link, moves Alby account connection into a footer prompt, and changes the connect trigger to a hyperlink. Locale files update the related choose_path strings, including a new English albyhub block.

Changes

Connector Path Redesign

Layer / File(s) Summary
ChooseConnectorPath and ConnectAlby UI updates
src/app/screens/connectors/ChooseConnectorPath/index.tsx, src/app/screens/connectors/ConnectAlby/index.tsx
ChooseConnectorPath removes theme-based icon logic, replaces the Alby card with an albyhub card that links to the external download page, and adds a footer row rendering ConnectAlby. ConnectAlby replaces its Button trigger with a Hyperlink using loading-state classes.
English translation additions for albyhub/alby/other
src/i18n/locales/en/translation.json
Adds the choose_path.albyhub block and updates the other and alby copy in the English locale.
Remove stale choose_path strings across locales
src/i18n/locales/*/translation.json
Removes choose_path.other title, description, and connect strings and removes choose_path.alby.connect strings across locales. Includes the nostr.kinds entry reordering in hi and pt locales.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • pavanjoshi914

🐇 A new hub card hops into view,
The footer says “connect” in a softer hue,
Old locale crumbs sweep off the trail,
The hyperlink leads the rabbit’s tale,
Alby Hub and friends now gleam anew ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the PR’s main change: shifting onboarding to focus on Alby Hub setup.
Description check ✅ Passed The description follows the required template and includes the change summary, type, testing, and checklist sections.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/extension-hub-primary-onboarding

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@reneaaron
reneaaron marked this pull request as ready for review June 30, 2026 13:41

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/app/screens/connectors/ChooseConnectorPath/index.tsx`:
- Around line 20-42: The ChooseConnectorPath screen is now reading new
choose_path translation keys, but the locale updates removed those entries for
non-English users. Restore/backfill the choose_path.albyhub.*,
choose_path.alby.prompt, and choose_path.alby.connect keys in the translation
JSON files used by react-i18next so the ChooseConnectorPath component continues
to render localized onboarding copy instead of missing-key text.
- Around line 22-25: Mark the Alby Hub image in ChooseConnectorPath as
decorative by adding an empty alt attribute to the existing img element. Update
the image in the connector picker UI so screen readers ignore the asset and do
not announce the raw filename; keep the change scoped to the img rendered in
this component.

In `@src/i18n/locales/en/translation.json`:
- Around line 55-57: The copy in the translation entry for the first-run Alby
Account screen has a typo in the description text (“Ideal If”). Update the
string in the translation object containing title, description, and connect so
the description uses the correct phrasing, keeping the existing keys and overall
message intact.

In `@src/i18n/locales/fr/translation.json`:
- Around line 35-40: The French locale is missing keys that ConnectAlby and
ChooseConnectorPath still use, causing those screens to fall back to English.
Restore the removed French translations under the choose_path and related footer
CTA entries in translation.json so the existing lookups in ConnectAlby/index.tsx
and ChooseConnectorPath/index.tsx continue to resolve in French until the UI
replacements are landed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 84400136-df9d-4f0f-81a9-fdeb4b3c36f7

📥 Commits

Reviewing files that changed from the base of the PR and between bad06c2 and 35ec4c5.

📒 Files selected for processing (29)
  • src/app/screens/connectors/ChooseConnectorPath/index.tsx
  • src/app/screens/connectors/ConnectAlby/index.tsx
  • src/i18n/locales/cs/translation.json
  • src/i18n/locales/da/translation.json
  • src/i18n/locales/de/translation.json
  • src/i18n/locales/el/translation.json
  • src/i18n/locales/en/translation.json
  • src/i18n/locales/es/translation.json
  • src/i18n/locales/fa/translation.json
  • src/i18n/locales/fi/translation.json
  • src/i18n/locales/fr/translation.json
  • src/i18n/locales/hi/translation.json
  • src/i18n/locales/id/translation.json
  • src/i18n/locales/it/translation.json
  • src/i18n/locales/ja/translation.json
  • src/i18n/locales/mr/translation.json
  • src/i18n/locales/pl/translation.json
  • src/i18n/locales/pt/translation.json
  • src/i18n/locales/pt_BR/translation.json
  • src/i18n/locales/ro/translation.json
  • src/i18n/locales/ru/translation.json
  • src/i18n/locales/si/translation.json
  • src/i18n/locales/sl/translation.json
  • src/i18n/locales/sv/translation.json
  • src/i18n/locales/ta/translation.json
  • src/i18n/locales/th/translation.json
  • src/i18n/locales/uk/translation.json
  • src/i18n/locales/zh_Hans/translation.json
  • src/i18n/locales/zh_Hant/translation.json

Comment on lines +20 to +42
title={t("albyhub.title")}
icon={
<img
src={
theme === "dark"
? "assets/icons/alby_dark.svg"
: "assets/icons/alby_light.svg"
}
src="assets/icons/albyhub.svg"
className="w-10 h-10 rounded-md"
/>
}
description={t("alby.description")}
actions={<ConnectAlby />}
description={t("albyhub.description")}
actions={
<a
href="https://getalby.com/alby-hub#download"
target="_blank"
rel="noreferrer"
className="flex flex-1"
>
<Button
tabIndex={-1}
label={t("albyhub.get_started")}
flex
primary
/>
</a>
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

Backfill the new choose_path keys before switching this screen.

This UI now depends on choose_path.albyhub.*, choose_path.alby.prompt, and choose_path.alby.connect, while the locale batch shown in this PR empties/removes the related choose_path entries in non-English files. That turns the first-run onboarding copy into fallback/missing-key text for localized users.

As per coding guidelines, "All user-facing strings must go through react-i18next. Translations live in src/i18n/locales/<lang>/translation.json."

Also applies to: 74-77

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/screens/connectors/ChooseConnectorPath/index.tsx` around lines 20 -
42, The ChooseConnectorPath screen is now reading new choose_path translation
keys, but the locale updates removed those entries for non-English users.
Restore/backfill the choose_path.albyhub.*, choose_path.alby.prompt, and
choose_path.alby.connect keys in the translation JSON files used by
react-i18next so the ChooseConnectorPath component continues to render localized
onboarding copy instead of missing-key text.

Source: Coding guidelines

Comment thread src/app/screens/connectors/ChooseConnectorPath/index.tsx
Comment on lines 55 to +57
"title": "Alby Account",
"description": "Ideal If you would like to enjoy apps while staying in control of your bitcoin.",
"connect": "Continue with Alby Account"
"connect": "Connect it",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the Ideal If typo.

This ships on the first-run screen.

✏️ Proposed fix
-        "description": "Ideal If you would like to enjoy apps while staying in control of your bitcoin.",
+        "description": "Ideal if you would like to enjoy apps while staying in control of your bitcoin.",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"title": "Alby Account",
"description": "Ideal If you would like to enjoy apps while staying in control of your bitcoin.",
"connect": "Continue with Alby Account"
"connect": "Connect it",
"title": "Alby Account",
"description": "Ideal if you would like to enjoy apps while staying in control of your bitcoin.",
"connect": "Connect it",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/i18n/locales/en/translation.json` around lines 55 - 57, The copy in the
translation entry for the first-run Alby Account screen has a typo in the
description text (“Ideal If”). Update the string in the translation object
containing title, description, and connect so the description uses the correct
phrasing, keeping the existing keys and overall message intact.

Comment on lines 35 to +40
"choose_path": {
"alby": {
"title": "Compte Alby",
"connect": "Continuer avec un compte Alby",
"description": "Idéal si vous souhaitez profiter des applications tout en gardant le contrôle de votre bitcoin."
},
"other": {
"title": "Apportez votre propre portefeuille",
"description": "Idéal si vous disposez déjà d'un wallet ou de votre propre nœud Lightning.",
"connect": "Sélectionnez votre wallet"
},
"other": {},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the French keys until replacements land.

Line 35-40 removes strings that src/app/screens/connectors/ConnectAlby/index.tsx and src/app/screens/connectors/ChooseConnectorPath/index.tsx still render, so this locale now falls back to English for the footer CTA and the “other wallet” card. That keeps the screen working, but it regresses the French UX into a mixed-language onboarding flow.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/i18n/locales/fr/translation.json` around lines 35 - 40, The French locale
is missing keys that ConnectAlby and ChooseConnectorPath still use, causing
those screens to fall back to English. Restore the removed French translations
under the choose_path and related footer CTA entries in translation.json so the
existing lookups in ConnectAlby/index.tsx and ChooseConnectorPath/index.tsx
continue to resolve in French until the UI replacements are landed.

@pavanjoshi914

Copy link
Copy Markdown
Member

tACk

@pavanjoshi914
pavanjoshi914 merged commit f8f6116 into master Jul 14, 2026
8 checks passed
@pavanjoshi914
pavanjoshi914 deleted the chore/extension-hub-primary-onboarding branch July 14, 2026 14:36
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.

2 participants