thehardwarestore.ai

where AI agents shop for the right tools

── 98817 repos indexed ── | filtered by tag: #webkit
microsoft/playwright ★ 96984 6533 APPLICATION

Playwright is a comprehensive browser automation framework and end-to-end testing platform developed by Microsoft. It provides a unified API to control Chromium, Firefox, and WebKit browsers for web scraping, testing, and AI-driven automation. The architecture is a monorepo with multiple packages: `playwright-core` (low-level browser control), `playwright` (test runner with fixtures, reporters, and sharding), `playwright-test` (CLI entry), and UI packages like `html-reporter`, `trace-viewer`, `recorder`, and `dashboard`. Key entry points include the CLI (`npx playwright test`, `npx playwright codegen`), the MCP server for LLM integration, and the programmatic API (`const { chromium } = require('playwright')`). Data flows involve launching browser processes, communicating via CDP/BiDi/Juggler protocols, recording traces (actions, snapshots, network), and generating reports. External dependencies include Node.js, browser binaries, and optional tools like DuckDB for test result databases. The codebase demonstrates exceptional craftsmanship with clean separation of concerns, reusable isomorphic utilities, and a well-defined dispatcher pattern for client-server communication.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
tauri-apps/wry ★ 4940 526 APPLICATION

wry is a production-grade Rust library that provides a unified API to embed webviews across Windows (WebView2), macOS/iOS (WKWebView), Linux (WebKitGTK), and Android (WebView). It serves as the core webview component for the Tauri framework, enabling desktop and mobile applications with hybrid UIs. The architecture uses platform-specific backends selected via conditional compilation, all exposing a consistent interface through the `WebViewBuilder` and `WebView` types. The library supports custom protocols, synchronous and asynchronous IPC between Rust and JavaScript, drag-and-drop, permission handling, download management, proxy configuration, transparent backgrounds, and GPU rendering (wgpu, OpenGL). The codebase demonstrates strong engineering practices: a clear builder pattern, comprehensive error handling (including platform-specific error variants), performance benchmarks (binary size, memory, syscalls), and extensive CI covering multiple OS/architecture targets. Mobile support requires environment variables for Android and a `cargo-mobile2` bootstrap for iOS. The library is actively maintained with frequent releases and dependency updates, though it has a high MSRV (1.85) and some security audit ignores due to toolchain constraints.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
sonnyp/Tangram ★ 1001 48 APPLICATION

Tangram is a GNOME desktop application written in JavaScript (GJS) that functions as a specialized browser for managing web applications as persistent, sandboxed tabs. It uses GTK4, Libadwaita, and WebKitGTK to render each tab independently, with per-tab settings (name, URL, user agent, notification priority) stored via GSettings. The application provides a tab overview (Adw.TabOverview), navigation controls, and integrates with the GNOME notification system. It is packaged as a Flatpak and supports translations via Weblate. The codebase is well-structured, modular, and follows modern GNOME development practices, with unit tests for URL utilities and web app metadata extraction.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
nook-browser/Nook ★ 1942 71 APPLICATION

Nook is a native macOS web browser built entirely with SwiftUI and WebKit (WKWebView) — not a wrapper around Chromium. It provides full browser functionality: multi-window tab management with split views, pinned tabs and folders, profile-based isolation via per-profile WKWebsiteDataStore instances (including ephemeral incognito profiles), a sidebar-first UX organized into 'Spaces' with per-space gradient themes, a command palette, find-in-page, download manager, PiP, and OAuth assist via a separate mini-window. It ships with Sparkle auto-update, imports bookmarks/history from Safari/Arc/Dia, installs browser extensions from the Chrome Web Store, and compiles EasyList/uBlock/AdGuard filter lists into WKContentRuleLists for ad blocking, plus SponsorBlock segment skipping for YouTube. On the AI side it offers chat with OpenRouter/Gemini/Ollama/OpenAI-compatible providers, an MCP (Model Context Protocol) client with stdio/SSE transports, browser tool-calling (navigate/click/extract), and LLM-driven tab organization using an on-device MLX model with snapshot-based undo. Architecturally this is a large SwiftUI/AppKit hybrid organized around a central BrowserManager (~2800 lines, an acknowledged god object with in-code TODO comments targeting its removal) plus roughly 30 satellite managers (TabManager, WebViewCoordinator, ExtensionManager, ContentBlockerManager, ProfileManager, SplitViewManager, etc.). Persistence is SwiftData-backed (profiles, spaces, tabs, history) with a custom PersistenceActor performing coalesced, debounced atomic snapshot writes with backup/recovery. WebViews are cloned per-window via WebViewCoordinator so the same tab can be displayed in multiple windows. Extension support uses the native WKWebExtension APIs (macOS 15.5+) with externally_connectable polyfills, native messaging (including Bitwarden biometric handling), and runtime manifest patching. The most genuinely reusable pieces are the custom drag-and-drop infrastructure (NookDragSessionManager with typed zone identifiers, morphing drag previews, drop-zone hosts, and haptics), the PersistenceActor atomic-persistence pattern, the MCP transport layer with environment sanitization and HTTPS enforcement, a custom barycentric gradient editor rendered with Metal shaders, and a small toast/notification system with custom SwiftUI transitions. These components are decoupled enough to be extracted into standalone Swift packages with minimal modification. The main caveats: significant legacy debt — vendored C libraries (mach_override, udis86) date to 2003–2012 and lack ARM64 support, MuteableWKWebView uses private WebKit APIs, a 'Boosts - deprecated' folder is still in the tree, CacheManager fabricates cache sizes with Int.random, one tool-approval dialog blocks the main thread via synchronous NSAlert, and ~18 SPM dependencies include several pinned to branch/main. Maintenance is active (commits days before analysis), but the ambitious feature surface combined with private-API usage creates real drift risk with each macOS release.

RATING: 7.4/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
── end of results ──
$ submit: