The Challenge: Browser Support Guesswork
Managing browser compatibility for over 38,000 enterprise customers across Japan isn't trivial. When Kintone powers critical business operations for over 1.5 million applications daily, every browser support decision matters.
Cybozu, a leading groupware company in Japan, faced a fundamental challenge: How to maintain consistent web standards across products while avoiding the maintenance burden of custom browser support matrixes.
The Old Approach: User-Agent Based Tracking
Before Baseline, Cybozu maintained their own browser support criteria based on access logs and manual version tracking. Their standard was to support browsers covering the top 98% of access logs.
Problems with this approach:
The Security Risk
Supporting outdated browsers doesn't just mean missing out on new features - it's about failing to protect users. Outdated browsers contain known security vulnerabilities. By supporting them based solely on access logs, Cybozu was potentially enabling users to remain vulnerable.
Why Baseline Was the Answer
Baseline provided exactly what Cybozu needed:
1. Externally Maintained, Evolving Criteria
Instead of manually reassessing browser versions every quarter, Baseline provides a moving target maintained by the W3C WebDX Community Group. The criteria automatically evolve with input from browser vendors and standards bodies.
2. Feature-Level Precision
Baseline Widely Available represents web features available for 30+ months across major browsers. This eliminates guesswork - "Can we use CSS container queries?" becomes an instantly answerable question.
3. Security-Conscious by Design
By adopting Baseline Widely Available, Cybozu aligned their support policy with browser vendors' support lifecycles. Browsers that are actively maintained support all Widely Available features while receiving security updates.
Measuring the Impact
Before adoption, Cybozu needed confidence that Baseline would work without significant drawbacks. Using the Google Analytics Baseline Checker tool, they discovered:
98.8% of their users were on Baseline-compatible browsers - actually higher than their previous 98% threshold!
Practical Implementation
Static Analysis with ESLint
Using the eslint-plugin-baseline package, developers get immediate feedback when they attempt to use features outside the Baseline threshold:
`` // .eslintrc.js
module.exports = {
plugins: ['baseline'],
rules: {
'baseline/no-non-baseline-features': ['error', {
available: 'widely'
}]
}
};
javascript
`
Transpiler Configuration
Setting Browserslist to target Baseline ensures transpilers like Babel and bundlers automatically handle compatibility:
` # .browserslistrc
baseline widely available
``
Eliminated Manual Maintenance
The browser update prompt system that previously required manual version updates now simply checks Baseline compatibility. Zero maintenance required.
Key Takeaways
---
> Source Attribution: This content is adapted from the case study "How Cybozu eliminated browser compatibility overhead with Baseline" published on web.dev under the Creative Commons Attribution 4.0 License. Original authors: Sakura Adachi, Yuriko Hirota.