Duku AI is now Antidote

For engineers

Leave the testing to Antidote.
Get back to building.

Antidote proves your product works every time you ship. Stop testing, start verifying.

Trusted by engineering teams at

“We’ve got no QA. Our engineers are QA and they hate it.”

Selby Cary

CTO · Mapify

What comes off your plate. Six chores you stop doing, and what happens instead.

Pull requests

Clicking through every preview.

Every change gets a test drive

Antidote explores the preview of each pull request and posts what it found.

Setup

Writing end-to-end scripts.

No test scripts to write

Give it a URL. It clicks and types its way through your app in a real browser, like a customer would.

Upkeep

Fixing scripts after a redesign.

Nothing to fix when the UI moves

There is nothing to script, so a moved button does not break it.

Evidence

Recreating “checkout’s broken?”

Bugs arrive with evidence

Each bug comes with what should have happened, what did, and where it stopped.

Logins

Signing in as the test user, again.

It signs in

Give it named test logins and pick which one each run uses. Passwords stay encrypted.

Tickets

Writing up the ticket.

Straight into GitHub or Linear

Findings land in GitHub and Linear, with the video and the steps.

The bug report, rewritten. Nobody loses an afternoon recreating it.

What you get today

#engToday
Priya16:42

checkout’s broken on staging?

Sam16:51

works for me

which browser? any steps?

Priya17:30

not sure, a customer emailed support

no stepsno errorno recording

The same bug, as Antidote reports it: what should have happened, what did, and where it stopped.

What Antidote opens

pr-482.preview.yourapp.comSent to Linear

Error after changing delivery address

Needs reviewFound on the preview for #482
Expected
The order summary shows the new delivery address.
Observed
The page stopped on Delivery with an error after Save address.

Error

TypeError: Cannot read properties of undefined (reading 'postcode')
    at DeliveryForm.onSave (DeliveryForm.tsx:84:31)
    at HTMLButtonElement.dispatch (react-dom.js:4291:16)
Status
Open
Priority
High
Screen
Delivery
Login
Test buyer
Seen
2 times
Found on
PR #482 preview
Sent to
Linear ENG-1482

On every pull request ↓

One step in GitHub Actions

Antidote explores the preview of each pull request, then posts one comment with the new issues and a check. Your team decides what ships.

No changes to your code.

Previews behind a login work.

One comment, updated on every push.

github.com/yourapp/storefrontWorkflow

.github/workflows/antidote.yml

name: Antidote
on: pull_request

jobs:
  explore:
    needs: deploy-preview
    runs-on: ubuntu-latest
    steps:
      - uses: antidote/preview-action@v1
        with:
          api-key: ${{ secrets.ANTIDOTE_API_KEY }}
          preview-url: ${{ needs.deploy-preview.outputs.url }}

You keep the call. Antidote reports what it saw. Your team decides what ships.

It never fakes an all-clear

If Antidote couldn’t check something, it tells you. Finishing a check doesn’t mean everything passed.

No issue observed

Antidote used it and saw nothing wrong on this run. Useful, and still not a guarantee.

Needs review

What happened differs from what was expected. The recording and steps come with it.

Blocked

Antidote could not get through. Kept apart from failures and never counted as a pass.

Not run

A test that did not run. Kept apart from Failed. It is never a pass.

No changes to your code

Antidote uses your app from the outside, like a customer. For pull requests, you add one step to GitHub Actions.

Safe by default

It stays away from anything that could disrupt your app or your customers, like signing out.

Your tests stay

It adds to them. Your tests check what you expected; Antidote shows what really happens.

What it takes to begin

Does it run on every pull request?

+

What if our UI changes?

+

How is this different from Playwright or Cypress?

+

Why not build this ourselves?

+

Does it create tickets?

+

Watch it run on your app

Start with the part that matters most. We set it up, and the first run is yours to watch.

Start with

We set it up. The first run is yours to watch.

See it in action

For engineers

You’re here

Leave the testing to Antidote.

For CTOs

→

Trust your product.

Autonomous product verification. Observed, not assumed.

Ask AI about us

Copyright © 2026 TCWL Group Ltd. All rights reserved.

Autonomous product verification. Observed, not assumed.

Ask AI about us

Copyright © 2026 TCWL Group Ltd. All rights reserved.

Autonomous product verification. Observed, not assumed.

Ask AI about us

Copyright © 2026 TCWL Group Ltd. All rights reserved.