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

C#
62%
MIT

Umbraco CMS

CMS

5,258

The friendly open-source .NET CMS that gives developers full control over content, structure, and delivery without lock-in.

View details
97
Repo Health
78
Technical
82
Dependency
Built with
C# 62%
TypeScript 38%
Updated 1 weeks ago
JavaScript
56%
MIT

Uptime Kuma

Monitoring

91,888

Self-hosted monitoring for every service you run — 23 monitor types, 95 notification channels, live dashboards, and public status pages with no vendor lock-in.

View details
91
Repo Health
81
Technical
62
Dependency
Built with
JavaScript 56%
Vue 41%
Updated 1 weeks ago
JavaScript
56%
MIT

Uptime Kuma

Monitoring

91,888

Self-hosted monitoring for every service you run — 23 monitor types, 95 notification channels, live dashboards, and public status pages with no vendor lock-in.

View details
91
Repo Health
81
Technical
62
Dependency
Built with
JavaScript 56%
Vue 41%
Updated 1 weeks ago
TypeScript
72%
Apache 2.0

Valmis

AI Agents

108

A security-focused, self-hostable AI agent platform for production work — agents run in isolated containers that access credentials only through a host-side proxy, so the AI itself never sees API keys or plaintext credentials.

View details
70
Repo Health
69
Technical
74
Dependency
Built with
TypeScript 72%
Svelte 27%
Updated 1 months ago
TypeScript
72%
Apache 2.0

Valmis

AI Agents

108

A security-focused, self-hostable AI agent platform for production work — agents run in isolated containers that access credentials only through a host-side proxy, so the AI itself never sees API keys or plaintext credentials.

View details
70
Repo Health
69
Technical
74
Dependency
Built with
TypeScript 72%
Svelte 27%
Updated 1 months ago
Rust
83%
AGPL 3.0

Vaultwarden

Password Manager · Security

68,240

Unofficial Bitwarden-compatible server in Rust — run the full Bitwarden ecosystem on a Raspberry Pi using every official client you already have, without the multi-container overhead.

View details
89
Repo Health
69
Technical
70
Dependency
Built with
Rust 83%
Updated 2 weeks ago
Go
66%
AGPL 3.0

Vikunja

Project Management

5,533

Self-hosted task management with natural-language quick-add, multiple views, and a fully documented REST API — your tasks, your infrastructure, zero lock-in.

View details
86
Repo Health
81
Technical
68
Dependency
Built with
Go 66%
TypeScript 22%
Vue 10%
Updated 1 weeks ago
Python
56%
AGPL 3.0

VoiceStudio

Mcp · Music Audio · Voice AI

51,962

Open-source, fully local ElevenLabs alternative for voice cloning, voice design, video dubbing, dictation, transcription and audiobooks, with a local API and MCP server for agents.

View details
85
Repo Health
83
Technical
70
Dependency
Built with
Python 56%
JavaScript 23%
TypeScript 19%
Updated 6 days ago
TypeScript
95%
Apache 2.0

Void

AI Code Assistants · Automation · Code Editors

28,786

Open-source AI code editor with direct LLM integration and data privacy

View details
45
Repo Health
84
Technical
68
Dependency
Built with
TypeScript 95%
Updated 4 months 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