Sign in

Kevin Martínez

@kevintwd.bsky.social
4 followers 36 following 68 posts

TWD (testing while developing) maintainer | Software Architect at Orbitant | twd.dev | kevinmartinez.dev

PostsRepliesMedia
Kevin Martínez @kevintwd.bsky.social · 12h
After watching @vite.dev conf I tried the new Vite+ CLI with twd.dev. One config file for dev, lint, format, types and commit hooks, and TWD fit right in: a Vite plugin, its lint rules running inside Oxlint, coverage and CI. Write-up www.kevinmartinez.dev/posts/one-cl...
kevinmartinez.dev
One CLI, one config file: adding browser tests to a Vite+ project
Vite+ puts dev, lint, format, type checking, commit hooks and package management behind one CLI and one config file. Here is what it took to add in-browser tests without breaking that, linting and cov...
000 0
Kevin Martínez @kevintwd.bsky.social · 15h
I'd recommend you to add twd.dev to your vibe code htmx apps. The main idea of this tool is to have all the test also in the browser so you can check what your tests are validating. If your agent writes them you can check them too in the PR as video. dev.to/kevinccbsg/t...
dev.to
Testing HTMX apps in the real browser with TWD
HTMX apps are refreshingly simple: the server returns HTML fragments, and HTMX swaps them into the...
000 0
Kevin Martínez @kevintwd.bsky.social · 13/10/2026
www.kevinmartinez.dev/posts/prose-...
kevinmartinez.dev
Prose does not beat determinism: stop asking your AI agent to remember
My agent instructions said "ALWAYS await" three times, and the agent still forgot. What fixed it wasn't a better prompt: it was moving each rule into a type check, a linter or a structured report.
000 0
Kevin Martínez @kevintwd.bsky.social · 13/10/2026
www.kevinmartinez.dev/posts/your-l...
kevinmartinez.dev
Your library isn't in the training data: making AI agents use it well
Models know React and Jest by heart. They don't know your internal SDK, your design system or your niche open source library, and they fill the gaps with what they do know. Here's a toolkit to fix tha...
000 0
Kevin Martínez @kevintwd.bsky.social · 13/10/2026
Spent a fun time chatting about code, web architecture, and software development with @coderlegion.bsky.social You can watch the full interview here: www.youtube.com/watch?v=Wtop... Thanks for the invite!
youtube.com
Kevin Martinez on Building, Learning & Growing as a Developer From Ideas to Impact
YouTube video by CoderLegion
000 0
Kevin Martínez @kevintwd.bsky.social · 05/10/2026
youtu.be/GWI97qXMm5A
youtu.be
Frontend Ahead of the Backend: Mock the API in Your Tests, Not a Server
YouTube video by twd dev
000 0
Kevin Martínez @kevintwd.bsky.social · 05/10/2026
www.kevinmartinez.dev
kevinmartinez.dev
Kevin Martínez
Senior Software Engineer focused on engineering quality, testing strategy and AI-assisted development. Creator of TWD.
010 0
Kevin Martínez @kevintwd.bsky.social · 29/09/2026
Desde que tenemos IA, las PRs de frontend que me toca revisar se han multiplicado. Escribir código ahora es rápido. Revisarlo no. Y para revisar bien una PR de front, o te bajas la rama y la levantas. En este vídeo os enseño cómo lo hacemos con twd.dev en una PR real
000 0
Kevin Martínez @kevintwd.bsky.social · 25/09/2026
Reviewing UI from a diff means imagining it. npx twd-cli run --record writes one paced video per test. Drop it on the PR and the reviewer watches the flow before checking out the branch. It comes from the run that went green, so it can't drift from the code. twd.dev/recording
000 0
Kevin Martínez @kevintwd.bsky.social · 25/09/2026
A test that finishes in milliseconds is great until you want to know what it actually did. TWD's sidebar has a Speed selector. Set it to 300ms and every click and keystroke plays out one at a time. Same assertions. Now watchable. twd.dev/recording
100 0
Kevin Martínez @kevintwd.bsky.social · 25/09/2026
An agent writing tests is easy. The interesting part is what it does when one fails. With TWD it runs twd-cli headless, reads "expected vs received" as plain text, fixes the test and reruns until green. No screenshots, so the loop stays cheap. twd.dev/ai-overview
100 0
Kevin Martínez @kevintwd.bsky.social · 25/09/2026
Your test clicks Pay. The request never leaves the browser. twd.mockRequest answers from a service worker, so there's no backend to boot and no data to seed. Run it 100 times, get the same result 100 times. twd.dev/api-mocking
100 0
Kevin Martínez @kevintwd.bsky.social · 25/09/2026
Write a test and it shows up right in your dev environment, in a sidebar next to the app you're building. Hit play and watch it drive your real app, in the browser you already have open. No second window, no CI round trip. twd.dev/getting-started
100 0
Kevin Martínez @kevintwd.bsky.social · 24/09/2026
lovable.dev/blog/how-we-...
lovable.dev
How we migrated lovable.dev away from Next.js and turned it into another Lovable app | Lovable
42M monthly visitors, 400 routes and 850K lines of code moved from Next.js on Vercel to TanStack Start on Lovable—route by route, mostly by agents, with one 11-minute incident along the way.
010 0
Kevin Martínez @kevintwd.bsky.social · 22/09/2026
dev.to/kevinccbsg/3...
dev.to
3 Developer Archetypes That Can Break a Team
There are developers who make a team faster. There are developers who make a team better. And there...
000 0
Kevin Martínez @kevintwd.bsky.social · 15/09/2026
And the test owns the scenario. twd.mockRequest records the 500 from payments, not the happy path. In CI a label clips only the tests the branch touched dev.to/kevinccbsg/y...
dev.to
Your Agent Says the Tests Pass. Watch Them
An agent opened a pull request on my repo last week. Eleven files changed, three new tests, all...
000 0
Kevin Martínez @kevintwd.bsky.social · 15/09/2026
So the run records itself: npx twd-cli run --record Same execution that produced the green tick, paced so you can follow it. Not a demo: change the behaviour and the clip changes with it.
100 0
Kevin Martínez @kevintwd.bsky.social · 15/09/2026
twd.should(el, "be.visible") passes. The button could be sitting on top of the heading, below the fold, or doing nothing at all when clicked. All of it consistent with green. You do not find that by reading harder.
100 0
Kevin Martínez @kevintwd.bsky.social · 15/09/2026
A green test used to carry a second person's intent. Someone wrote the test, then wrote code until it passed. When the same model writes the code and the test that proves it, that is gone. The test is a claim, not evidence.
100 0
Kevin Martínez @kevintwd.bsky.social · 15/09/2026
An agent opened a pull request on my repo. Eleven files, three new tests, all green. The diff tells you what the agent believes it built. Not what a person using it would see.
100 0
Kevin Martínez @kevintwd.bsky.social · 08/09/2026
dev.to/kevinccbsg/y...
dev.to
Your Tests Pass. Your Layout Is Broken
You change one line of CSS. A flex-direction, a max-width, a padding on a shared card...
001 0
Kevin Martínez @kevintwd.bsky.social · 31/08/2026
Run @vuejs.org component tests where vue runs, in the browser you're using to develop. dev.to/kevinccbsg/r...
dev.to
Run Vue Component Tests Where Vue Runs: The Browser
A Vue component's job is to produce DOM in a browser. Most component tests ask it to do that...
000 0
Kevin Martínez @kevintwd.bsky.social · 28/08/2026
The payoff: component tests and flow tests are now the same artifact. npx twd-cli run Passed: 14 10 drive the whole app. 4 render one dialog. One coverage file covering both, because there was only ever one run. dev.to/kevinccbsg/n...
dev.to
No More Fake DOM: Testing Library Unit Tests in the Real Browser
Every Testing Library test you have written runs against a simulated DOM. You know this. You accepted...
000 0
Kevin Martínez @kevintwd.bsky.social · 28/08/2026
render(<Add />) mounts into the real browser your dev server is already running. Testing Library was never tied to jsdom. It renders into a DOM node and queries it. jsdom is just the DOM most people hand it. Give it a real one and the same code runs.
100 0
Kevin Martínez @kevintwd.bsky.social · 28/08/2026
Every React Testing Library test you've written runs against a fake DOM. We all accepted that years ago. Last week I called render() inside a TWD test just to see what would break.
100 0
Kevin Martínez @kevintwd.bsky.social · 04/08/2026
000 0
Reposted by Kevin Martínez
Kyle Shevlin (he/him) @kyleshevl.in · 28/07/2026
Let’s assume for a second AI is making you more productive. Is it making your life any better? Are you healthier? Happier? Have more free time? Have richer social lives? Greater fulfillment? I’m not being hyperbolic, the main thing AI has increased in my life is misery. How am I supposed to act?
146511 0
Kevin Martínez @kevintwd.bsky.social · 29/07/2026
www.youtube.com/watch?v=Cr_X...
youtube.com
Testing microfrontends with TWD: one runner, three frameworks
YouTube video by TWD JS
000 0
Kevin Martínez @kevintwd.bsky.social · 28/07/2026
dev.to/kevinccbsg/t...
dev.to
Testing microfrontends with TWD, one suite per team
Microfrontends split a frontend into apps that build, deploy and version on their own. One team ships...
000 0
Kevin Martínez @kevintwd.bsky.social · 27/07/2026
dev.to/kevinccbsg/r...
dev.to
Real-browser testing for Open Cells apps with TWD
Open Cells is an open-source framework from BBVA for building web apps out of Web Components. It...
000 0
Kevin Martínez @kevintwd.bsky.social · 23/07/2026
Your AI writes tests. But do they actually run? Most don't — they run in a fake DOM or a separate browser, not the one you build in. TWD runs them in your real browser, in a sidebar, and lets your agent write → run → fix → repeat, until green. twd.dev
000 0
Kevin Martínez @kevintwd.bsky.social · 22/07/2026
Not every app has a bundler. A folder of HTML and JavaScript still ships real software, and its testing story is usually thin. TWD tests it in the real browser, loaded from a CDN import map. No build step. And the tests survive a later move to React or Vue, unchanged. dev.to/kevinccbsg/t...
dev.to
Test your vanilla JS app in the real browser, with no build step
Not every app has a bundler. Plenty of real software is still a folder of HTML and JavaScript served...
000 0
Kevin Martínez @kevintwd.bsky.social · 22/07/2026
HTMX returns HTML fragments, not JSON, and runs no build step. A jsdom test cannot see the swap. TWD tests it in the real browser, loaded from a CDN, against your real backend where the swap actually happens. dev.to/kevinccbsg/t...
dev.to
Testing HTMX apps in the real browser with TWD
HTMX apps are refreshingly simple: the server returns HTML fragments, and HTMX swaps them into the...
000 0
Kevin Martínez @kevintwd.bsky.social · 17/07/2026
Comparison infographic of three JavaScript testing tools. Vitest: Vite-native runner for fast unit tests with HMR, Vue support, Jest API compatibility and snapshots. TWD.dev: flow and integration testing in the real browser, with a live sidebar, service-worker API mocking, contract testing and an AI agent that writes and iterates tests. Playwright: end-to-end automation across browsers and mobile, with auto-waiting, codegen, trace viewer and network interception.
000 0
Kevin Martínez @kevintwd.bsky.social · 15/07/2026
Testing isn't a phase. It's how you build. TWD runs your tests in the same browser tab you're developing in. Write them like Testing Library, watch them go green while you code in a @vuejs.org app. twd.dev
000 0
Kevin Martínez @kevintwd.bsky.social · 14/07/2026
dev.to/kevinccbsg/t...
dev.to
The easiest way to test a legacy Create React App
Create React App was officially deprecated in February 2025. The apps built with it didn't disappear....
000 0
Kevin Martínez @kevintwd.bsky.social · 07/07/2026
How many times have you left a Dependabot PR to die out of fear it might break something? We went from that to a green pipeline, review, and merge in under 5 minutes. The key is our testing architecture with twd.dev. If you don't have that security, you're just accumulating debt.
000 0
Kevin Martínez @kevintwd.bsky.social · 07/07/2026
348 flow tests in 3:24 minutes. These aren't isolated unit tests; they simulate the browser, validate mocks against the backend, and track coverage. At 1.7 tests/second, testing is finally the foundation for our AI, not a bottleneck. Stop relying on luck; trust your pipeline. twd.dev
000 0
Kevin Martínez @kevintwd.bsky.social · 03/07/2026
"Cannot reproduce." The logs prove the bug happened. Twenty clicks through the flow. Nothing. Timing bugs give you no manual lever. An AI agent read the code, found the race, and made it deterministic with one TWD mock. The ticket closed in one session. dev.to/kevinccbsg/t...
dev.to
The Production Bug You Can't Reproduce by Clicking
A payment request showed up in production logs with country: "ROW" at the top level and...
000 0
Kevin Martínez @kevintwd.bsky.social · 29/06/2026
¡TWD es sponsor de la @a11yconf.com Zaragoza 2026! De las lightning talks en Girona a patrocinar el evento de referencia en España. En twd.dev llevamos el testing al navegador real, y nos comprometemos a que las devtools sean 100% accesibles. #a11y
a11y conf and twd (testing while developing) logos
010 0
Reposted by Kevin Martínez
Ulises Gascón @ulisesgascon.com · 23/06/2026
#OpenSource #security sustainability isn't about working harder. It's about structure that holds when the volume spikes. Yesterday we kicked off a new @openjsf.org CNA initiative: an #API that lets each project own its own #CVEs. youtu.be/HkePMUn0rKs?...
youtu.be
OpenJS Security Working Group - June 22, 2026
YouTube video by OpenJS Foundation
062 0
Reposted by Kevin Martínez
Asier Marqués ☕️ @asiermarques.com · 23/06/2026
En Septiembre tendremos un nuevo evento de MadAI.es Una charla de @kevintwd.bsky.social sobre cómo evitar que nuestros agentes de código amplifiquen nuestra deuda técnica luma.com/mq1ffwe1
luma.com
How to stop your AI agent from amplifying your team's tech debt · Luma
The talk will be in Spanish, unless someone doesn’t speak the language, in which case we’ll switch to English. La IA solo amplifica lo que tu equipo ya hace.…
022 0
Kevin Martínez @kevintwd.bsky.social · 22/06/2026
No todos los días aprendes cómo alguien usa de verdad tu producto con un lector de pantalla. Hace unos meses auditamos la accesibilidad de TWD, nuestra herramienta open source. Las herramientas de desarrollo también tienen que ser accesibles para todos.
000 0
Kevin Martínez @kevintwd.bsky.social · 22/06/2026
Automated a11y tests check the page that loads. The bugs hide in the states after a click: focus traps, stolen focus. Test those in a real browser with axe-core + keyboard nav: dev.to/kevinccbsg/a...
dev.to
Automated Accessibility Testing: axe-core, Keyboard Navigation, and WCAG in the Browser
Automated accessibility testing usually means one thing: point a scanner at the page, let it check...
000 0
Reposted by Kevin Martínez
Ulises Gascón @ulisesgascon.com · 16/06/2026
🔖 The latest issue of my #newsletter is live, issue 014. Covers Express's new look, the Node.js Collaborators Summit, the AI report flood (16 CVEs patched), and getting back into homelabbing 🔐 blog.ulisesgascon.com/newsletter-i...
blog.ulisesgascon.com
Newsletter #014: A Flood of Reports and a Fresh Coat of Paint 🎨🔐
It has been a while, so this is an extra-large update. Express got a full redesign and a new brand, the Node.js Collaborators Summit confronted an AI-driven flood of vulnerability reports, and a heavy...
031 0
Kevin Martínez @kevintwd.bsky.social · 14/06/2026
Spent a session testing the same app with Vitest Browser Mode and twd.dev. Both run in a real browser, not a simulated DOM. The split is scope: @vitest.dev shines for component testing, TWD is built for full app flows while you develop. dev.to/kevinccbsg/i...
dev.to
In-Browser Testing: Vitest Browser Mode and TWD, Side by Side
Testing components in a simulated DOM (jsdom, happy-dom) has always felt like a compromise. What we...
000 0
Kevin Martínez @kevintwd.bsky.social · 10/06/2026
Good software is built on foundations you can test. @nuxt.com is one of the SSR frameworks that gets that right, so twd.dev now supports it. Test your pages in the real browser, against your real backend. dev.to/kevinccbsg/t...
dev.to
Testing Nuxt apps in the real browser, against a real backend
You just built a Nuxt todo page. It loads from a Nitro route, adds a todo, deletes one, and it works...
010 0
Kevin Martínez @kevintwd.bsky.social · 06/06/2026
We built tooling that makes your tests easy to create, validate, serve as living docs, run fast on CI, and integrate directly with AI agents. Because a fast, reliable testing loop is the only way to ship code quickly with total confidence.
010 0
Kevin Martínez @kevintwd.bsky.social · 06/06/2026
One of the most critical principles for me is testing. Not just adding tests for a metric, but knowing what to test and having tooling that allows you to do it. In frontend, trusting your test suite is not easy. That is what we wanted to change with twd.dev
twd.dev
TWD - Test While Developing
Frontend testing ecosystem. Write tests in your real browser, let the AI agent iterate, validate every mock against the real API. Testing isn't a phase — it's how you build.
100 0
Kevin Martínez @kevintwd.bsky.social · 06/06/2026
"Build systems that can evolve safely." I love that phrase. Nowadays, with AI adding code super fast, it is even more important. That is why real engineering principles matter more than ever.
100 0