Skip to content

Complete UX audit across auth, wizard, assets, and analytics#7

Merged
jadru merged 1 commit into
mainfrom
comprehensive-ux-audit
Mar 6, 2026
Merged

Complete UX audit across auth, wizard, assets, and analytics#7
jadru merged 1 commit into
mainfrom
comprehensive-ux-audit

Conversation

@jadru

@jadru jadru commented Mar 4, 2026

Copy link
Copy Markdown
Owner

This PR lands the full comprehensive UX audit scope across auth, dashboard, wizard, landing, and settings, including missing forgot-password flow, broad i18n hardcoding cleanup (en/ko), and improved locked preset/upgrade UX. It upgrades asset generation reliability and quality by fixing symbol/icon source resolution, OG icon rendering/font handling, stage-based generation progress with warnings, pipeline status/storage updates (including signed URL refresh), and a pipeline stage DB migration. It also wires real GA4 tracking for key growth events, adds analytics coverage, adds project search/filter improvements plus regenerate flow cleanup, replaces deprecated middleware with Next proxy, and removes deprecated AI helper/unsafe typing debt. Validation run in this branch: , ,
RUN v4.0.18 /Users/jadru/conductor/workspaces/brand-kit/cambridge

✓ tests/lib/assets/code-snippets.test.ts (1 test) 2ms
✓ tests/lib/config/routes.test.ts (7 tests) 5ms
✓ tests/lib/utils/colors.test.ts (3 tests) 2ms
✓ tests/lib/analytics/events.test.ts (3 tests) 2ms
✓ tests/lib/utils/errors.test.ts (12 tests) 15ms
✓ tests/lib/utils/image.test.ts (3 tests) 121ms
✓ tests/lib/assets/favicon.test.ts (1 test) 238ms

Test Files 7 passed (7)
Tests 30 passed (30)
Start at 16:48:33
Duration 458ms (transform 215ms, setup 118ms, import 305ms, tests 385ms, environment 2ms), and ▲ Next.js 16.1.6 (Turbopack)

Creating an optimized production build ...
✓ Compiled successfully in 5.5s
Running TypeScript ...
Collecting page data using 9 workers ...
Generating static pages using 9 workers (0/39) ...
Generating static pages using 9 workers (9/39)
Generating static pages using 9 workers (19/39)
Generating static pages using 9 workers (29/39)
✓ Generating static pages using 9 workers (39/39) in 273.5ms
Finalizing page optimization ...

Route (app)
┌ ○ /_not-found
├ ● /[locale]
│ ├ /en
│ └ /ko
├ ƒ /[locale]/auth/callback
├ ƒ /[locale]/auth/confirm
├ ƒ /[locale]/auth/signout
├ ƒ /[locale]/brand-profiles
├ ƒ /[locale]/dashboard
├ ● /[locale]/demo
│ ├ /en/demo
│ └ /ko/demo
├ ● /[locale]/forgot-password
│ ├ /en/forgot-password
│ └ /ko/forgot-password
├ ● /[locale]/login
│ ├ /en/login
│ └ /ko/login
├ ƒ /[locale]/privacy
├ ƒ /[locale]/projects
├ ƒ /[locale]/projects/[id]
├ ƒ /[locale]/projects/new
├ ƒ /[locale]/settings
├ ƒ /[locale]/settings/billing
├ ● /[locale]/signup
│ ├ /en/signup
│ └ /ko/signup
├ ƒ /[locale]/terms
├ ƒ /api/ai/headlines
├ ƒ /api/ai/icons
├ ƒ /api/assets/download/[projectId]
├ ƒ /api/assets/generate
├ ƒ /api/assets/status/[projectId]
├ ƒ /api/email
├ ƒ /api/feedback
├ ƒ /api/lemonsqueezy/checkout
├ ƒ /api/lemonsqueezy/portal
├ ƒ /api/notifications
├ ƒ /api/og
├ ƒ /api/webhooks/lemonsqueezy
├ ○ /robots.txt
└ ○ /sitemap.xml

ƒ Proxy (Middleware)

○ (Static) prerendered as static content
● (SSG) prerendered as static HTML (uses generateStaticParams)
ƒ (Dynamic) server-rendered on demand all pass.

@vercel

vercel Bot commented Mar 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
brand-kit Ready Ready Preview, Comment Mar 4, 2026 7:50am

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b2a199e6d0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +163 to +167
await pollStatus()
intervalRef.current = setInterval(() => {
void pollStatus()
}, POLL_INTERVAL_MS)

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 Badge Start generation request before polling status

startGeneration polls /api/assets/status before it posts /api/assets/generate, so retries on projects already marked failed/completed immediately revert local state to that stale terminal status. In that case later status updates are ignored by the prev.status !== 'generating' guard, so the UI can stay stuck in failed/completed while a new generation is actually running (making duplicate retries likely). Send the generation request first, or ignore terminal status responses until the new run has been kicked off.

Useful? React with 👍 / 👎.

@jadru
jadru merged commit 23569b1 into main Mar 6, 2026
6 checks passed
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