Files
hyperframes/docs/docs.json
T
James Russo a1a8c7790f docs(lambda): add docs/deploy/aws-lambda.mdx deployment guide (#914)
* docs(lambda): add docs/deploy/aws-lambda.mdx deployment guide

End-to-end deploy guide for the AWS Lambda surface. Covers:

  - Architecture diagram (Step Functions Plan → Map(N) → Assemble +
    the single Lambda function dispatching by Action; pulled from
    the distributed rendering plan §15.2).
  - Prerequisites table (AWS creds, SAM CLI, bun, repo checkout).
  - Three deployment paths: hyperframes lambda CLI (recommended),
    direct sam deploy against examples/aws-lambda/template.yaml,
    and HyperframesRenderStack CDK construct.
  - IAM bootstrap via hyperframes lambda policies user/role/validate.
  - Cost shape — how Lambda GB-seconds + SFN transitions roll up
    into the displayCost the progress verb prints.
  - Troubleshooting block with the typed error names operators
    actually hit (PLAN_HASH_MISMATCH, BROWSER_GPU_NOT_SOFTWARE,
    iam:CreateRole denial, stuck RUNNING, S3 Retain semantics).
  - "What's NOT in v1" callout so adopters don't burn time looking
    for webhooks / compositions verb / HDR support.

Registered under a new "Deploy" group in docs.json's Documentation
tab, sitting after Packages so the conceptual flow is "what you
can build" → "how to ship it."

No code changes.

* docs(lambda): address PR review on AWS Lambda deployment guide

One blocker + two important items from Vai's review:

  - The BROWSER_GPU_NOT_SOFTWARE troubleshooting entry pointed
    adopters at a non-existent `data-gpu-mode` composition attribute.
    Replaced with the actual root cause (Chrome launch flags +
    @sparticuz/chromium libs in the handler ZIP) and the actual
    remediation: rebuild + redeploy via `lambda deploy` (which
    always rebuilds the ZIP). The composition-attribute story
    would have sent users editing the wrong file entirely.

  - Added a `sites create` subsection under Path 1 so adopters
    running tight inner loops know how to reuse a project upload
    across many renders instead of re-tarring + re-uploading on
    each call. The CLI surface was first-class but the doc had
    been silent.

  - Added a Warning callout under Path 2 explaining that the SAM
    template's own ReservedConcurrency default is `-1` (unreserved)
    — a reader simplifying the Path 2 example by dropping the
    --parameter-overrides flag would silently switch to unreserved
    concurrency and pay the runaway-Map cost. The warning mirrors
    the cost-shape callout earlier in the page.
2026-05-17 14:08:22 -04:00

253 lines
6.9 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",
"quickstart",
"examples",
"launch-videos"
]
},
{
"group": "Concepts",
"pages": [
"concepts/compositions",
"concepts/data-attributes",
"concepts/variables",
"concepts/frame-adapters",
"concepts/determinism"
]
},
{
"group": "Guides",
"pages": [
"guides/html-in-canvas",
"guides/website-to-video",
"guides/claude-design",
"guides/open-design",
"guides/prompting",
"guides/hyperframes-vs-remotion",
"guides/gsap-animation",
"guides/rendering",
"guides/deploy",
"guides/remove-background",
"guides/hdr",
"guides/4k-rendering",
"guides/performance",
"guides/timeline-editing",
"guides/video-editor-cheatsheet",
"guides/common-mistakes",
"guides/troubleshooting"
]
}
]
},
{
"tab": "Catalog",
"groups": [
{
"group": "HTML-in-Canvas",
"pages": [
"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": "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"
]
},
{
"group": "Effects",
"pages": [
"catalog/components/grain-overlay",
"catalog/components/grid-pixelate-wipe",
"catalog/components/shimmer-sweep",
"catalog/components/texture-mask-text",
"catalog/components/vignette"
]
},
{
"group": "Blocks",
"pages": [
"catalog/blocks/flowchart",
"catalog/blocks/logo-outro"
]
}
]
},
{
"tab": "Packages",
"groups": [
{
"group": "Packages",
"pages": [
"packages/core",
"packages/engine",
"packages/player",
"packages/producer",
"packages/studio",
"packages/cli"
]
},
{
"group": "Deploy",
"pages": [
"deploy/aws-lambda"
]
}
]
},
{
"tab": "Reference",
"groups": [
{
"group": "Reference",
"pages": [
"reference/html-schema"
]
},
{
"group": "Contributing",
"pages": [
"contributing",
"contributing/catalog",
"contributing/release-channels",
"contributing/testing-local-changes",
"contributing/studio-manual-dom-editing"
]
},
{
"group": "Community",
"pages": [
"community/adopters"
]
}
]
}
]
},
"footer": {
"socials": {
"github": "https://github.com/heygen-com/hyperframes"
}
}
}