Skip to content

PuthWrite native, repeatable and debuggable browser tests

A realtime GUI, snapshots and Laravel integration. See every step of your test run and investigate failures from CI on your own machine.

php
use Puth\Laravel\Browser;
use Tests\PuthTestCase;

class ExampleBrowserTest extends PuthTestCase
{
    public function test_visit_website()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('https://playground.puth.dev');
            $browser->assertSee('Puth');
        });
    }
}
Puth GUI showing browser test commands alongside the browser viewport

Same interfaces.
No learning curve. ​

Puth provides a replacement for Laravel Dusk. Install the Laravel integration, configure your PuthTestCase and move your existing browser tests over at your own pace.

Start with Laravel →

A Laravel browser test using Puth's familiar fluent API
Dragging an exported snapshot into the Puth GUI to inspect a recorded test

Failing tests in CI/CD?
Replay the test locally. ​

Snapshots capture the viewport, executed commands, console output and errors. Save failed test snapshots as CI artifacts, then drag and drop a snapshot into your local Puth GUI to see what went wrong.

Set up CI and snapshots →

Run via Docker
or install locally. ​

Run Puth with npm, Docker or Podman. The server provides both the browser API and the web GUI, so your tests can connect to a local instance or a dedicated machine.

Run your first Puth server →

Starting a Puth server with Docker