mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-08-31 02:41:44 +00:00
Follow-up to the canary primitive. Telemetry: every event now carries a `canaries` property listing the cohorts the install is enrolled in, attached in `trackEvent` so it lands on ALL events rather than renders only — a staged rollout is only as useful as the ability to split any metric by cohort. Resolved after the shouldTrack guard, so opted-out installs never pay for it, and omitted entirely (not null or "") when the install is in no canary, since PostHog treats those as real values. Test hardening, after validating the shipped code against 60k synthetic and 101 real fleet install ids: - Pin FNV-1a against canonical vectors, AND assert the shipped canaryBucket actually uses that hash. Without the second assertion the first is tautological — it would only prove the test's own copy is correct while canary.ts drifted to a different hash, silently reshuffling every live cohort. Fault-injection confirms only this assertion catches a hash change; the distribution tests stay green because a perturbed hash is still well-distributed. - Tighten the share test from a 0.6x-1.4x band to +/-1 percentage point. Measured error was 0.16pp at n=60k, so the old band would have passed a badly skewed hash. - Add chi-square uniformity across all 100 buckets (chi2 89.0 vs 148.2 critical at p=0.001). A lumpy hash yields roughly the right total share while overloading some buckets, so the share test alone cannot catch it. - Assert N concurrent canaries enrol binomially rather than in lockstep: 8 canaries at 10% put ~43% of installs in none and zero in all eight, matching binomial(8, 0.1). Correlated slices would put ~10% in all eight. Also verified 88,443 of 88,448 fleet install ids are well-formed UUIDs; the 5 that are not fail closed, which is the intended direction. Docs: docs/contributing/canary-rollouts.mdx, registered in docs.json (an unregistered page is invisible in the nav). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
502 lines
16 KiB
JSON
502 lines
16 KiB
JSON
{
|
|
"$schema": "https://mintlify.com/docs.json",
|
|
"name": "HyperFrames",
|
|
"theme": "maple",
|
|
"colors": {
|
|
"primary": "#0a0a0a",
|
|
"light": "#f6f5f1",
|
|
"dark": "#0a0a0a"
|
|
},
|
|
"background": {
|
|
"color": {
|
|
"light": "#f6f5f1",
|
|
"dark": "#0a0a0a"
|
|
}
|
|
},
|
|
"fonts": {
|
|
"family": "Inter",
|
|
"heading": {
|
|
"family": "Inter"
|
|
}
|
|
},
|
|
"appearance": {
|
|
"default": "light"
|
|
},
|
|
"logo": {
|
|
"light": "/logo/light.svg",
|
|
"dark": "/logo/dark.svg"
|
|
},
|
|
"favicon": "/favicon.svg",
|
|
"contextual": {
|
|
"options": [
|
|
"copy",
|
|
"claude",
|
|
"cursor",
|
|
"vscode",
|
|
"windsurf",
|
|
"mcp",
|
|
{
|
|
"title": "Open an issue",
|
|
"description": "Report a bug or request a feature",
|
|
"icon": "github",
|
|
"iconType": "brands",
|
|
"href": "https://github.com/heygen-com/hyperframes/issues/new"
|
|
}
|
|
]
|
|
},
|
|
"navigation": {
|
|
"tabs": [
|
|
{
|
|
"tab": "Documentation",
|
|
"groups": [
|
|
{
|
|
"group": "Getting Started",
|
|
"pages": [
|
|
"introduction",
|
|
"changelog",
|
|
"weekly-updates",
|
|
"quickstart",
|
|
"showcase",
|
|
"examples",
|
|
"launch-videos"
|
|
]
|
|
},
|
|
{
|
|
"group": "Concepts",
|
|
"pages": [
|
|
"concepts/compositions",
|
|
"concepts/data-attributes",
|
|
"concepts/variables",
|
|
"concepts/frame-adapters",
|
|
"concepts/determinism"
|
|
]
|
|
},
|
|
{
|
|
"group": "Prompt Guide",
|
|
"pages": [
|
|
"prompting/overview",
|
|
{
|
|
"group": "Level 1 — Your first video",
|
|
"pages": [
|
|
"prompting/product-launch",
|
|
"prompting/explainers",
|
|
"prompting/code-and-prs",
|
|
"prompting/captions-and-talking-heads",
|
|
"prompting/music-and-slideshows",
|
|
"prompting/motion-graphics"
|
|
]
|
|
},
|
|
{
|
|
"group": "Level 2 — Control",
|
|
"pages": [
|
|
"prompting/anatomy",
|
|
"prompting/specification-dial",
|
|
"prompting/vocabulary",
|
|
"prompting/visual-specs",
|
|
"prompting/examples"
|
|
]
|
|
},
|
|
{
|
|
"group": "Level 3 — Life",
|
|
"pages": [
|
|
"prompting/motion",
|
|
"prompting/transitions"
|
|
]
|
|
},
|
|
{
|
|
"group": "Level 4 — Substance",
|
|
"pages": [
|
|
"prompting/code-blocks",
|
|
"prompting/data-and-maps",
|
|
"prompting/overlays-and-lower-thirds",
|
|
"prompting/captions-catalog",
|
|
"prompting/generated-artwork",
|
|
"prompting/vfx-and-liquid-glass",
|
|
"prompting/runtimes-and-3d"
|
|
]
|
|
},
|
|
{
|
|
"group": "Level 5 — Voice and sound",
|
|
"pages": [
|
|
"prompting/media-and-audio"
|
|
]
|
|
},
|
|
{
|
|
"group": "Level 6 — Scale",
|
|
"pages": [
|
|
"prompting/design-systems",
|
|
"prompting/variables-and-templating",
|
|
"prompting/storyboards",
|
|
"prompting/editing-existing-videos",
|
|
"prompting/iterating",
|
|
"prompting/recreating-references",
|
|
"prompting/rendering-and-output",
|
|
"prompting/remotion-migration"
|
|
]
|
|
},
|
|
{
|
|
"group": "Level 7 — Capstone",
|
|
"pages": [
|
|
"prompting/capstone"
|
|
]
|
|
},
|
|
{
|
|
"group": "Appendix",
|
|
"pages": [
|
|
"prompting/rules-and-anti-patterns"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "Guides",
|
|
"pages": [
|
|
"guides/pipeline",
|
|
"guides/skills",
|
|
"guides/authentication",
|
|
"guides/video-components",
|
|
"guides/color-grading",
|
|
"guides/media-effects",
|
|
"guides/media-overlays",
|
|
"guides/html-in-canvas",
|
|
"guides/website-to-video",
|
|
"guides/figma",
|
|
"guides/antigravity",
|
|
"guides/copilot-cli",
|
|
"guides/claude-design",
|
|
"guides/claude-design-send-to-hyperframes",
|
|
"guides/open-design",
|
|
"guides/hyperframes-vs-remotion",
|
|
"guides/gsap-animation",
|
|
"guides/keyframes",
|
|
"guides/rendering",
|
|
"guides/remove-background",
|
|
"guides/hdr",
|
|
"guides/4k-rendering",
|
|
"guides/performance",
|
|
"guides/timeline-editing",
|
|
"guides/video-editor-cheatsheet",
|
|
"guides/common-mistakes",
|
|
"guides/troubleshooting",
|
|
"guides/feedback"
|
|
]
|
|
},
|
|
{
|
|
"group": "Deploy",
|
|
"pages": [
|
|
"deploy/cloud",
|
|
"guides/deploy",
|
|
"deploy/aws-lambda",
|
|
"deploy/gcp-cloud-run",
|
|
"deploy/templates-on-lambda",
|
|
"deploy/migrating-to-hyperframes-lambda"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tab": "Catalog",
|
|
"groups": [
|
|
{
|
|
"group": "Code Animations",
|
|
"pages": [
|
|
"catalog/blocks/code-3d-extrude",
|
|
"catalog/blocks/code-shader-dissolve",
|
|
"catalog/blocks/code-particle-assemble",
|
|
"catalog/blocks/code-morph",
|
|
"catalog/blocks/code-snippet-flight",
|
|
"catalog/blocks/code-typing",
|
|
"catalog/blocks/code-diff",
|
|
"catalog/blocks/code-highlight",
|
|
"catalog/blocks/code-scroll"
|
|
]
|
|
},
|
|
{
|
|
"group": "Captions",
|
|
"pages": [
|
|
"catalog/components/caption-clip-wipe",
|
|
"catalog/components/caption-editorial-emphasis",
|
|
"catalog/components/caption-emoji-pop",
|
|
"catalog/components/caption-glitch-rgb",
|
|
"catalog/components/caption-gradient-fill",
|
|
"catalog/components/caption-highlight",
|
|
"catalog/components/caption-kinetic-slam",
|
|
"catalog/components/caption-matrix-decode",
|
|
"catalog/components/caption-neon-accent",
|
|
"catalog/components/caption-neon-glow",
|
|
"catalog/components/caption-parallax-layers",
|
|
"catalog/components/caption-particle-burst",
|
|
"catalog/components/caption-pill-karaoke",
|
|
"catalog/components/caption-texture",
|
|
"catalog/components/caption-weight-shift"
|
|
]
|
|
},
|
|
{
|
|
"group": "HTML-in-Canvas",
|
|
"pages": [
|
|
"catalog/blocks/ios26-liquid-glass",
|
|
"catalog/blocks/liquid-glass-context-menu",
|
|
"catalog/blocks/liquid-glass-media-controls",
|
|
"catalog/blocks/liquid-glass-notification",
|
|
"catalog/blocks/liquid-glass-widgets",
|
|
"catalog/blocks/macos-tahoe-liquid-glass",
|
|
"catalog/blocks/vfx-iphone-device",
|
|
"catalog/blocks/vfx-liquid-background",
|
|
"catalog/blocks/vfx-liquid-glass",
|
|
"catalog/blocks/vfx-magnetic",
|
|
"catalog/blocks/vfx-portal",
|
|
"catalog/blocks/vfx-shatter",
|
|
"catalog/blocks/vfx-text-cursor"
|
|
]
|
|
},
|
|
{
|
|
"group": "Social Overlays",
|
|
"pages": [
|
|
"catalog/blocks/instagram-follow",
|
|
"catalog/blocks/macos-notification",
|
|
"catalog/blocks/reddit-post",
|
|
"catalog/blocks/spotify-card",
|
|
"catalog/blocks/tiktok-follow",
|
|
"catalog/blocks/x-post",
|
|
"catalog/blocks/yt-lower-third"
|
|
]
|
|
},
|
|
{
|
|
"group": "Lower Thirds",
|
|
"pages": [
|
|
"catalog/blocks/lower-third-bild",
|
|
"catalog/blocks/lt-accent-underline",
|
|
"catalog/blocks/lt-bold-block",
|
|
"catalog/blocks/lt-clean-bar",
|
|
"catalog/blocks/lt-color-block",
|
|
"catalog/blocks/lt-dark-card",
|
|
"catalog/blocks/lt-kicker-name",
|
|
"catalog/blocks/lt-mask-reveal",
|
|
"catalog/blocks/lt-side-rule",
|
|
"catalog/blocks/lt-soft-pill",
|
|
"catalog/blocks/lt-stack-bars",
|
|
"catalog/blocks/news-ticker"
|
|
]
|
|
},
|
|
{
|
|
"group": "Shader Transitions",
|
|
"pages": [
|
|
"catalog/blocks/chromatic-radial-split",
|
|
"catalog/blocks/cinematic-zoom",
|
|
"catalog/blocks/cross-warp-morph",
|
|
"catalog/blocks/domain-warp-dissolve",
|
|
"catalog/blocks/flash-through-white",
|
|
"catalog/blocks/glitch",
|
|
"catalog/blocks/gravitational-lens",
|
|
"catalog/blocks/light-leak",
|
|
"catalog/blocks/ridged-burn",
|
|
"catalog/blocks/ripple-waves",
|
|
"catalog/blocks/sdf-iris",
|
|
"catalog/blocks/swirl-vortex",
|
|
"catalog/blocks/thermal-distortion",
|
|
"catalog/blocks/whip-pan"
|
|
]
|
|
},
|
|
{
|
|
"group": "CSS Transitions",
|
|
"pages": [
|
|
"catalog/blocks/transitions-3d",
|
|
"catalog/blocks/transitions-blur",
|
|
"catalog/blocks/transitions-cover",
|
|
"catalog/blocks/transitions-destruction",
|
|
"catalog/blocks/transitions-dissolve",
|
|
"catalog/blocks/transitions-distortion",
|
|
"catalog/blocks/transitions-grid",
|
|
"catalog/blocks/transitions-light",
|
|
"catalog/blocks/transitions-mechanical",
|
|
"catalog/blocks/transitions-other",
|
|
"catalog/blocks/transitions-push",
|
|
"catalog/blocks/transitions-radial",
|
|
"catalog/blocks/transitions-scale"
|
|
]
|
|
},
|
|
{
|
|
"group": "Showcases",
|
|
"pages": [
|
|
"catalog/blocks/app-showcase",
|
|
"catalog/blocks/apple-money-count",
|
|
"catalog/blocks/blue-sweater-intro-video",
|
|
"catalog/blocks/north-korea-locked-down",
|
|
"catalog/blocks/nyc-paris-flight",
|
|
"catalog/blocks/ui-3d-reveal",
|
|
"catalog/blocks/vpn-youtube-spot"
|
|
]
|
|
},
|
|
{
|
|
"group": "Data",
|
|
"pages": [
|
|
"catalog/blocks/data-chart",
|
|
"catalog/blocks/spain-map",
|
|
"catalog/blocks/us-map",
|
|
"catalog/blocks/us-map-bubble",
|
|
"catalog/blocks/us-map-flow",
|
|
"catalog/blocks/us-map-hex",
|
|
"catalog/blocks/world-map"
|
|
]
|
|
},
|
|
{
|
|
"group": "Effects",
|
|
"pages": [
|
|
"catalog/components/grain-overlay",
|
|
"catalog/components/grid-pixelate-wipe",
|
|
"catalog/components/parallax-unzoom",
|
|
"catalog/components/parallax-zoom",
|
|
"catalog/components/shimmer-sweep",
|
|
"catalog/components/vignette"
|
|
]
|
|
},
|
|
{
|
|
"group": "Text Effects",
|
|
"pages": [
|
|
"catalog/components/caption-blend-difference",
|
|
"catalog/components/morph-text",
|
|
"catalog/components/texture-mask-text"
|
|
]
|
|
},
|
|
{
|
|
"group": "Blocks",
|
|
"pages": [
|
|
"catalog/blocks/flowchart",
|
|
"catalog/blocks/flowchart-vertical",
|
|
"catalog/blocks/logo-outro"
|
|
]
|
|
},
|
|
{
|
|
"group": "Code Snippets",
|
|
"pages": [
|
|
"catalog/blocks/code-snippet-apple-terminal-basic",
|
|
"catalog/blocks/code-snippet-apple-terminal-clear-dark",
|
|
"catalog/blocks/code-snippet-apple-terminal-clear-light",
|
|
"catalog/blocks/code-snippet-apple-terminal-grass",
|
|
"catalog/blocks/code-snippet-apple-terminal-homebrew",
|
|
"catalog/blocks/code-snippet-apple-terminal-man-page",
|
|
"catalog/blocks/code-snippet-apple-terminal-novel",
|
|
"catalog/blocks/code-snippet-apple-terminal-ocean",
|
|
"catalog/blocks/code-snippet-apple-terminal-pro",
|
|
"catalog/blocks/code-snippet-apple-terminal-red-sands",
|
|
"catalog/blocks/code-snippet-apple-terminal-silver-aerogel",
|
|
"catalog/blocks/code-snippet-apple-terminal-solid-colors",
|
|
"catalog/blocks/code-snippet-dark-2026",
|
|
"catalog/blocks/code-snippet-dark-modern",
|
|
"catalog/blocks/code-snippet-dark-plus",
|
|
"catalog/blocks/code-snippet-high-contrast",
|
|
"catalog/blocks/code-snippet-high-contrast-light",
|
|
"catalog/blocks/code-snippet-light-2026",
|
|
"catalog/blocks/code-snippet-light-modern",
|
|
"catalog/blocks/code-snippet-light-plus",
|
|
"catalog/blocks/code-snippet-monokai",
|
|
"catalog/blocks/code-snippet-solarized-light",
|
|
"catalog/blocks/code-snippet-visual-studio-dark",
|
|
"catalog/blocks/code-snippet-visual-studio-light"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tab": "Packages",
|
|
"groups": [
|
|
{
|
|
"group": "Packages",
|
|
"pages": [
|
|
"packages/core",
|
|
"packages/parsers",
|
|
"packages/lint",
|
|
"packages/studio-server",
|
|
"packages/sdk",
|
|
"packages/engine",
|
|
"packages/player",
|
|
"packages/producer",
|
|
"packages/shader-transitions",
|
|
"packages/aws-lambda",
|
|
"packages/gcp-cloud-run",
|
|
"packages/studio",
|
|
"packages/cli"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tab": "SDK",
|
|
"groups": [
|
|
{
|
|
"group": "Overview",
|
|
"pages": [
|
|
"sdk/overview",
|
|
"sdk/quickstart"
|
|
]
|
|
},
|
|
{
|
|
"group": "Guides",
|
|
"pages": [
|
|
"sdk/guides/querying-and-editing",
|
|
"sdk/guides/timing-and-animation",
|
|
"sdk/guides/undo-redo-and-patches",
|
|
"sdk/guides/persistence",
|
|
"sdk/guides/embedded-override-mode",
|
|
"sdk/guides/canvas-integration",
|
|
"sdk/guides/editing-affordances"
|
|
]
|
|
},
|
|
{
|
|
"group": "Reference",
|
|
"pages": [
|
|
"sdk/reference/open-composition",
|
|
"sdk/reference/composition",
|
|
"sdk/reference/edit-operations",
|
|
"sdk/reference/types",
|
|
"sdk/reference/adapters",
|
|
"sdk/reference/utilities"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tab": "Reference",
|
|
"groups": [
|
|
{
|
|
"group": "Reference",
|
|
"pages": [
|
|
"reference/html-schema"
|
|
]
|
|
},
|
|
{
|
|
"group": "Contributing",
|
|
"pages": [
|
|
"contributing",
|
|
"contributing/catalog",
|
|
"contributing/release-channels",
|
|
"contributing/changelog-process",
|
|
"contributing/testing-local-changes",
|
|
"contributing/canary-rollouts",
|
|
"contributing/studio-manual-dom-editing"
|
|
]
|
|
},
|
|
{
|
|
"group": "Community",
|
|
"pages": [
|
|
"community/adopters"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"footer": {
|
|
"socials": {
|
|
"github": "https://github.com/heygen-com/hyperframes"
|
|
}
|
|
},
|
|
"redirects": [
|
|
{
|
|
"source": "/guides/prompting",
|
|
"destination": "/prompting/overview",
|
|
"permanent": true
|
|
}
|
|
]
|
|
}
|