docs: refactor documentation around user workflows - #2867
Draft
ukimsanov wants to merge 55 commits into
Draft
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
…t-refactor-sync # Conflicts: # docs/docs.json # docs/guides/feedback.mdx # docs/weekly-updates.mdx
…nders images My first fix was based on a wrong diagnosis. Prose width was not the problem: Mintlify wraps every image in its zoom component, span[data-rmiz] > span[data-rmiz-content] > picture.contents > img, so the width I put on a surrounding div was absorbed by that wrapper and the image still rendered full width with the card's text pushed out of view. Reading the served markup also showed the build rewrites Tailwind classes into a mint-* namespace and drops what it does not recognise, which is why object-right never appeared in the output at all. The thumbnail now uses an hf-peek class in custom.css, which collapses the zoom wrapper and sizes the box directly. Custom classes survive the rewrite; utilities are not dependable for anything load-bearing. Both findings are in AGENTS.md, including the note that videos are not wrapped - which is why the identical card on the quickstart worked with a video and failed with an image.
All eight guides opened with prose and contained no images and no video, which is the main reason the pages read flat: they are the destination of the "I need a specific thing" journey, and they never showed what the thing looks like. Six now open with a real scene playing, captioned with exactly what the clip is rather than implying it is a finished film. The previews were re-encoded rather than reused as-is. The catalog originals run 127KB to 1.3MB and these autoplay on load, so each is trimmed to its most legible five seconds at 960x540 and lands between 16KB and 90KB on the docs CDN. music-to-video and slideshow are deliberately still without media. Nothing in the catalog honestly represents a beat-synced cut or a navigable deck, and a decorative stand-in on a page about a specific output would be a small lie. Those two need a purpose-rendered clip each.
The front page was showing a film I generated, and it was the weakest asset in the project: silent, slow, and stylistically plain. Meanwhile roughly 260 finished films made with HyperFrames sat in ~/Downloads/hyperframes-launches and ~/Desktop/hyperframes-launches, most at 1080p with audio, and the good ones were only reachable from /examples. The hero is now the website-launch film - 38s, 1080p, real audio at -14.3 dB. It shows the whole loop in one take: a site captured, FRAME.md, STORYBOARD.md and SCRIPT.md written, the film rendered. It autoplays muted and unmutes on demand. "What can it make?" was four five-second catalog snippets. It is now six finished films: colour grading, one shoot cut many ways, a music-driven edit, a pull request explained, timeline editing, and a personalised year-in-review. Each tile is a silent six-second loop of 37-241KB; selecting one loads the full film with sound, so the 1-8MB files are only fetched when someone asks for them. Tile moments were chosen by looking at them at the 320px they actually render: the first cuts of the music and pull-request films were an empty waveform and an illegible terminal, so both were re-cut to the sections that read. Removed the silent film I had committed, now that nothing references it.
The wall compiled but rendered zero tiles. Reading the page bundle showed why: Mintlify keeps only the exported component out of a snippet file, so the CDN base and the film list I had declared above it never made it into the compiled output - `const FILMS` and `const CDN` appear zero times in the bundle while `FILMS.map` is still there. The component threw on an undefined reference, React's error boundary swallowed it, and the section rendered empty with no console error to point at it. Both constants now live inside the component. Recorded the trap in AGENTS.md, since a blank snippet with a clean console gives no clue on its own.
Labelled 56s, but the file I encoded and uploaded measures 47.6s - there are several variants of that marketing film on disk and the 1920x1080 one I selected is the shorter cut. Every other label matches its file to the nearest second.
The hero was an 11MB export of the website-launch film. The finished master is 36.3s at 8.15 Mbps, so the page now serves a high-quality encode made from that instead - 9MB at CRF 21, which is oversampled for a column under 900px wide. The colour-grading film was also being derived from a 1080p variant while a 3840x2160 60fps master sat on disk. Its tile and full film are now encoded from that master. Both are published under versioned filenames. The first upload set max-age=31536000, immutable, so the CDN edge kept serving the old bytes when I replaced the objects in place - the corrected files measured identical to the originals over HTTP until they were renamed. The component takes optional tile and full overrides per film so a single asset can be revised this way without renaming the rest. Worth recording plainly: none of these films were rendered for the docs. They are existing renders, transcoded down for the web, so each one's quality is capped by whatever file already existed. Re-rendering from the launch projects at 4K60 would raise that ceiling.
The guides were previewing five-second catalog snippets - a chart block standing in for an explainer, a caption component standing in for a recut. Each now opens with a cut from an actual film made through that workflow: the Huly launch for product videos, a SpaceX valuation piece for explainers, one shoot cut three ways for captions and recuts, a real pull request for PR videos, a per-listener year in review for motion graphics, a beat-analysed track for music, and a timeline-editing film for the custom path. Captions name what each clip is from instead of implying it is a finished film for that page. music-to-video had no media at all and now does, because the honest asset existed all along: a 90-second film built from an analysed track. slideshow still has none. Nothing on disk honestly shows a navigable deck, and a stand-in on a page about that specific output would be a small lie. Re-rendering these projects was tried first and rejected. Fresh renders regressed: variables-launch lost its centre creator clip and rendered white where footage should be, and the pull-request and cloud films came out two to three seconds short. The projects reference media that has moved since they were made, so the existing exports are the better source until each project's paths are repaired.
# Conflicts: # docs/concepts/compositions.mdx # docs/contributing.mdx # docs/docs.json # docs/guides/antigravity.mdx # docs/guides/claude-design.mdx # docs/guides/copilot-cli.mdx # docs/guides/mcp.mdx # docs/guides/open-design.mdx # docs/guides/pipeline.mdx # docs/guides/prompting.mdx # docs/guides/skills.mdx # docs/guides/video-editor-cheatsheet.mdx # docs/packages/studio.mdx # docs/quickstart.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
maindocumentation, including weekly updates and the new media and design guides.Why
The docs had grown around repository structure instead of user needs, omitted Studio almost entirely, and included stale or contradictory guidance. This refactor makes common tasks easier to understand, find, and share with users.
Impact
Checks
mint validatemint broken-linksbunx oxlint scripts/generate-catalog-pages.ts research/docs-refactor/rebuild-navigation.mjsgit diff --checkThe sync merge encountered existing
mainrepository-wide hook failures (Studio file-size and current typecheck/debt findings). Those inherited checks were bypassed only for the merge commit after confirming this PR introduces no non-doc package changes.This is a draft so the Mintlify preview and repository checks can be reviewed before merging.