BrowserBook – IDE for Deterministic Browser Automation
BrowserBook is a Mac desktop IDE for writing, debugging, and replaying Playwright-based browser automations with deterministic test execution.
TL;DR
TL;DR: BrowserBook is a Mac IDE that brings visual debugging and deterministic replay to Playwright automations, letting you record, step-through, and replay browser interactions reliably.
Source and Accuracy Notes
- Official site: https://browserbook.com
- HN Launch: Launch HN: BrowserBook (YC F24)
- Download: Mac App Store (DMG available)
- Pricing: Free during beta
What Is BrowserBook?
BrowserBook is a Mac-native IDE purpose-built for Playwright-based web automation and testing. It targets developers who want the reliability of deterministic, scripted browser interactions without the friction of writing raw Playwright code in a generic editor.
The core promise: every automation runs the same way, every time. Flaky tests caused by timing issues or network variability are minimized by design.
Core Differentiators
Unlike running Playwright scripts in VS Code or a terminal, BrowserBook gives you:
- Visual debugger — set breakpoints in your browser automation flow, inspect DOM state, and step through each action
- Deterministic replay — replay a recorded session and get the same execution path every time
- Built-in element inspector — click any element in the rendered page to generate the optimal selector
- Recording mode — interact with a site in a headed browser, and BrowserBook generates the Playwright script
Target Users
- QA engineers building automated browser tests
- Developers scraping or automating repetitive web tasks
- Teams migrating from Selenium who want a modern alternative
Setup Workflow
BrowserBook runs natively on macOS and bundles its own Playwright installation.
Step 1: Download and Install
Download the Mac app from browserbook.com or grab the latest release from the HN discussion thread. The app is a standard macOS .app bundle — drag it to /Applications like any other Mac app.
Step 2: Launch and Sign In
Open BrowserBook from Launchpad or Spotlight. You’ll see a project dashboard. Sign in with email to activate the beta — no credit card required.
Step 3: Create or Import a Project
New project: Click New Project, give it a name, and choose “Playwright (TypeScript)” or “Playwright (Python)” as the framework.
Import existing: If you already have Playwright scripts, drag the project folder into BrowserBook’s sidebar. It detects playwright.config.* automatically and imports your existing test files.
Step 4: Write a Test
You can write tests manually in the code editor, or use the recorder:
- Click the Record button in the toolbar
- A headed Chromium browser launches, pointed at your target URL
- Interact with the page — clicks, type, navigation are all captured
- Click Stop in the toolbar
- BrowserBook generates the Playwright script and inserts it at your cursor
import { test, expect } from '@playwright/test';
test('search on example site', async ({ page }) => {
await page.goto('https://example.com');
await page.getByRole('searchbox').fill('playwright');
await page.getByRole('button', { name: 'Search' }).click();
await expect(page).toHaveURL(/results/);
});
Step 5: Run and Debug
Click the Play button to run headlessly in BrowserBook’s built-in runner. To debug:
- Click the red dot next to any line to set a breakpoint
- Click Debug (or press
F5) - When the breakpoint hits, the left panel shows:
- Variable inspector
- Call stack
- DOM snapshot at that point
- Step through with the debugger toolbar (Step Over, Step Into, Resume)
Step 6: Replay a Session
From the Sessions panel, pick any past run and click Replay. The same browser actions replay against the same base URL, giving consistent results regardless of external state.
Deeper Analysis
Why Deterministic Automation Matters
The biggest pain point with traditional browser automation (Selenium, raw Playwright) is flakiness — tests that pass locally but fail in CI, or that fail intermittently with no clear cause. Root causes typically include:
- Race conditions between page loads and assertion execution
- Dynamic content (ads, personalized feeds) that changes between runs
- Timing dependencies on third-party APIs
BrowserBook’s approach leans on:
- Hard waits with visibility checks — elements must be visible and stable before actions proceed
- Selector stability scoring — the inspector prefers stable
data-testidattributes over fragile CSS selectors - Session replay — attach a recorded session to a bug report so a teammate can replay exactly what happened
Playwright Integration
BrowserBook is not a fork of Playwright — it’s a Playwright client with a GUI layer on top. Your generated scripts are standard Playwright tests that can run in any CI pipeline with npx playwright test. This means you’re not locked into BrowserBook for execution; it’s an IDE, not a runtime.
Editor Experience
The code editor is a customized CodeMirror with Playwright-specific autocompletions. Typing page.get brings up completions for getByRole, getByLabel, locator, and other Playwright selectors. The editor understands the Playwright test API natively.
Performance
Starting the app takes about 2–3 seconds on an M-series Mac. Running a test suite of 10 simple tests completes in under 30 seconds headlessly. The UI remains responsive even when running tests in the background.
Practical Evaluation Checklist
- [ ] App launches without errors on macOS 13+
- [ ] Recorder captures clicks, typing, and navigation correctly
- [ ] Generated script runs standalone with
npx playwright test - [ ] Breakpoints halt execution and show variable state
- [ ] Replay produces identical browser actions to the original session
- [ ] Element inspector generates stable selectors
- [ ] Existing Playwright project imports without modification
- [ ] CI pipeline runs the exported tests successfully
Security Notes
- BrowserBook runs Playwright headed locally — it does not execute code remotely or in a cloud sandbox
- Scripts and session recordings are stored locally in
~/Library/Application Support/BrowserBook/ - No telemetry or usage data is sent without explicit opt-in
- The app does not bundle a browser engine itself — it uses the system’s Playwright-managed Chromium, Firefox, or WebKit installations
FAQ
Q: Is BrowserBook free?
A: Currently free during the public beta. Pricing for the stable release has not been announced yet.
Q: Can I run tests on browsers other than Chromium?
A: Yes. BrowserBook supports Chromium, Firefox, and WebKit. Switch the target browser in the test configuration panel.
Q: Do my scripts run outside BrowserBook?
A: Yes. Exported tests are standard Playwright scripts. Run them with npx playwright test in any project with Playwright installed.
Q: Does it work with existing Playwright config files?
A: Yes. BrowserBook detects playwright.config.ts (or .js) at the project root and imports your existing configuration including timeouts, viewport settings, and base URLs.
Q: How does it compare to the Playwright VS Code extension?
A: The VS Code extension provides test exploration and some debugging, but lacks a visual recorder, session replay, and deterministic step-through. BrowserBook is more of a dedicated automation IDE versus a code editor plugin.
Conclusion
BrowserBook fills a specific gap in the Playwright ecosystem: developers who want visual, deterministic browser automation without abandoning the standard Playwright format. The recorder and replay features alone make it worth trying if you spend significant time debugging flaky browser tests. It’s a polished Mac app that respects the “it just works” standard Apple users expect — and since the output is standard Playwright, there’s no lock-in beyond the IDE itself.
If you’re on macOS and use Playwright, it’s worth a 20-minute session to see whether the recorder saves you time on your next automation project.