{"id":32483873,"url":"https://github.com/wesleybertipaglia/weblinter","last_synced_at":"2025-10-27T03:43:48.449Z","repository":{"id":318232882,"uuid":"1070446802","full_name":"wesleybertipaglia/weblinter","owner":"wesleybertipaglia","description":"WebLinter is a CLI tool that helps developers detect the use of web features (like CSS properties or HTML elements) that aren’t yet part of the Web Platform Baseline","archived":false,"fork":false,"pushed_at":"2025-10-06T00:26:48.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-06T00:55:55.318Z","etag":null,"topics":["baseline","lint","web"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wesleybertipaglia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-05T23:46:09.000Z","updated_at":"2025-10-06T00:26:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"66420f4c-96e8-4334-8bab-ece738aea2a8","html_url":"https://github.com/wesleybertipaglia/weblinter","commit_stats":null,"previous_names":["wesleybertipaglia/weblinter"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/wesleybertipaglia/weblinter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleybertipaglia%2Fweblinter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleybertipaglia%2Fweblinter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleybertipaglia%2Fweblinter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleybertipaglia%2Fweblinter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wesleybertipaglia","download_url":"https://codeload.github.com/wesleybertipaglia/weblinter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleybertipaglia%2Fweblinter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281211347,"owners_count":26462074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["baseline","lint","web"],"created_at":"2025-10-27T03:43:44.220Z","updated_at":"2025-10-27T03:43:48.437Z","avatar_url":"https://github.com/wesleybertipaglia.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebLinter – Baseline-Aware Feature Checker\n\n**WebLinter** is a CLI tool that helps developers detect the use of web features (like CSS properties or HTML elements) that **aren’t yet part of the [Web Platform Baseline](https://developer.chrome.com/blog/web-platform-baseline/)** — helping ensure broader browser compatibility and fewer surprises in production.\n\n## 🌐 Why WebLinter?\n\nIn the fast-moving world of frontend development, it's easy to use features that are *technically standardized* but still *not universally supported*.\n\nThe **Web Platform Baseline** defines the set of features that are reliably available across all modern browsers — without requiring polyfills or fallback logic.\n\n### ❗ The Problem\n\nYou add a shiny new CSS feature like `backdrop-filter`, it works on your machine, and looks great. But your users on other browsers? Blank screens. Broken layouts. Confusion.\n\n### ✅ The Solution\n\n**WebLinter** scans your codebase, detects features not yet in the Baseline, and alerts you — early. No surprises. No regressions.\n\nIt’s powered by [web-features](https://github.com/web-platform-dx/web-features), the same dataset used by MDN and Chrome DevRel.\n\n## 🔍 Features\n\n* **Baseline-Aware Detection**\n  Flags usage of CSS and HTML features that are not in the Baseline.\n\n* **CSS \u0026 HTML Analysis**\n  Uses **PostCSS** and **Parse5** to deeply parse files for accurate results.\n\n* **Smart File Scanning**\n  Supports custom `paths`, `extensions`, and `exclude` patterns for precise scanning.\n\n* **Caching System**\n  Feature usage data is cached locally, improving performance for repeated runs. Configurable via `cacheDays`.\n\n* **Helpful Warnings**\n  CLI output includes **line numbers**, **context**, and **baseline status** — with both warnings and errors.\n\n## ⚙️ Configuration \u0026 Initialization\n\nThe first time you run:\n\n```bash\nnpx weblinter\n```\n\n**WebLinter will automatically:**\n\n* Create a `.weblinter` config file in your project root if it doesn't exist yet.\n* Generate and cache feature usage data in a `.weblinter_data` folder (ignored by Git).\n\nYou can customize `.weblinter` like this:\n\n```json\n{\n  \"paths\": [\"src\", \"components\"],                     // Folders to include for linting\n  \"extensions\": [\"css\", \"html\"],                      // File extensions to lint\n  \"exclude\": [\"node_modules\", \"**/*.json\", \"dist\"],   // Paths or patterns to exclude\n  \"cacheDays\": 10,                                    // Number of days to cache parsed files\n  \"showNotFoundResults\": false                        // Show results for missing files (set to true to debug missing paths)\n}\n```\n\nIf you want, you can also explicitly create the config file anytime by running:\n\n```bash\nnpx weblinter init\n```\n\n## 🧪 Example Output\n\n```bash\n❌ Non-baseline feature found:\n\n→ /example/style.css\n  Warnings (low baseline):\n    ⚠ css.properties.backdrop-filter\n  Errors (non-baseline):\n    ✖ css.properties.interpolate-size\n    ✖ css.properties.overlay\n    ✖ css.properties.reading-flow\n```\n\n\u003e Each result is tied to real feature identifiers from the `web-features` dataset — the same canonical source used by Chrome and MDN.\n\n## 🧱 How It Works\n\n| Component        | Role                                       |\n| ---------------- | ------------------------------------------ |\n| `web-features`   | Official dataset of web platform features  |\n| `PostCSS`        | Parses CSS to find feature usage           |\n| `Parse5`         | Parses HTML and extracts relevant features |\n| `Globby`         | Efficient file searching via glob patterns |\n| `Commander.js`   | CLI argument parsing and interface         |\n| `Chalk`          | Styled terminal output                     |\n| **Custom Cache** | Stores analysis results for performance    |\n\n## 🚧 Roadmap / Future Improvements\n\n* JS/TS support (via Babel parsing)\n* Framework-aware detection (React, Vue, Svelte, etc.)\n* Plugin support (Webpack, Vite, etc.)\n* VS Code extension for real-time linting\n\n## 🤝 Contributing\n\nContributions are welcome — especially during the Chrome Hackathon!\n\n* Open an issue\n* Suggest a feature\n* Submit a pull request\n\nLet’s make the web baseline-friendly together.\n\n## 📄 License\n\nMIT License — see [`LICENSE`](./LICENSE) for details.\n\n## ❤️ Made for the Chrome Hackathon\n\nWebLinter was built to promote a more resilient and accessible web by helping developers respect the boundaries of today’s browser capabilities. By sticking to the Web Platform Baseline, your projects remain **stable**, **inclusive**, and **future-friendly** — for everyone, everywhere.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesleybertipaglia%2Fweblinter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwesleybertipaglia%2Fweblinter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesleybertipaglia%2Fweblinter/lists"}