Skip to content

Public pages speed: profile and directory reads run together, card link label fixed (T-0896) - #95

Merged
sinhgiang merged 1 commit into
masterfrom
helme/perf-directory
Oct 24, 2026
Merged

sinhgiang merged 1 commit into
masterfrom
helme/perf-directory

Conversation

@sinhgiang

Copy link
Copy Markdown
Owner

What

T-0896: the three public page types (directory, tutor profile, /learn/<language>) were measured before and after, and the cheap slow spots fixed. Full table and method: docs/features/T-0896-public-pages-speed.md.

  • Profile: about nine database reads one after the other became four chains that run together. Document time with 40 ms a read: 442 ms to 160 ms; phone LCP 568 to 320 ms, desktop LCP 496 to 240 ms.
  • Free times and the directory list: independent reads start together (cold directory build 788 ms to 514 ms with the same pretend database). Each keeps its own failed-read rule (no times, never an empty list that looks like "no tutors").
  • Directory cards: the photo link had an aria-label that disagreed with the text on it (Lighthouse "label-content-name-mismatch", 1 failed audit on the directory and on every language page, phone and desktop). Now 0 failed audits on all three pages.
  • Profile photo: fetchPriority="high".

Checked

  • tests/perf-reads.test.ts (new): the reads are shown to start together with a pretend database that answers only when all have started; it fails on the old code (checked by putting the old loaders back). The old order of judgement and the throw on a failed read are kept.
  • npm test: 1558 tests, 1556 pass, 0 fail, 2 skipped. npm run typecheck, npm run line-refs, production build: pass. Lint of the changed files: clean.
  • Lighthouse (phone and desktop, all three pages): accessibility, best practices, SEO 100 before and after; failed audits 1 to 0 on the directory and the language page.

Limits

  • Measured on this machine with made-up data and a fixed 40 ms per read; network throttling is not possible in Helme's browser, so phone numbers are on a fast link. The Lighthouse performance score is not given by the tool (it leaves performance out), so no performance score is claimed. Real database latency and real photos are not measured.
  • Phone LCP of the directory moved between 568 and 652 ms from run to run on code this change does not touch.

Updates: not applicable, nobody sees a difference.

🤖 Generated with Claude Code

…endent data together; directory card link has no mismatched label (T-0896)

The profile asked for about nine reads one after the other, the free times for three, a group of
directory tutors for four. They now start together and keep their own failed-read rules. The card
photo link lost an aria-label that disagreed with its visible text (Lighthouse label-content-name-mismatch).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Helme-Agent: toiuuram project agent
Helme-Account: claude-wp
Helme-Model: claude-sonnet-5-5
Helme-Session: 83c30d74-7a50-4367-9b08-1d05764b7358
@cursor

cursor Bot commented Oct 24, 2026

Copy link
Copy Markdown

Bugbot is paused — your team has an unpaid invoice

Bugbot is paused because your team has an unpaid invoice.

Pay it from the billing page in the Cursor dashboard and Bugbot resumes automatically.

(requestId: 7f5b0f64-fe14-4789-bfd3-0bf44bcf4b88)

@vercel

vercel Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
tutafy Ready Ready Preview Oct 24, 2026 12:30am UTC

Request Review

@sinhgiang
sinhgiang merged commit 8027483 into master Oct 24, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Preview — 07c12781 Deployed Oct 24, 2026 by vercel[bot]
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