FeatureFlow
Real-time Baseline compatibility checking for CSS and HTML features directly in VS Code
FeatureFlow eliminates the "compatibility tax" by bringing official Baseline adoption data from the web-features package directly into your editor. Stop context-switching to MDN or Can I Use—code with confidence and stay in the flow.
Features
Real-Time Baseline Linting
As you type CSS or HTML, FeatureFlow provides immediate visual feedback for features that aren't yet widely available. Configurable to check against "Newly Available" or "Widely Available" Baseline status.

On-Hover Compatibility Status
Hover over any CSS property or HTML element to see:
- Current Baseline status (Widely Available, Newly Available, or Limited)
- When the feature became available
- Direct links to MDN documentation and Can I Use data

Project Compatibility Reports
Generate comprehensive compatibility reports in Markdown or JSON format that scan your entire project and list all non-Baseline features with their locations.
Perfect for:
- Technical debt assessments
- Planning feature adoption roadmaps
- Team audits before production releases

Getting Started
Installation
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "FeatureFlow"
- Click Install
Usage
FeatureFlow works automatically once installed! It will:
- Lint your CSS, SCSS, LESS, and HTML files in real-time
- Show compatibility information when you hover over features
- Provide quick access to documentation
Generate a Compatibility Report
- Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Type "FeatureFlow: Generate Compatibility Report"
- Choose your preferred format (Markdown or JSON)
- The report will be generated and opened automatically
Configuration
Access settings via File > Preferences > Settings and search for "FeatureFlow"
Available Settings
| Setting |
Default |
Description |
featureflow.baselineLevel |
widely |
Minimum baseline level: widely (recommended for production) or newly (more permissive) |
featureflow.enableDiagnostics |
true |
Enable real-time diagnostics for non-baseline features |
featureflow.showHoverInfo |
true |
Show baseline information on hover |
Example Configuration
{
"featureflow.baselineLevel": "widely",
"featureflow.enableDiagnostics": true,
"featureflow.showHoverInfo": true
}
Supported Features
FeatureFlow currently tracks baseline status for:
CSS Features
- Container Queries (
@container)
:has() pseudo-class
- Cascade Layers (
@layer)
- Subgrid
- CSS Nesting
aspect-ratio property
- Scroll Snap
- And many more...
HTML Elements
<dialog>
<details> and <summary>
<template>
<slot>
- And more...
Use Cases
For Teams Adopting Modern Features
Confidently use newer CSS/HTML features knowing they meet high standards for browser support.
For Projects with Backward Compatibility Requirements
Ensure you don't inadvertently introduce features that will break on supported browsers.
For Educators and Learners
Get real-world context for web features and understand what's safe for production use.
What is Baseline?
Baseline is a unified standard from the Web Platform DX Community Group that identifies when web platform features are safe to use:
- Widely Available: Supported in the current and previous major versions of all major browsers for at least 30 months
- Newly Available: Available in all major browsers but hasn't reached the 30-month threshold yet
Development
Building from Source
# Clone the repository
git clone https://github.com/Prateek-0310/FeatureFlow.git
cd featureflow
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Watch for changes
npm run watch
# Package the extension
npm run package
Project Structure
featureflow/
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── diagnostics.ts # Diagnostic provider
│ ├── hoverProvider.ts # Hover information provider
│ ├── reportGenerator.ts # Report generation logic
│ └── webFeaturesLoader.ts # Web features data loader
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
└── README.md # This file
🤝 Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Adding New Features
The extension uses the web-features npm package. To add support for additional features:
- Update the feature mappings in
webFeaturesLoader.ts
- Add detection patterns in
diagnostics.ts
- Test thoroughly with sample CSS/HTML files
License
MIT License - see LICENSE file for details
Acknowledgments
- Built on top of the web-features project
- Baseline initiative by the Web Platform DX Community Group
- Inspired by the need to reduce context-switching in modern web development
Support
Future Vision
We're just getting started! Here's what's on the roadmap:
Cross-IDE Support
Bringing FeatureFlow to other popular development environments:
- IntelliJ IDEA / WebStorm
- Sublime Text
- Atom
- Vim/Neovim plugins
JavaScript Feature Support
Extending beyond CSS and HTML to cover:
- Modern JavaScript syntax (optional chaining, nullish coalescing, etc.)
- Web APIs (Service Workers, WebRTC, Web Components)
- Browser-specific APIs with Baseline tracking
- ECMAScript proposal stages
Enforce compatibility standards at build time:
- Webpack Plugin: Fail builds when non-Baseline features are detected
- Rollup Plugin: Integrate baseline checks into your build pipeline
- Vite Plugin: Real-time compatibility validation during development
- ESLint Plugin: Add baseline checking to your linting workflow
- CI/CD integration for automated compatibility audits
We believe in the power of open source:
- Open Contribution Model: All features welcome, from bug fixes to major enhancements
- Community Feature Requests: Vote on and suggest new capabilities
- Plugin Ecosystem: Allow third-party extensions and custom rule sets
- Localization: Support for multiple languages and regional browser requirements
- Custom Baseline Profiles: Define your own compatibility targets (e.g., "IE11+", "Modern Evergreen")
Advanced Features
- AI-Powered Polyfill Suggestions: Automatically recommend and insert appropriate polyfills
- Performance Impact Analysis: Show the performance implications of using newer features
- Automatic Feature Fallbacks: Generate fallback code for unsupported browsers
- Team Collaboration: Share baseline profiles and reports across teams
- Historical Tracking: Monitor how your project's baseline coverage evolves over time
Get Involved
Want to help shape the future of FeatureFlow? We'd love your input!
Stay in the flow with FeatureFlow! 🌊