Machine-readable browser compatibility data for Web APIs, CSS, JavaScript, HTML, and other web technologies.
MDN browser-compat-data (BCD) is a machine-readable dataset documenting browser support for web technologies like Web APIs, CSS, JavaScript, and HTML. It provides accurate version numbers and compatibility details to help developers write cross-browser compatible code. The data is used by documentation sites, IDEs, linters, and other tools to surface support information.
Web developers, tooling authors, and documentation maintainers who need reliable browser compatibility data for building, testing, or documenting web features.
BCD is the most authoritative and widely adopted source of web compatibility data, maintained by the MDN community and integrated into major development tools. Its structured schema enables automation and ensures consistency across the ecosystem.
Browser compatibility data for Web technologies as displayed on MDN
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Covers over 15,000 features across Web APIs, CSS, HTML, JavaScript, and more, as documented in the README's extensive package contents.
Data is structured in JSON with a defined schema, enabling easy integration into tools and automated processes, as shown in the installation examples.
Used by major projects like MDN Web Docs, CanIUse, Visual Studio Code, and TypeScript, ensuring reliability and community trust.
Exports generated TypeScript definitions for type-safe usage, making it ideal for modern JavaScript and TypeScript projects.
Continuously updated to reflect browser releases and specification changes, with clear governance and contribution guidelines.
Explicitly does not track custom features from web frameworks (e.g., React, Vue) or corporate runtimes, limiting its use for full-stack development.
Lower-level feature data can change at any time without SemVer guarantees, potentially breaking tools that depend on specific data structures.
Requires different import methods (e.g., import attributes vs assertions) depending on NodeJS or Deno versions, which can be confusing for setup.
Data is updated via package releases, so there might be a delay between browser updates and BCD reflecting them, unlike live services.