dmitriiev.dev

A Playwright test suite for your web app. Two weeks, flat fee.

Committed to your repo, wired into CI, and mutation-verified: every test has proven it can fail. Green you can trust.

From $2,500 launch price for the first three clients, in exchange for a testimonial

Get a scoping questionnaire

Who this is for

You ship a web app with a small team and no QA engineer. Releases are manual smoke-clicking, or worse, hope. You want regression coverage of the flows that actually pay your bills, and you want it this month, without hiring anyone.

If you already have a large suite that needs rescue, that's a different job. Write me anyway and we'll scope it separately.

How it works

  1. Scope freeze, in writing

    You fill a short questionnaire, we pick up to 5 key user flows and up to 20 E2E scenarios over email. No calls unless you want one.
  2. Early signal

    By day 3 you see a smoke test of your first flow running in CI. If access or environments block us, you know immediately, not on day 13.
  3. Suite build

    Flows are delivered one at a time: page objects, stable selectors, independent tests, auth handled once via storage state.
  4. Mutation gate

    Every spec goes through playwright-mutation-gate: its key assertion gets inverted and the test re-runs. If it stays green, the test is lying and gets fixed. You receive the gate report with the delivery.
  5. Handoff

    GitHub Actions workflow (PR + nightly), a README your team can extend, a Loom walkthrough, and two weeks of post-delivery fixes included.

The two-week clock starts when I have staging access and test accounts, and that date is fixed in the scope email. Pricing is 50% up front, 50% on delivery.

Why trust the greens

A passing test only means something if it can fail. Suites are full of tests that pass for the wrong reason: a forgotten await, a dead selector, a silent skip. They stay green while the feature breaks.

So I don't ask you to trust my tests. I invert each test's key assertion and run it again. A real test goes red. A hollow one stays green and never reaches your repo. The tool that does this is open source, and the report is part of the delivery:

$ npx playwright-mutation-gate tests/*.spec.ts

  spec                     test                        verdict
  checkout.spec.ts         pay with saved card         killed
  checkout.spec.ts         empty cart blocks pay       killed
  search.spec.ts           filter by category          killed
  ...
  15/15 mutations killed. No hollow assertions.

Inversion proves a test can fail. It doesn't prove the test checks the right value. There's a second pass for that: --behavior corrupts the value each test names in the real server response and expects the test to notice. One that asserts what the browser rendered instead of what the server sent stays green, and the gate flags it weak:

$ npx playwright-mutation-gate tests/*.spec.ts --behavior

  spec                     test                        verdict
  checkout.spec.ts         confirm a valid order       killed
  receipt.spec.ts          greet the customer by name  weak
  ...
  weak: the greeting asserts the client render, not the server value.

Open source, so you can check my work

playwright-mutation-gate

The mutation gate itself. npm package, MIT. npm weekly downloads

ai-qa-pipeline

The generation pipeline behind the offer, runnable on a bundled demo shop: spec review, write loop, real browser runs, and the gate at the end.

Your green tests are lying

The write-up on hollow assertions that started this.

Scope

Included

  • Up to 20 E2E scenarios across 5 flows
  • Chromium, one environment (staging)
  • Auth setup, page objects, selector discipline
  • Mutation gate report for every spec
  • GitHub Actions: PR runs + nightly
  • README + Loom handoff
  • 2 weeks of post-delivery fixes

Add-ons

  • API test layer: +$800
  • Visual regression: +$600
  • Firefox + WebKit: +$500
  • Suite Care: $400/mo, up to 5h of updates as your UI changes

Out of scope: native mobile, load testing, and flows that can't be automated reliably (CAPTCHA, OTP, external payment redirects). Those get documented as manual test cases instead of flaky automation.

FAQ

What do you need from me to start?

Externally reachable staging (or VPN access), test accounts, a way to create or reset test data, and a list of the 5 flows that would wake you up at night if they broke. That's the whole questionnaire.

Our login uses SSO or OTP. Is that a problem?

It's the first thing we talk about. Usually there's a workaround (test IdP, magic link, seeded session). If there isn't, that flow moves to the manual list and the schedule stays honest.

Our frontend has no test ids. Do we need to add them?

Not necessarily. Stable selectors come first from roles and text. If a flow is unselectable without help, I'll send a short list of data-testid additions, typically under an hour of your dev's time.

Who maintains the suite after handoff?

Your team, with the README, or me: the first two weeks of fixes are included, and Suite Care at $400/mo covers ongoing updates as your UI changes.

Do tests get written by AI?

Partly, yes: generation runs through my pipeline, which is public. What lands in your repo is reviewed by me and has passed a real browser run and the mutation gate. The gate exists precisely because generated tests lie more often than hand-written ones.

Why fixed price?

Because the scope is fixed too. You know the number before we start, and scope changes are a new agreement, not a surprise invoice.

Start scoping

Fill this in (5 minutes). I reply within one business day with either a scope proposal or the questions that stand between us and one.

Form not loading? Open it directly.