Inspiration
I was tired of the endless cycle every web developer faces: "Is this feature safe to use yet?" The constant context-switching between MDN, CanIUse, and Stack Overflow was draining. I'd spend (45) minutes researching features like Container Queries, only to find conflicting browser support information.
When I discovered the Baseline initiative - a joint effort by Google, Microsoft, Apple, and Mozilla to provide authoritative compatibility data - I realized: why should this critical information live outside our development environment? The solution had to be right where developers code: in VSCode.
What it does
Baseline Pro is a VSCode extension that gives instant answers about web feature compatibility. It:
🔍 Detects 45+ modern web features in JavaScript, TypeScript, HTML, and CSS
🎯 Shows real-time visual feedback with color-coded underlines:
💚 Green = Widely available & production-ready
💛 Yellow = Newly baseline & safe for modern apps
❤️ Red = Not baseline - avoid or provide fallbacks
📊 Calculates Baseline Score ((0-100%)) for your project
📋 Generates comprehensive reports with actionable recommendations
🌐 Provides browser support data for Chrome, Firefox, Safari, and Edge
How we built it
Technical Architecture:
text
VSCode Extension API (TypeScript)
↓
Baseline Analysis Engine
↓
web-features@2.48.0 (Official Data)
↓
Regex Pattern Detection
↓
Real-time Developer Feedback
Key Components:
Detection Engine with regex patterns:
typescript const patterns = new Map([ ['optional-chaining', /\?./g], ['nullish-coalescing', /\?\?/g], ['container-queries', /container-type|@container/g] ]); Scoring Algorithm:
Baseline Score
W × 3 + N × 2 + L × 1 T × 3 × 100 Baseline Score= T×3 W×3+N×2+L×1 ×100 Where (W) = Widely available, (N) = Newly available, (L) = Limited support, (T) = Total features
VSCode Integration:
Tree views for feature listing
Diagnostic collections for underlines
Commands for analysis and reporting
Status bar for quick score visibility
Challenges we ran into
- TypeScript Type System Conflicts:
Official web-features package returned boolean values while our interface expected literal false
Solution: Enhanced type safety with union types
- VSCode Extension Learning Curve:
Understanding activation events and lifecycle management
Solution: Deep dive into VSCode Extension API documentation
- Performance Optimization:
Naive implementation scanned entire files on every keystroke
Solution: Implemented debouncing and efficient data structures for (O(1)) lookups
- Regex Pattern Accuracy:
Balancing comprehensive detection with false positives
Solution: Iterative testing and refinement of pattern matching
Accomplishments that we're proud of
First VSCode extension integrating official Baseline data
Real impact - actually stopped myself from switching tabs to check compatibility
Professional UX with intuitive color-coded feedback system
Mathematical scoring that quantitatively measures project health
Production-ready architecture that's extensible and maintainable
Most proud moment: Seeing that first green underline appear instantly as I typed ?. and knowing we'd created something truly useful.
What we learned
Technical Insights:
VSCode Extension API is powerful but has a steep learning curve
TypeScript generics and advanced types are essential for robust applications
Regex optimization requires careful balancing of precision and performance
Product Insights:
Developer experience trumps features - fast feedback beats comprehensive analysis
Progressive disclosure works best - simple info first, details on demand
Context is king - inline diagnostics are more valuable than separate reports
Team Insights:
Documentation is crucial when working with rapidly evolving standards
Community standards like Baseline make interoperability possible
Open source collaboration requires clear communication and version management
What's next for Baseline Pro
Short-term (Next 3 months):
Expand feature detection to 100+ web features
Add AST-based parsing for more accurate detection
Implement team dashboard for project analytics
Create CI/CD integration for build pipeline checks
Medium-term (Next 6 months):
AI-powered suggestions for code modernization
Polyfill recommendations based on target browsers
Custom rule creation for team-specific standards
VS Marketplace publication for easy installation
Long-term vision:
Multi-editor support (WebStorm, Sublime, etc.)
Enterprise features for large organizations
Machine learning to predict feature adoption curves
Global compatibility database with real usage statistics
The ultimate goal: Make web standards accessibility as fundamental as syntax highlighting in every developer's workflow.
Built With
- api
- browser
- commands
- compat
- css
- data
- diagnostics
- extension
- git
- javascript
- json
- markdown
- mdn
- node.js
- npm
- provider
- regex
- tree
- typescript
- vscode
- web-features@2.48.0
- webview
Log in or sign up for Devpost to join the conversation.