Adaptive content at scale

I led the design of GitBook’s adaptive content feature, turning one-size-fits-all documentation into tailored experiences designed for each audience.

The challenge

GitBook docs had always been one-size-fits-all which was limiting for enterprise customers who needed to show different content to different users.

These customers wanted to hide pages, swap examples, or localise content without duplicating entire sites. The solution had to balance enterprise power with everyday usability.

For example, one customer preparing a German-only launch needed to show new product docs exclusively to that market. Without adaptive content, their only option was to spin up an entirely separate site, doubling the work and duplicating effort.

What I did

  • Stakeholder interviews
  • Wireframes
  • Prototypes
  • Interface design
Slack conversation with customer message: Sally Richards requests a way to tailor docs for specific users without duplicating the whole site. The message has reactions and 18 replies.
Client
GitBook
Product
GitBook
Feature
Adaptive Content
Tools
Figma

Switching perspectives

I redesigned the editor header to add a segment switcher, letting authors preview docs exactly as each audience would see them.

Selecting a segment (e.g. beta users) instantly updated the page to show the personalised view. This gave authors confidence in their setup, making adaptive docs predictable before publishing and cutting down nervous “publish and pray” workflows.

GitBook draft page in the editor. Header shows a dropdown for selecting experiences and a preview of the page beginning with “Congrats, you signed up…

Conditions at every level

Conditions could apply to pages, groups, or individual blocks — giving authors control over how far to personalise, from light tweaks to full forks.

This avoided messy duplication while keeping the end-user’s view clean and relevant. For teams managing multiple regions or customer tiers, it meant one doc base could flex to cover all use cases without fracturing into separate sites.

GitBook editor showing conditional content block. Tooltip explains the block is only visible to users in Germany or the United Kingdom.
GitBook test data editor showing a “Beta Azure users” segment. JSON input defines isBetaUser as true and products as Azure, with a prompt to fix property key syntax.

Building the condition builder

The builder was key, letting authors define who sees what. I designed it to feel approachable while handling complexity under the hood.

Rather than build a second drag-and-drop query system, we went with one consistent, code-based flow — softened with inline popovers, error handling that suggested fixes, and a test mode so that users could validate rules with real data.

GitBook conditional builder showing a rule: only display the page if visitor claims include Okta and early access user is true. Buttons to generate with AI or test the condition appear below.

Testing with sample data

I added test segments so authors could simulate conditions with JSON snippets or pick from auto-detected segments.

This made previews reliable — no guesswork and no need to publish just to check. Authors could even test tricky edge cases, saving support teams from “why can’t I see this?” tickets later.

Outcome

The feature launched in July 2025 on GitBook’s enterprise tier. For authors, it turned a once-impossible request into a core workflow. For end-users, it meant docs that finally felt written for them.

The design struck a balance: flexible enough for engineers, approachable enough for less technical teams.

We've been using adaptive content since last week, and it's already proved useful in customizing docs for our beta users.

Gareth Wilson
Bucket – Product Marketing Manager
GitBook condition builder showing a rule: only display the page if visitor claims include Azure and beta user is false. A sample JSON object with user data is displayed below.