Adoption of Bootstrap design

I’m working on a State of the Web episode about design and pulling stats for the popularity of design systems like Bootstrap. Here’s the analysis:

  SUBSTR(_TABLE_SUFFIX, 0, 10) AS date,
  IF(ENDS_WITH(_TABLE_SUFFIX, 'desktop'), 'desktop', 'mobile') AS client,
  SUM(IF(app = 'Bootstrap', 1, 0)) AS urls,
  ROUND(SUM(IF(app = 'Bootstrap', 1, 0)) / COUNT(DISTINCT url), 4) AS pct

Raw results

As a percent of all pages tested:


Absolute count of pages detected with Bootstrap:


So until 2018, our Alexa websites were increasingly adoption Bootstrap. Then when we switched to CrUX, we starting looking at a wider and distinctly different population and the adoption rate dropped.

As of today, Bootstrap is detected on nearly a million websites, representing ~25% of the web!

1 Like

How did you get to the last statement in this post? There’s over 1.5 billion websites active online right now and 1 million websites doesn’t represent 25%

1 Like

Weclome DeanoLingardo! :slight_smile:

If you consider the URLs in the HTTPArchive dataset to be a representative sample of the web and you find that 25% of those URLs have Bootstrap, then it’s a reasonable extrapolation that ~25% of the web uses Bootstrap.

There’s another argument to be made here about the percentage of web traffic that HTTPArchive examines that uses Bootstrap which might be a separate interesting question, but I’m not sure that’s what rviscomi was referring to in this case.

1 Like

What @patrickhulce said!

The second to last image shows the relative percent, which we can extrapolate to the entire web, assuming that our sample set is representative (I believe it is).

@rviscomi When you say the data is representative of the web, is it a representative sampling of all sites, giving equal weight to obscure abandoned sites as to the most popular active sites today? Or is it a representative sampling of page loads?

Reason: I’d like to look at, eg, Bootstrap usage as a percent of page loads, not as a percent of urls, in case the top sites are very different from the long tail of the web. Does that make sense?

Yes, I believe equal weight is given to all sites. If you are interested in weighting by domain polularity, you could join to httparchive.urls.20170315 and use the Alexa_domain field as a rank.


Here’s an example of joining to that Alexa data: Getting domain rank with the new rank-less Chrome UX Report corpus