Private beta — now onboarding early testers

User stories in.
Playwright tests out.

SDET-AI reads your user stories and acceptance criteria and drafts clean, reviewable Playwright + TypeScript end-to-end tests — Page Object Model, type-safe, and ready to run in your CI. You review every line before it merges.

Free during beta · No credit card required

User story input
US-2041 · Login flow
As a registered user,
I want to log in with my email and password,
So that I can access my dashboard.
Acceptance criteria
Invalid credentials show an error toast
Successful login redirects to /dashboard
Remember me persists session 30 days
Generated Playwright test

Illustrative output — generation runs inside the app, against your own stories.

Playwright + TypeScript
Idiomatic, type-safe output
Page Object Model
Structured like your team writes it
Your repo, your CI
Generated code lives with you
Human in the loop
Nothing merges without review

Everything between a user story
and a green pipeline

Built by an SDET, for SDETs — focused on the parts of test automation that actually eat your sprint.

Story-to-test generation

Paste a user story or connect Jira or Linear. SDET-AI parses the acceptance criteria and drafts a complete Playwright spec — locators, assertions, and fixtures included.

Self-healing selectors

When the DOM changes, SDET-AI compares the diff, proposes an updated selector, and opens a pull request with the fix — you approve it like any other code change.

Review-first workflow

Generated tests arrive as a diff, not a black box. Accept, edit, or regenerate each test case individually. Nothing lands in your repo without a human sign-off.

Runs in your CI

The output is plain Playwright — it runs anywhere Playwright runs. Drop the generated specs into GitHub Actions, GitLab CI, or Jenkins with no lock-in and no proprietary runner.

Plain-English failure summaries

When a test fails, get a readable summary of what broke and where — the failing step, the selector involved, and a suggested next action — instead of a raw stack trace.

Privacy by design

Your stories are processed only to generate your tests, and the generated code lives in your repository — not ours. See the privacy policy for exactly what we store.

From user story to
reviewed test in four steps

Designed to slot into the agile workflow you already have — not replace it.

1. Connect your stories

Link Jira or Linear, or paste a story with its acceptance criteria directly.

2. AI drafts the tests

SDET-AI generates Playwright + TypeScript specs with Page Object Model structure.

3. You review & approve

Read the diff, edit anything, regenerate individual cases. You stay in control.

4. Merge & keep it green

Tests run in your CI. When selectors break, healing fixes arrive as pull requests.

See what the output looks like

Sample generations from real-shaped user stories. Plain Playwright — no wrappers, no proprietary syntax.

login.spec.ts — generated by SDET-AI 2 tests · passing
1// SDET-AI generated — US-2041
2import { test, expect } from '@playwright/test';
3import { LoginPage } from '../pages/LoginPage';
4
5const VALID_USER: string = process.env.TEST_USER!;
6const VALID_PASS: string = process.env.TEST_PASS!;
7
8test.describe('Login flow — US-2041', () => {
9
10 test('redirects to /dashboard on success', async ({ page }) => {
11 const login = new LoginPage(page);
12 await login.goto();
13 await login.signIn(VALID_USER, VALID_PASS);
14 await expect(page).toHaveURL('/dashboard');
15 });
16
17 test('shows error toast on bad credentials', async ({ page }) => {
18 await page.goto('/login');
19 await page.getByLabel('Email').fill('bad@test.com');
20 await page.getByLabel('Password').fill('wrong');
21 await page.getByRole('button', { name: 'Sign in' }).click();
22 await expect(page.getByRole('alert')).toContainText('Invalid credentials');
23 });
24});
Works with the stack you already have

Free while we build it with you

The beta is free and capacity-limited. Paid plans below are planned for launch — beta testers get early-adopter pricing.

Pro
$19 / user / month

Planned at launch — pricing may change

  • Everything in Beta
  • Jira & Linear integration
  • Self-healing selector PRs
  • Failure summaries in Slack
Get notified
Team
Let's talk

For larger QA teams with specific needs

  • Everything in Pro
  • Volume pricing
  • Onboarding & migration help
  • Priority feature requests
Contact us

Questions about pricing? Email deveshvyas@sdet-ai.tech

Built by an SDET who was
tired of writing the same tests

Hi, I'm Devesh. I work as an SDET, and for years my sprints have followed the same pattern: the stories change, the UI changes, and the test suite is always the last thing to catch up. Writing the tests isn't even the hard part — it's rewriting them every time a selector moves.

SDET-AI is the tool I kept wishing existed: something that reads the acceptance criteria we already write, drafts the Playwright tests the way a good SDET would, and then keeps them alive as the product evolves — while leaving every merge decision with a human.

It's early, and I'm building it in the open with a small group of beta testers. If that sounds like your kind of thing, I'd genuinely love your feedback.

Devesh Vyas
Founder, SDET-AI · deveshvyas@sdet-ai.tech

Questions SDETs actually ask

Is SDET-AI available right now?
It's in private beta. Join the waitlist and I'll onboard testers in small batches so everyone gets real support. Beta access is free, no credit card required.
What exactly does it generate?
Standard Playwright + TypeScript test files, structured with the Page Object Model. There's no proprietary wrapper or custom runner — the output is plain Playwright that runs anywhere Playwright runs, and it lives in your repository.
How is this different from asking ChatGPT or Copilot to write my tests?
General-purpose assistants generate code from a blank prompt. SDET-AI is a pipeline built for one job: it parses acceptance criteria into test cases, applies consistent Page Object conventions across your whole suite, presents everything as a reviewable diff, and watches for selector breakage after the tests are merged. The value is in the workflow, not just the generation.
What happens when the AI gets a test wrong?
You catch it in review — every generated test arrives as a diff you approve, edit, or regenerate before it touches your repo. AI-generated tests are a draft from a fast junior engineer, not gospel; the workflow is designed around that reality.
Does my code or data leave my infrastructure?
The user stories and DOM snapshots you submit are processed to generate your tests. The generated code lives in your repository, not on our servers. Full details of what is stored and for how long are in the privacy policy — and if you have stricter requirements, email me and we'll talk.
Which test frameworks are supported?
Playwright with TypeScript is the focus for the beta — doing one stack really well before expanding. Cypress and Selenium support will depend on what beta users ask for, so if you need one of those, say so when you join.
What does it cost?
Free during the beta. Planned paid tiers are listed above; beta testers will get early-adopter pricing when paid plans launch.
Private beta · Limited seats

Spend your sprint testing,
not typing tests.

Join the waitlist and I'll reach out personally when your batch opens. Free during beta, no credit card.

No spam, ever — just beta invites and major updates. Privacy policy

You're on the waitlist! We'll be in touch soon.