
Co-founder & CEO @argos_ci • Product Engineer @gitbookio • Creator of React libraries https://nitter.cf/t.co/NidQtq7qIJ • ex @doctolib
Paris, France
Joined March 2009
- Tweets8.3K
- Following912
- Followers5.4K
- Likes12.2K
Pinned Tweet
The launch of react-twc.vercel.app was a huge success!
🔹 8K+ views on the website
🔹 7 pull requests
🔹 370+ stars
🔹 130+ reposts, 1K+ likes, 210K+ views on X
🔹 +300 X followers
Are you interested in a step-by-step guide to successfully launch an open-source library?
We build a service that keeps screenshot baselines out of Git. I still think a small suite should commit them: that's how toHaveScreenshot() is designed, and anyone who clones the repo can run the tests.
The interesting question is where that stops working.
The one that bites later: Playwright never deletes a baseline. Rename a screenshot and the old file stays. Requests for a cleanup option were closed as not planned in 2026, so I included a script that lets Git find the orphans.
Where the line sits, and what to do past it: argos-ci.com/blog/commit-scr…
Three tools can now take component screenshots in a real browser, and two of them changed between July and September 2026.
Jeremy, my co-founder, ran the same React button through Storybook's Vitest addon, Vitest browser mode and Playwright component testing.
A detail I like: we don't document Playwright component testing as an Argos integration, but mount() returns a regular locator, so argosScreenshot takes it as the element. Jeremy ran it on 1.63.0.
His comparison, with every config: argos-ci.com/blog/component-…
I'd let a coding agent review every visual diff on a pull request. I wouldn't let it approve one.
I wrote up how to connect Claude Code, Cursor and Codex to Argos with read-only scopes, and what to ask the agent once it's connected.
A setup gotcha: codex mcp add requests every scope the server advertises. Uncheck the write scopes on the consent page, or pin scopes in config.toml and set default_tools_approval_mode = "writes" so Codex asks before any write.
Configs for all three clients and the prompt I'd start from: argos-ci.com/blog/ai-agents-…
The part of SAML SSO that bugged me was offboarding: someone leaves the company, and they keep Argos access until a person remembers to remove them.
Argos now speaks SCIM, so Okta or Entra ID removes them the moment they're deactivated.
Linking an existing account by email was another one. Anyone can add an unverified email to their account, so provisioning only links on verified ones. Otherwise it would hand team access to whoever added the address first.
And Okta and Entra ID don't speak quite the same SCIM: Entra sends booleans as "False" strings and capitalizes its operations. The test suite replays both.
argos-ci.com/changelog/scim-…
I went looking for the Chromium flag that makes Playwright screenshots match between a Mac and Linux CI. There isn't one.
The closest I got on Playwright 1.63.0: 1,907 pixels apart, with a bundled web font and two flags. With system fonts, over 37,000.
So I'd make one Linux image the only renderer. From a Mac, keep the runner local and send the browser to that image with run-server:
PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:3000/ npx playwright test
Then drop the platform from snapshotPathTemplate.
I wrote up every measurement, flag and config here: argos-ci.com/blog/playwright…




