Playwright

Cross-browser end-to-end web testing and browser automation with a single API for Chromium, Firefox, and WebKit.

Framework
npm
v1.63.0
96,772 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
92 /100 Excellent
Development Activity 100
Maintenance 100
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
91 /100 Excellent
Architecture 92
Code Quality 90
Innovation 92
Learning Curve 88

Playwright is an open-source framework from Microsoft for reliable end-to-end testing and browser automation. It drives Chromium, Firefox, and WebKit through one unified API, so a single suite of tests exercises every major rendering engine. Auto-waiting, web-first assertions, and full browser-context isolation eliminate the flakiness that plagues traditional automation tools.

Beyond its full-featured test runner, Playwright works as a general-purpose automation library for scripting, scraping, and driving browsers from AI agents. Built-in tooling such as the codegen recorder, trace viewer, and parallel execution across browser contexts makes it a complete platform for verifying and automating modern web applications.

What You Get

  • A cross-browser engine that runs the same tests against Chromium, Firefox, and WebKit through one API.
  • A parallel, isolated test runner with auto-waiting and web-first assertions that retry until conditions are met.
  • Resilient locators (getByRole, getByLabel, getByTestId) that target elements the way users perceive them.
  • Debugging and authoring tooling: the trace viewer, codegen recorder, UI mode, and step-through inspector.
  • A standalone automation library and CLI usable for scripting, scraping, and driving browsers from AI agents.

Common Use Cases

  • Writing end-to-end test suites that validate critical user flows across every major browser engine.
  • Automating repetitive browser tasks such as form submission, scraping, and PDF or screenshot generation.
  • Capturing traces and videos of test runs to debug intermittent CI failures.
  • Driving a real browser from AI agents and LLM-based automation via the CLI and library APIs.

Under The Hood

Architecture Playwright is a pnpm-workspace monorepo (packages/*) whose engine, playwright-core, splits cleanly into a client that exposes the public API (packages/playwright-core/src/client) and a server-side implementation (browserServerImpl.ts, androidServerImpl.ts) that speaks a defined wire protocol to patched browser builds. The public playwright package is a thin wrapper over playwright-core, adding the CLI (cli.js), while @playwright/test layers a test runner, fixtures, and reporters on top. This protocol-driven client/server separation is what lets one API drive Chromium, Firefox, and WebKit uniformly and enables out-of-process and remote automation.

Tech Stack The codebase is ~91% TypeScript, built and linted with a strict eslint.config.mjs and tsconfig, with 109 dev dependencies orchestrated through workspace scripts. It maintains its own browser patches (browser_patches/) rather than relying solely on stock builds, and ships companion packages for component testing (playwright-ct-react, playwright-ct-vue), HTML reporting, and trace viewing. The single runtime dependency of the playwright package is playwright-core, keeping the installable surface small.

Code Quality Testing is exhaustive: over 500 spec files span library, page, test-runner, electron, android, and installation suites, exercising real browsers across engines. A dedicated eslint config, editorconfig, and DEPS.list dependency manifests enforce internal module boundaries. Consistent naming, typed public surfaces, and a large contributor base (770+) backed by Microsoft signal a mature, well-governed project.

API Design The public API is a benchmark for developer experience: user-facing locators (getByRole, getByLabel, getByTestId) read like intent, auto-waiting removes manual timing, and web-first assertions retry automatically. Getting started takes a few lines, and tooling — codegen to record tests, the trace viewer to replay them, and UI mode — dramatically lowers the effort of authoring and debugging. Documentation at playwright.dev is thorough and example-rich.

Used by 295 apps in this directory

Go
74%
Other

Notifuse

Marketing

2,223

Open-source, self-hosted alternative to Mailchimp, Brevo, and Klaviyo — send newsletters and transactional emails without per-email pricing or vendor lock-in.

View details
81
Repo Health
80
Technical
66
Dependency
Built with
Go 74%
TypeScript 23%
Updated 3 weeks ago
TypeScript
98%
Other

Novu

Developer Tools

40,084

Open-source communication infrastructure that connects your products and AI agents to every channel your users live on — Inbox, Email, SMS, Push, Chat, and more.

View details
93
Repo Health
80
Technical
64
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
Go
69%
MIT

Ollama

AI Development · Developer Tools

181,830

Run Llama, Gemma, DeepSeek, and other open LLMs on your own machine with one command and an OpenAI-compatible API.

View details
90
Repo Health
85
Technical
67
Dependency
Built with
Go 69%
C 22%
Updated 1 weeks ago
TypeScript
95%
MIT

OmniRoute

AI Agents

70,824

A free, open-source AI gateway connecting Claude Code, Codex, Cursor, Cline, and Copilot to 237 AI providers (90+ free) through one endpoint, with automatic fallback and token-compression to stretch free-tier limits further.

View details
86
Repo Health
70
Technical
71
Dependency
Built with
TypeScript 95%
Updated 1 weeks ago
TypeScript
95%
MIT

OmniRoute

AI Agents

70,824

A free, open-source AI gateway connecting Claude Code, Codex, Cursor, Cline, and Copilot to 237 AI providers (90+ free) through one endpoint, with automatic fallback and token-compression to stretch free-tier limits further.

View details
86
Repo Health
70
Technical
71
Dependency
Built with
TypeScript 95%
Updated 1 weeks ago
Ruby
62%
MIT

OnetimeSecret

Security

2,947

Generate self-destructing single-use links to share passwords and sensitive data without leaving traces in inboxes or chat logs.

View details
92
Repo Health
81
Technical
72
Dependency
Built with
Ruby 62%
TypeScript 25%
Updated 1 weeks ago
Ruby
62%
MIT

OnetimeSecret

Security

2,947

Generate self-destructing single-use links to share passwords and sensitive data without leaving traces in inboxes or chat logs.

View details
92
Repo Health
81
Technical
72
Dependency
Built with
Ruby 62%
TypeScript 25%
Updated 1 weeks ago
TypeScript
95%
Apache 2.0

OneUptime

Monitoring

7,668

The complete open-source observability platform that replaces PagerDuty, Datadog, Sentry, and StatusPage with a single self-hostable system.

View details
91
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 95%
Updated 1 weeks ago
TypeScript
95%
Apache 2.0

OneUptime

Monitoring

7,668

The complete open-source observability platform that replaces PagerDuty, Datadog, Sentry, and StatusPage with a single self-hostable system.

View details
91
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 95%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers