Skip to content

docs: product-based sidebar sections, and go full width (alternative to #161) - #164

Open
anthonyd-bruno wants to merge 6 commits into
mainfrom
docs/restructure-by-product-sidebar
Open

docs: product-based sidebar sections, and go full width (alternative to #161)#164
anthonyd-bruno wants to merge 6 commits into
mainfrom
docs/restructure-by-product-sidebar

Conversation

@anthonyd-bruno

Copy link
Copy Markdown
Collaborator

Supersedes #162 — identical content, reopened from an in-repo branch so the Mintlify preview deployment builds.

Why

Same feedback as #161: the docs are hard to navigate — it isn't easy to find what you need from the sidebar, and it isn't easy to tell what the different parts of Bruno actually are. The v4 sidebar was a single flat list of six generic buckets (Getting Started, Core Features, API Tools, Developer Tools, License Management, Advanced Guides) that mixed the products together.

This PR is the sidebar alternative to #161. Same product taxonomy, different presentation: instead of Mintlify header tabs, the products are top-level sidebar sections, so every product stays visible in one scrollable sidebar and nothing hides behind a tab switch. It also goes further than #161 on the second level, flattening the groups inside each section (details below). Review both and keep one. (#160 is a third, independent exploration of the same feedback.)

What changed

1. Sidebar restructured around Bruno's products (docs.json)

The six buckets are replaced with one top-level sidebar section per product, plus three sections for content that doesn't belong to a single product:

Get Started | API Client | CLI | API Docs | VS Code Extension | Reference | Licensing

The four product sections are the spine. Get Started is the cross-product onboarding path, Reference holds the genuinely shared material (Bru Lang, OpenCollection YAML, converters), and Licensing is orthogonal to all four. Mintlify renders each top-level group as a section header with its icon, with the groups inside it collapsing.

Moves shared with #161:

  • CLI is promoted from a subgroup to a top-level section (it was a 10-item flat list under "Developer Tools").
  • advanced-guides/visualize moves under response data, retiring the one-page "Advanced Guides" group.
  • get-started/configure/* becomes "Settings" under API Client.

Re-cuts specific to this PR — the section header already spends one sidebar level, so umbrella groups and single-page accordions were pushing real content three and four expandable levels down:

  • "Send Requests" splits in two: "Send Requests" (protocols, cookies, history) and "Response Data" (response data, response examples, visualize). Every response page gets one level shallower.
  • "Tests & Scripts" splits into "Testing" and "Scripting". Script pages sat four levels deep (API Client → Tests & Scripts → Scripts → Request → page); the umbrella added a level without adding meaning.
  • Cookies moves under Send Requests. The page opens with "add, send, view, and delete request cookies" and is almost entirely about configuring outgoing cookies and CLI cookie forwarding — it's request-side content.
  • Git provider pages unify. gitlab, bitbucket, and azure-devops sat loose while github hid inside a "Git Providers" subgroup — the same kind of content at two different levels. All five now live in one "Providers" subgroup under "Git & Collaboration".
  • Thin accordions removed. Licensing's one-page "End Users" group is gone (activate-license is a loose page), and the CLI's entry path (overview, quick-start, installation) sits loose above its topic groups instead of behind a two-page "Install & Quick Start" accordion.

2. New landing pages (api-client/overview.mdx, introduction/getting-started.mdx)

  • api-client/overview.mdx (new) gives the API Client section a landing page and cross-links the other three products.
  • The Getting Started page now leads with a "Core products" card grid — the four products, each with a one-line description and a link to its section, using the same icons as the sidebar. Its old intro paragraph became description frontmatter (renders as the page subtitle), and the duplicate "Bruno CLI" task card was replaced with "Authentication".

3. The docs shell is full width (style.css, new file)

Mintlify centres the whole shell inside a max-w-8xl (92rem / 1472px) box, leaving the rest of a wide viewport as dead margins. Two elements carry that cap — the navbar rail and the wrapper around the sidebar/content/TOC — and both are released; releasing only one would put the navbar on a different grid from the body. docs.json has no content-width option, and the native escape hatches (per-page frontmatter mode: "wide" / "custom") drop chrome we want to keep. Mintlify auto-injects a root style.css, the same mechanism that already loads reo.js and webinar-card.js. Unlike #161, no tab-row CSS is needed — there is no tab row.

No files were moved and no page paths changed, so every existing URL still resolves and no redirects are needed. (send-requests/res-data-cookies/ is a filesystem detail, not a nav constraint.)

Verification

  • Nothing lost. All 196 pages in the current main v4 nav are present, each exactly once, plus the new api-client/overview (197 total). Checked mechanically by a generator script that diffs the nav inventory against main and refuses to write on any mismatch.
  • mint validate passes; mint broken-links output is byte-identical to main (the same 62 pre-existing broken links in 38 files — none new, measured on a clean worktree of main with the same mint version).
  • Rendered against mint dev: all seven sections appear as sidebar headers with their icons, the new group labels render, the old ones appear only in the untouched v3 legacy nav, and both max-w-8xl carriers match the CSS.
  • Every icon resolves on Mintlify's Font Awesome CDN. Note for docs: restructure navigation around Bruno's products, and go full width #161: app-window is a Lucide name and 403s on that CDN — this PR uses window-maximize for the API Client icon.
  • v2 and v3 navigation are byte-identical to main — legacy version snapshots, deliberately untouched.
  • Current main (the SSE docs, Server Side Events  #156) is merged in, with the SSE page slotted into the REST group at its upstream position.

🤖 Generated with Claude Code

anthonyd-bruno and others added 6 commits August 5, 2026 11:22
The v4 sidebar was six generic buckets (Getting Started, Core Features,
API Tools, Developer Tools, License Management, Advanced Guides) that mix
products together: the CLI, the VS Code extension, and API documentation
all lived under "Developer Tools" next to Bru Lang and the converters, so
the sidebar gave no indication of what the separate parts of Bruno are.

Replace those buckets with one top-level sidebar section per product,
plus sections for the pages that do not belong to a single product:

  Get Started | API Client | CLI | API Docs | VS Code Extension
  | Reference | Licensing

Notable moves:
- CLI is promoted from a subgroup of "Developer Tools" to a top-level
  section, split into Overview / Install & Quick Start / Run Collections
  / Configuration / CI/CD.
- API Docs and the VS Code extension become top-level sections. API Docs
  keeps its OpenAPI subgroup and gains a "Write Documentation" subgroup.
- Bru Lang, OpenCollection YAML and Converters move to "Reference" —
  shared formats and tooling rather than one product's features.
- "Git Providers" folds into "Git & Collaboration" under API Client.
- advanced-guides/visualize moves under Response Data & Cookies, which is
  what it documents, retiring the one-page "Advanced Guides" bucket.
- get-started/configure/* becomes "Settings" under API Client.

Add api-client/overview.mdx as the API Client landing page; it also
cross-links the other three products so each part of Bruno is
discoverable from the others.

Mintlify renders these top-level groups as sidebar section headers with
their icons, so all seven products stay visible while their subgroups
collapse. The API Client icon is "window-maximize", not Lucide's
"app-window", which 403s on Mintlify's Font Awesome icon CDN.

No files were moved and no page paths changed, so every existing URL
still resolves and no redirects are needed. All 195 previously navigable
pages remain in the nav, each exactly once. `mint validate` passes and
`mint broken-links` reports the same 62 broken links in 38 files as main
— none new. v2 and v3 navigation are untouched legacy snapshots; the
diff is confined to the v4 block.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Mintlify centres the whole shell — sidebar, article and table of contents
— inside a max-w-8xl (92rem) box with mx-auto, so past that width the box
stops growing and the rest of the viewport becomes equal dead margins.

docs.json has no content-width option, and the native escape hatches are
per-page frontmatter (`mode: "wide"` drops the TOC, `mode: "custom"` drops
the sidebar and the TOC) that would have to be pasted into every .mdx.
So release the cap in CSS instead. Mintlify auto-injects a root style.css
as an inline, unlayered <style>, which is enough to win over the compiled
utilities.

Two divs carry the cap and both are released, or the navbar would sit on a
different grid than the body: the navbar rail (plain `max-w-8xl`) and the
wrapper around #sidebar / #content-area / the TOC (the same cap written
through Mintlify's `mode` peer variants). `[class*="max-w-8xl"]` matches
both without depending on where either sits in the tree.

#content-area is the only flex-grow child of the second carrier, so it
absorbs the freed width; the sidebar's and TOC's own widths are untouched.
Below the width where the cap binds the rule changes nothing, so no media
query is needed. The tradeoffs — longer line length, inflating card grids,
trailing gutters next to images and narrow tables — are documented inline
with the dial to reach for if long measure becomes the complaint.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Getting Started page opened with two starter-guide cards and a grab
bag of task links, but never said what the parts of Bruno are — the same
gap the product-shaped sidebar restructure addresses. Lead the page with
a "Core products" card grid instead: API Client, CLI, API Docs, and
VS Code Extension, each with a one-line description and a link to its
section's overview page, using the same icons as their sidebar sections.

Supporting cleanup so the page reads as one coherent flow:
- Move the intro paragraph into `description` frontmatter so it renders
  as a subtitle under the page title (a convention the bru-cli pages
  already use).
- Group the existing starter-guide and migration cards under a "Quick
  starts" heading, since cards no longer sit directly under the intro.
- In "Start with a task", replace the "Bruno CLI" card — now redundant
  with the CLI product card and the CLI Starter Guide card — with an
  "Authentication" card, keeping Scripting and Variables.
- "Explore Public Collections" and "Why Bruno?" are unchanged; prettier
  reflowed the footnote markup without changing its rendering.

The heading is "Core products" rather than "Bruno's core products"
because MDX smart-quotes the apostrophe into the anchor slug
(#bruno's-core-products with a curly quote); verified the rendered
anchor is #core-products.

All card links target pages already in the v4 nav. `mint validate`
passes, prettier passes, and `mint broken-links` reports the identical
62 pre-existing broken links as main — none new. The v3 copy of this
page is a legacy snapshot and stays untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Four regroupings, all inside the v4 sidebar sections introduced by the
product restructure. The theme is depth: the section header already
spends one level, so umbrella groups and single-page accordions were
pushing real content three and four expandable levels down.

- Split "Send Requests" into two siblings: "Send Requests" (protocols
  and history) and "Responses & Cookies" (response data, cookies,
  response examples, visualize). Response handling was never really
  "sending requests", and every response page gets one level shallower.

- Replace the "Tests & Scripts" umbrella with sibling groups "Testing"
  (introduction, assertions, Automate Tests) and "Scripting" (the script
  pages with their Request/Response subgroups). The umbrella added a
  level without adding meaning — script pages sat four levels deep
  (API Client > Tests & Scripts > Scripts > Request > page). The
  "Automate Tests" pages move from the umbrella into "Testing".
  The api-client/overview card is retitled "Testing & Scripting" to
  match the new group names.

- Unify the Git provider pages. gitlab, bitbucket, and azure-devops sat
  loose in "Git & Collaboration" while github hid inside a "Git
  Providers" subgroup — the same kind of content at two different
  levels. All five (with the providers overview) now live in one
  "Providers" subgroup, and embed-bruno-collection moves to the end of
  the group.

- Remove two thin accordions. Licensing's "End Users" group held exactly
  one page (activate-license), which is now a loose page under the
  section. The CLI's two-page "Install & Quick Start" group hid the
  entry path behind a click; overview, quick-start, and installation now
  sit loose above the CLI's topic groups.

No files were moved and no page paths changed. All 196 nav pages remain,
each exactly once. `mint validate` passes and `mint broken-links` is
byte-identical to the main baseline (62 pre-existing broken links in 38
files, none new). v2 and v3 navigation untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The cookies page is request-side content: it opens with "add, send,
view, and delete request cookies" and the body is about configuring
cookies that go out with requests (plus CLI cookie forwarding between
requests in collection runs). Inspecting response cookies is one
sentence. So it sits under "Send Requests" now, as a loose page after
the protocol groups and before History.

The remaining group is renamed "Responses & Cookies" -> "Response Data"
(overview, response data, response examples, visualize), and its
overview page is retitled from "Response Data and Cookies" to "Response
Data" to match, with its Cookies section now linking to the cookies
page's new home.

Page paths are unchanged (the res-data-cookies directory name is a
filesystem detail, not a nav constraint), so no redirects are needed.
All 196 nav pages remain, each exactly once. `mint validate` and
prettier pass; `mint broken-links` is byte-identical to the main
baseline (62 pre-existing, none new). v3's copy of these pages is a
legacy snapshot and stays untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…uct-sidebar

The SSE page slots into the v4 REST group after body-data, matching its
upstream placement. Nav inventory is now 197 pages: upstream's 196 plus
api-client/overview.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mintlify

mintlify Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
bruno-docs-main 🟢 Ready View Preview Aug 5, 2026, 5:57 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant