Bart Veneman
banner
veneman.dev
Bart Veneman
@veneman.dev
Creator of Project Wallace, analytics for CSS - https://www.projectwallace.com. I can lift node_modules twice my own weight. He/him.
Does anyone have good experiences with setting up a "break the glass" procedure?
Looking to write down some stuff in case something happens so my loved ones can take care of stuff. How do you deal with domain names, github accounts, netlify, bluesky, etc?
November 10, 2025 at 6:22 PM
Rewrote @projectwallace.com's core css-analyzer package to TypeScript this weekend. Long overdue, but exported types are way better now. It also opens up the door to migrate from css-tree to @eslint.org's css-tree fork which solves numerous issues.

And then time for a full rewrite 😈
November 10, 2025 at 3:20 PM
Yay, took almost half off of the CLI bundle size for css-code-coverage package 🥳

The cli.js now references the core.js in the dist file instead of shipping it's own copy of the core inside cli.js. Surprisingly tricky to fix even though it was basically 2 lines of code change and 1 new line.
November 7, 2025 at 9:08 PM
CLI question: if you have an argument like `--min-coverage`, would you rather set it as a number between 0-1 or as a percentage between 0-100?
November 4, 2025 at 6:23 PM
Okay, I'm part of the big cursor club now.
Aaaand this week's Web Weekly newswetter is just about to go out! Check out this full bag of webdev goodies. 👇

www.stefanjudis.com/blog/web-wee...
November 3, 2025 at 1:45 PM
Use your existing Playwright tests to calculate your CSS line coverage www.projectwallace.com/blog/how-to-...
November 3, 2025 at 1:36 PM
if you create a web scraper/bot without a custom user agent i wish very scary viruses on your computer
November 1, 2025 at 5:52 PM
How to calculate CSS code coverage with @playwright.dev

www.projectwallace.com/blog/how-to-...
October 31, 2025 at 7:49 PM
Luckily @netlify.com offers pretty fine-grained firewall support, so I've blocked most of the traffic for now. Let's see if it holds up.
docs.netlify.com/manage/secur...
Some 600+ visitors (bots, I think?) from Singapore are blowing through my Netlify credits real fast. 100% bounce ratio, weird old pages visited.
October 30, 2025 at 5:40 PM
Some 600+ visitors (bots, I think?) from Singapore are blowing through my Netlify credits real fast. 100% bounce ratio, weird old pages visited.
October 30, 2025 at 3:12 PM
In terms of accessibility, would it be acceptable to replace CMD/CTRL+O on a page where the main starting point requires you to select files?
On this page I'd expect CMD+O to open a file chooser that lets me select files to start the inspector.
October 26, 2025 at 2:55 PM
Can we have better CSS Coverage ranges, please?

www.projectwallace.com/blog/better-...
Can we have better CSS Coverage ranges, please? - Blog - Project Wallace
Browers often don't report atrule ranges correctly in the CSS Coverage ranges.
www.projectwallace.com
October 24, 2025 at 6:50 PM
Good push to let me write a blog post tonight about a feature that's a bit rough, even though it's not a web standard? I don't even know, I just want it to work better for me.
Let this be a reminder to be vocal about the things that are a bit rough on the edges or are missing on the web platform. We’re listening and are here to help.

<!-- insert caveat about the requests needing to reasonable here -->
October 24, 2025 at 5:05 PM
Very tempted to move all of @projectwallace.com libraries to @eslint.org's fork of csstree. It'll mostly give better nesting support which will solve a bunch of issues across several repositories. And types included.
October 22, 2025 at 10:09 AM
I need to build+ship an npm package as a library and a cli tool in one package. How on earth do we do that these days? 😵‍💫
October 19, 2025 at 8:35 AM
Unit tests fails.

Grab coffee.

Run test again.

Still fails.
October 16, 2025 at 11:56 AM
Open sourcing css-code-coverage

github.com/projectwalla...

It is *very* early stages, it needs a ton more tests, docs, cli tool etc. but is for the folks who want an early look.
GitHub - projectwallace/css-code-coverage: Generate useful CSS Code Coverage report from browser-reported coverage
Generate useful CSS Code Coverage report from browser-reported coverage - projectwallace/css-code-coverage
github.com
October 12, 2025 at 9:44 PM
Reposted by Bart Veneman
I've been so annoyed by AI tools and CSS that I made a CSS MCP that:

* consults with MDN for docs
* reports browser compat
* uses project Wallace to analyze your CSS

github.com/stolinski/cs...

Also made claude code agent for css but still perfecting it.
GitHub - stolinski/css-mcp
Contribute to stolinski/css-mcp development by creating an account on GitHub.
github.com
October 9, 2025 at 9:54 PM
Ahw fffffff... Apparently I'm already 50% on my Netlify credits for this month. There's more traffic than usual last 30 days and I guess I'm running too many playwright tests on each PR push.
October 8, 2025 at 3:32 PM
RIP Edward Reekers 😔 nos.nl/artikel/2585...
Voormalig Kayak-zanger Edward Reekers overleden
Twee maanden geleden maakte hij bekend dat hij uitgezaaide longkanker had.
nos.nl
October 7, 2025 at 8:50 PM
Funny how in my previous job one of my success metrics was to keep the number of PR's raised as low as possible. Now doing 3-5 PR's per day and it's fun but weird.
October 7, 2025 at 3:51 PM
Writing a tiny parser to scrape urls from CSS at-import rules because css-tree is a pain in the butt when deploying an esm-only package.
And 2MB+ is too much anyway. I'm thinking about forking csstree and stripping all the heavy cruft from it.
October 7, 2025 at 1:42 PM
IT'S WORKING!!! 🎉

🎭 Every @playwright.dev test collects bits of CSS Coverage
💾 Each PW test stores the coverage result in a JSON file and stores as GitHub artifact
🗂️ GitHub Action grabs the artifact and feeds into tiny CLI tool
🥳 CLI accepts `minLineCoverage` arg and passes or fails the job

🤩🤩🤩🤩🤩🤩
October 6, 2025 at 6:40 PM
current status: running a playwright browser inside Vitest to generate CSS Coverage data on the fly. Then pass it into my function that calculates all coverage data (lines covered, per file, bytes covered, etc.) and all totals.

This thing totally rips!
Of course the one thing I need to backport from Wallace to work is the one of the very few pieces that's not covered by tests. Whelp.
October 5, 2025 at 9:42 PM