Boneyard Tools

Browserslist Generator

Choose a starting preset, then layer on queries like last N versions or a minimum global usage percentage, and toggle off dead or legacy browsers. The tool assembles the queries in a stable order, removes duplicates, and shows a ready to save .browserslistrc that Babel, Autoprefixer, PostCSS, and modern bundlers all read.

How to generate a .browserslistrc

  1. Pick a Preset from the dropdown: defaults, modern, or wide.
  2. Tick 'Last' and set a version count to add a 'last N versions' query.
  3. Tick 'Min coverage' and set a percentage to add a '> P%' global usage query.
  4. Toggle the 'not dead' and 'not ie 11' checkboxes to exclude those browsers.
  5. Add any extra queries in the custom box, one per line, then Copy or Download the file.

Examples

Modern preset with a coverage floor and no IE

preset: modern, min coverage 0.5%, not ie 11
last 2 versions
not dead
> 0.5%
not ie 11

Defaults preset plus last 3 versions and not dead

preset: defaults, last 3 versions, not dead
defaults
last 3 versions
not dead

Wide preset on its own

preset: wide, no other options
> 0.2%
not dead
not ie 11

Frequently asked questions

What is Browserslist used for?

It is a shared way to declare which browsers a project supports. Babel, Autoprefixer, PostCSS, esbuild, Vite, and many other tools read the same query list to decide which transforms, prefixes, and polyfills to emit.

What do the three presets mean?

Defaults inserts Browserslist's own 'defaults' query. Modern seeds 'last 2 versions' and 'not dead' for recent, maintained browsers. Wide starts from '> 0.2%', 'not dead', and 'not ie 11' to reach a broad, still-current audience.

What does a query like > 0.5% mean?

It selects browser versions used by at least that share of global traffic, based on Can I Use statistics. A smaller percentage widens support to older or rarer browsers; a larger one narrows it.

How are the lines ordered, and are duplicates removed?

Queries are assembled in a fixed order: preset lines first, then last N versions, then the coverage query, then not dead, then not ie 11, then your custom lines. Exact duplicates are dropped, keeping the first occurrence.

What happens if my percentage or version count is invalid?

A coverage percent must be between 0 and 100 and a version count must be a whole number of at least 1. An out-of-range value produces a comment line describing the error instead of a config, so nothing broken is copied.

Can I add queries the tool has no toggle for?

Yes. Type them in the custom box, one per line, and they are appended verbatim after trimming. This is how you add things like 'Firefox ESR', 'maintained node versions', or 'iOS >= 15'.

Where do I put the generated file?

Save it as .browserslistrc in your project root, next to package.json. Alternatively you can move the same lines into a 'browserslist' key in package.json; the tool gives you the standalone file form.

Does this validate against real browser data?

No. It builds the query text and checks the numeric ranges, but it does not run Browserslist against the caniuse database, so it will not tell you how many browsers a query actually matches today.

Is my configuration private?

Yes. The file is generated entirely in your browser and nothing is uploaded, so your target list stays on your machine.

Learn more

Related tools