Automate the web.
Know what will work.

Write readable browser flows once. Run them with Puppeteer, Playwright, or Selenium — with Baseline compatibility intelligence built in.

Ready to run

flow.bsYAML
1browser:
2  framework: playwright
3
4steps:
5  - goto: https://example.com
6  - screenshot: home.png
7  - baseline_scan:
8      year: 2024
‹›↻
https://example.com
Example Domain

A sample page for a readable automation flow.

✓
Baseline scan: 2024All checked features meet the target.
  • dialog.showModalBaseline 2020
  • fetchBaseline 2017
  • URLPatternBaseline 2023

One script.
Multiple engines.

Choose Puppeteer, Playwright, or Selenium without rewriting the flow.

# checkout.bs browser:
  framework: playwright
steps:
  - goto: /checkout
  - click: "#pay"
  - assert: "Complete"
Puppeteer→
Playwright→
Selenium→

Compatibility,
in the loop.

BaseScript scans the page as it runs, flags features outside your Baseline target, and keeps the result next to the step that found it.

  1. 01Write the flow
  2. 02Run the browser
  3. 03Review Baseline
flow.bs
1 - goto: /app
2 - click: "#open-modal"
3 - assert: dialog
4     .toBeVisible()
5 - script: |
6     await fetch('/api')
7 - baseline_scan:
8     year: 2024
Baseline results
!
dialog.showModalBaseline 2020
›
✓
fetchBaseline 2017
›
✓
URLPatternBaseline 2023
›

The readable route to reliable automation.

Write the flow in YAML, watch it run in a real browser, and see compatibility issues before they reach users.

$ basescript run flow.bs


✓ compiled for Playwright

✓ browser flow complete

✓ Baseline scan attached