Inspiration

The Hackathon called for tools that utilized Baseline, ensuring it was "integrated everywhere." One of the best ways to achieve this is to integrate it into CI workflows that can be widely used, so that the code committed to GitHub is always compliant. This project turns it into an actionable guardrail, echoing Interop 2025's push for unified features .

What it does

Baseline Guard scans your codebase for web features against Baseline statuses, flagging low/newly-available ones (e.g., content-visibility in CSS) while whitelisting false positives like Node's __dirname. It generates reports and integrates into GitHub Actions for automated PR checks—ensuring "widely" compatible code ships first.

How we built it

Started with the hackathon rules: Integrate web-features/data.json for compliance checks. Used Node.js for the core script (index.js), parsing JS/TS via Acorn and walking ASTs with acorn-walk to detect identifiers like "popover". For CSS, plugged in PostCSS + doiuse with configurable browsers. Config via JSON for flexibility. Deployed as a GitHub Action YAML. Iterated with test files (pass/fail demos) to verify against 2025 baselines (e.g., Float16Array as low since April ).

Accomplishments that we're proud of

Seamless Baseline integration in under 500 LOC, with zero false positives on whitelisted Node globals. Proud of the HTML reports—judges can go through violations like a dashboard.

What we learned

Baseline's date-based logic (e.g., high if $low_date + 30 months$) teaches precise stability tracking—better than caniuse's vague flags. Learned doiuse's limits on "defaults" browsers. Also, AST walking reveals how much "unknown" code defaults to compliant, reducing alert fatigue.

What's next for Baseline Guard

VS Code extension for real-time scanning. Multi-baseline support (e.g., year targets like 2023).

Built With

Share this project:

Updates

Submission history