Repository navigation
Conversation
Make a video, Studio app and Developers move into a Docs menu (each keeps its own sidebar), with Free lessons, Community and the app changelog under them; Catalog stays a tab. The top-bar copy of Ask Assistant goes (Ask stays in search and the page's bottom bar); the logo opens the homepage; the button reads Download.
…unch Both wait hidden behind the homepage's hyperframes-signup-cta flag, so one switch turns on Sign up on the homepage and the docs together. web-launch.js asks HeyGen's PostHog proxy for that flag; custom.css shows the Web Studio tab with a New badge and makes Sign up the main button, right of an outlined Download.
jrusso1020
left a comment
There was a problem hiding this comment.
Reviewed at f06f4f4d665bbfb5984d1211f0d947fa44907f46.
I would fix the delayed header reflow before merging.
Important — docs/web-launch.js:54–55 with docs/custom.css:614–616: On the first uncached visit, the code initially renders with both links removed from layout. A later signup response reveals them and expands the max-content header columns. In headless Chromium, using #6860's preview HTML plus the proposed links, this head's actual CSS and actual script with a delayed flag response, the search field moves from x=373.23 to x=523.59 at both 1440 and 1024 px. At 1024 it also shrinks from 344.17 to 164 px. This is a fixture measurement, not a deployed #6861 preview, but the underlying display/async transition is present in the source. It fails the requested no-shift behavior and can move controls while a reader is approaching them.
Please keep the header's geometry stable while the flag resolves, for example by reserving the relevant slots and revealing visibility without resizing adjacent columns, or by placing the gated actions in an existing fixed-size slot. The delayed reveal itself should also be checked for flashing; I verified the geometry change, not flash-free first paint on a built site. Add a browser regression that delays the first signup response past paint and compares the existing controls' bounding boxes before/after, including 1024 px. Keep disabled links unfocusable and out of the accessibility tree. That closes this concern.
Nit — docs/web-launch.js:49–54: An HTTP 429/500 becomes null and is cached as off for the entire tab session. Recovery followed by reload therefore never asks again. Throw on non-OK responses, or cache only valid flag evaluations, keeping the controls hidden during failures and a later retry. My VM control reproduces zero retry requests after the endpoint recovers. Network rejection already avoids this cache write.
Need: yes · Size: ok · Reuse: homepage flag key and native Mintlify links · Simpler: keep the existing header geometry stable · Structure: fine
Risk: medium — new browser flag request and post-paint navigation changes.
The parent head is an ancestor, and all 583 navigation pages are retained. Nine actual-script controls pass for offline/non-OK/malformed/off/wrong-variant/on/QA and the cache behavior; oxlint reports 0 warnings/errors. These tests stub responses and send no live PostHog request. CSS hides the new links by default, so a fresh uncached network failure stays closed; a cached enabled session intentionally remains enabled without a fresh request. Internal navigation retains the root class. mint validate was stopped after two minutes without a result. I did not run a full signup or a built #6861 Mintlify browser walk. Copilot's only prior review reports exhausted quota.
Verdict: COMMENT, changes needed.
Reasoning: Fresh uncached failures stay closed; cached-on sessions skip the request by design. The the uncached enabled path visibly changes header geometry after paint. No approval posted.
| var flag = data && data.flags && data.flags[FLAG]; | ||
| var on = !!flag && flag.enabled === true && flag.variant === ON; | ||
| store("sessionStorage", CACHE, on ? "1" : "0"); | ||
| apply(on); |
There was a problem hiding this comment.
Important: revealing these display:none links after the async response changes the max-content header columns after paint. With this CSS/script and the parent preview DOM plus the new links, a delayed enabled response moved Search ~150px at 1440 and 1024px. Please keep the existing controls in fixed geometry (reserved noninteractive slots or an existing fixed-size slot), and test delayed first-response bounding boxes at desktop widths. Full measurement and fixture limits are in my review body.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Reviewer found the script revealed them after paint and shifted the bar. Without the flag check the items render with the page, so this PR is merged on launch day.
What
Two items for the docs top bar at the web launch:
Builds on #6860 (one Docs menu), which frees the space after Catalog.
Why
The November goal counts new HeyGen accounts. Today a docs visitor can only get one by downloading the Desktop app first. Web Studio adds a way in without installing.
Related work
Stacked on #6860; merge that first. The homepage's Sign up is the same button behind the
hyperframes-signup-ctaflag (heygen-com/web-marketing#3553).How
docs.json:Web Studiotab with anhref(?src=docs-tab);Sign upentry innavbar.linksto HeyGen sign-up through hyperframes.studio, returning to/agent?src=docs-navbar(the homepage usessrc=home-nav).custom.css: the tab gets a "New" badge, Sign up is the filled button and moves right of Download (order), and Download turns outlined. Both items are found by link, not label.Why a merge and not a flag. The first version read the homepage flag from a docs script. Rames found that Mintlify loads custom scripts after the page has drawn, so the items appeared late and shifted Search by about 150px. Rendering them from docs.json avoids the jump, the extra request on every visit and the failure cases. The cost: launch day is two steps, the flag plus this merge, and the docs follow within minutes.
Test plan
mint validateandmint broken-links --check-redirectspass.mint devin Chrome, 1440px light and dark:/agent?src=docs-navbarreturn kept.hyperframes-signup-cta, merge this PR, and check thatsrc=docs-navbarandsrc=docs-tabarrive on /agent.