An introduction to Playwright and where it belongs in the testing stack. Covers the testing pyramid, what e2e tests are actually good for, and what they should not be used for.

Software Developer & Systems Architect
I didn't take the straight path here. I started out in 3D graphics and design, moved into networking (CCNA, CCNP), got hired as a software developer to integrate and automate systems, and eventually took on an IT director role on top of that. Fourteen years later I'm still the person who sees the whole picture: the network, the application, the integrations, and the people who depend on all of it working together.

Most of my work has been with small and medium-sized businesses: field service companies, operations-heavy organizations, and teams where technology needs to fit the workflow rather than reshape it. I spend a lot of time upfront mapping out how things actually work before writing any code. It's slower at the start, but it means what gets built doesn't need to be undone six months later.
At the core of it, I like building things. There's something satisfying about starting with a complicated problem and ending with something that makes someone's work faster, easier, and more efficient. If I can remove a tedious manual process, connect two systems that should have been talking to each other, or set up an AI workflow that handles the repetitive parts of someone's day, that's a good outcome. The goal is always the same: make it work better than it did before.
An introduction to Playwright and where it belongs in the testing stack. Covers the testing pyramid, what e2e tests are actually good for, and what they should not be used for.

A deep dive into how Playwright works internally: the Browser/Context/Page hierarchy, the locator engine, actions, web-first assertions, and how to configure the test runner.

How to use Playwright inside a Nuxt project, covering both the standalone approach and the @nuxt/test-utils integration with Vitest. Includes setup, configuration, and Supabase prerequisites.
