Nextra: why a documentation site falls apart as a product grows
Documentation grows along with the product, but a hand-rolled static site does not. First a section describing the API appears, then guides for each version, then dozens of pages that someone maintains by hand.
After a few releases, the documentation structure stops matching reality: some pages describe outdated behavior, some link to sections that have already been moved or renamed.
Nextra addresses exactly this class of breakage, because here documentation is files in a repository, not separate markup that has to be synchronized by hand.
The first thing to break is documentation versioning. When support for older versions is handled by copying folders, an edit in the current branch does not make it to the previous one, and a user on an older version reads the wrong request format.
In Nextra, versions are separate content sets sharing a common template, so a new page appears in the right branch instead of spreading across copies. Version desynchronization stops being a "don't forget to fix it in three places" task.
The second source of pain is manual edits in the markup. As soon as a text author digs into the markup to fix a block or add a table, navigation breaks, and with it documentation search.
When pages are written in MDX and the skeleton, menu, and table of contents are assembled from the file structure, text and presentation are separated: the editor edits the content, the template stays untouched.
The third breakage is broken links when sections are moved. A page gets renamed, and dozens of internal links lead nowhere; documentation search then indexes addresses that no longer exist.
If the documentation structure is derived from the file system and links are checked at build time, the divergence is caught before publication, not from readers' complaints. Let's break down how this is addressed in practice.
What Nextra Provides: Build Modes, Navigation, and Search
Nextra builds documentation from MDX files: content and markup live in a single file, and the output is a static site with ready-made navigation and search.
The build is incremental — editing one section rebuilds only the affected pages, so the typical "edit text → preview locally" cycle takes seconds rather than minutes, as with a full rebuild.
Build Modes and MDX Content
Static generation produces ready-made pages that are served from a CDN without server-side rendering on every request. MDX lets you embed live components into documentation text — parameter tables, version switchers, inline examples.
The section author edits a single file and doesn't touch the layout: the page structure, table of contents, and breadcrumbs are built automatically from the file tree.
Navigation and Local Search
Section navigation is defined by file order and metadata — a new page appears in the menu without manually editing templates. Local search indexes content at build time, so it works without an external service and doesn't send requests outside.
The share of broken internal links drops: the build fails with an error on a non-existent anchor rather than serving a 404 in production.
Documentation Theming
The theme and styling are moved into configuration: colors, fonts, logo, dark mode. Components are reused across sections, so a visual edit is made in one place rather than on every page.
| Option | When it fits | Limitations |
|---|---|---|
| Static generation with Nextra | Documentation with versions, attachments, live examples | Requires control over the build and static hosting |
| Hand-coded pages | One-off landing pages, one-time content | Every edit is a developer's job, links are checked manually |
| Ready-made documentation platforms | Quick start without your own infrastructure | Limited theming, tied to someone else's hosting and search |
Nextra covers the typical scenario: the content team edits MDX, the build checks links and structure, and search and navigation update themselves.
How we implement a documentation site: from audit to handover
Implementing a documentation site starts with an audit of what already exists: scattered files in a repository, pages in a wiki, instructions buried in message threads.
At this stage we build a complete map of the materials, flag duplicates and outdated fragments, and record who on the client's team is responsible for each topic. Without this, the section structure will be speculative and will fall apart at the first hundred pages.
Next we build the structure and set up the build so that content is edited in markdown, not in markup. Nextra handles routing and navigation based on the file structure, so adding a section comes down to creating a folder and a file — with no code changes.
- Audit of the current documentation. Inventory of sources, marking duplicates, assessment of content volume and quality.
- Section and version structure. Navigation tree, naming rules, branches for different product versions, a unified glossary of terms.
- Build and search setup. Static generation, local full-text search, code highlighting, build checks on every change.
- Link checking. Automatic run of internal and external links, a report on broken addresses before publication.
- Filling with real content. We migrate working materials, not samples — this immediately shows where the structure does not hold up.
- Review with the client's team. We go through the sections together with those who will continue writing the documentation.
- Project handover. Access, editing guidelines, instructions for adding pages and releasing.
Link and build checks are built into the publication pipeline: a page with a broken link or broken markup simply will not make it to the site. This eliminates a class of errors that usually surface with users and undermine trust in the documentation.
As a result, the client's team gets a repository with a configured build, a section and version structure, editing guidelines, and a clear procedure for releasing updates. Describe your task — we will come back with an estimate and an implementation plan.
How is a documentation generator different from manually laying out sections?
Manual layout of sections holds up only until the documentation starts to grow. While there are a dozen pages, an engineer copies the markup, edits the text, and manually sets links between sections.
As soon as a second version of the product and a branch for legacy releases appear, every edit turns into a walk through all the copies: somewhere the navigation was forgotten to be fixed, somewhere a link to a deleted section remains, somewhere the heading structure has diverged.
Errors are found not at review, but in support — when a client sends a screenshot with a broken link.
A documentation generator flips the scheme: content is stored as structured files with text and markup, while navigation, table of contents, cross-linking, and page assembly are built from this structure automatically.
Nextra works on top of Next.js and accepts sections as MDX — regular markdown with the ability to insert components. Add a file to the directory — it automatically appears in the sidebar, gets into search, and receives correct links. No one edits the layout by hand, so discrepancies between sections cannot physically arise.
Scaling sections stops being a separate project. Versions are moved into parallel directories, and the switcher between them is part of the template, not a set of duplicated pages.
A shared block about authorization or limits is described once and connected where needed: an edit in one file is reflected everywhere it is used.
Documentation maintenance comes down to editing text — the engineer does not touch the markup and does not think about how it will render on the neighboring page.
The cost of the transition is one-time: you need to describe the directory structure, agree on a page template, and migrate the existing content.
After that, every new version and every new section is added predictably, and the build checks links and structure before publication, not after a reader's complaint.
Case: Product documentation with weekly releases
The product shipped updates once a week, but the documentation lagged behind: a section described behavior from two weeks ago, and support was drowning in repetitive requests.
Edits went through a developer — the content editor prepared the text, the engineer manually inserted it into the markup and waited for the nearest release.
Figuring out "where the documentation mentions this parameter" took up to ten minutes, and broken links after renaming pages were only discovered through user complaints.
We moved the documentation to Nextra — a static site generator on Next.js, where sections are written in MDX and live alongside the code in the same repository.
The editor now commits the page themselves, the build checks links and structure at build time rather than in production.
Publishing a section dropped from two days to half an hour, and the number of broken links fell from several dozen to zero — the build simply won't let a page with a non-existent address through.
We addressed search separately: we index content at build time, so suggestions appear instantly and don't depend on an external service. The share of edits requiring a developer dropped to roughly one-fifth — editors handle the rest themselves.
Time to the needed answer fell from ten minutes to one: the user searches by keyword and lands on a specific section instead of paging through a tree.
Nextra was chosen because the documentation lives in the same repository and release cycle as the product: an edit goes to production together with the version, not as a separate stream.
Section maintenance became routine — outdated pages are flagged at build time, and we see what needs updating before a release, not after.
What changed in terms of metrics: section publication time — from two days to half an hour, broken links — from dozens to zero, the share of edits through a developer — down to one-fifth, finding an answer — from ten minutes to one. The release cycle stopped being a bottleneck for documentation.
Doubts before starting: compatibility, migration, rollback, access
Moving to a new documentation engine is almost never a "from scratch" affair: the team already has accumulated pages, nested sections, images, and external links that someone relies on.
So the first technical question is not "what does the template look like," but what will happen to the existing content.
With Nextra, migration happens page by page: the directory structure in the repository mirrors the navigation tree, and pages are transferred in MDX format — regular markdown remains valid, and interactive blocks are added selectively where they are actually needed. Old URLs are preserved through redirect rules, so external links and search results don't break.
What if a rollback is needed? Content and configuration live in the repository, not in an admin panel, so any change is a commit. Rolling back to a previous state takes minutes: we restore the required revision, the build restarts, and the site serves the previous version again. No "database snapshots" that need to be restored separately.
How is access set up? The repository is handed over to the client with configured permissions: separate roles for reading, for editing content, and for changing the build configuration.
We don't remain the only party with full access — the client's team can make edits on their own, and we connect with agreed-upon permissions.
How hard is it to maintain the site without your team?
Nextra is a standard Next.js project, with no proprietary add-ons. Any engineer familiar with this stack will understand the structure within a couple of days: the navigation configuration is described declaratively, and pages are regular files in directories.
We hand over documentation on building, publishing, and typical edits so that maintenance doesn't depend on us.
The client receives:
- project configuration: build, navigation, search, and redirect rule settings;
- a documentation section map describing where and how to add new pages;
- publishing rules: how an edit reaches the site and who approves it;
- configured repository access rights for team roles;
- a change rollback procedure with step-by-step instructions;
- support documentation: typical tasks, common build errors, extension points.
Describe your task — we'll come back with an estimate and a plan: we'll review the current documentation, propose a section structure and a migration order without downtime.
Timeline of documentation site implementation stages
The timeline does not depend on the volume of text, but on how much time is spent on approving the structure and on connecting to existing content sources.
That is why the plan is broken down so that each stage ends with a verifiable result: after it, it is clear whether we are moving forward or something needs to be clarified.
| Stage | What happens | Approximate timeline |
|---|---|---|
| Audit | We review the current documentation, sources (repositories, wikis, files), reader roles, and access rights | 2–4 days |
| Schema | We design the section tree, navigation, search, versioning rules, and drafts | 3–5 days |
| Setup | We set up the build on Nextra, connect MDX components, the theme, search, and auto-deploy from the repository | 1–2 weeks |
| Content filling | We migrate and structure the content, set up link checks and builds on every commit | 1–3 weeks |
| Verification | We test navigation, search, mobile rendering, build speed, and access permissions | 3–5 days |
| Handover | We hand over the repository, configurations, instructions for adding pages, and the update policy | 2–3 days |
Content filling takes the longest — it depends on how ready the source content is and who on the client's side confirms the wording. The technical part is predictable: the build, search, and deploy are configured once and then work without manual actions.
Stages can run in parallel: while the structure is being approved, engineers are already preparing the build and theme.
This shortens the overall timeline but does not affect quality — verification and handover strictly follow content filling, otherwise the documentation would go to production with broken links.
Describe your task — we will come back with an estimate and a plan tailored to your documentation volume and current stack.







