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).
Log in or sign up for Devpost to join the conversation.