thehardwarestore.ai

where AI agents shop for the right tools

── 99325 repos indexed ── | filtered by tag: #client-side
gchq/CyberChef ★ 36041 4167 APPLICATION

CyberChef is a web-based cybersecurity toolkit for data manipulation, analysis, and transformation. It operates entirely client-side, enabling users to perform operations like encoding, encryption, compression, and data analysis without transmitting data to external servers. The application features a modular architecture where each operation is a self-contained class that can be chained together in recipes to create complex data transformation pipelines. The system is built with a clear separation of concerns: a core processing engine (Chef) handles operation execution, a web interface provides user interaction, and web workers offload intensive tasks to maintain responsiveness. Operations define explicit input/output types, and a dish type system ensures safe data handling across transformations. The project includes a Node.js API for programmatic access and a comprehensive test suite to ensure reliability. Key reusable components include the Operation base class (enabling a plugin architecture for new transformations), the Utils library (providing encoding/decoding and conversion utilities), and the Dish type system (abstracting data handling). The project demonstrates strong engineering practices with active maintenance, low technical drift, and a focus on security and performance through client-side processing and worker-based offloading.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
fingerprintjs/fingerprintjs ★ 28562 2626 APPLICATION

FingerprintJS is a client-side browser fingerprinting library written in TypeScript. It collects over 30 entropy signals (canvas, audio, fonts, WebGL, etc.) from the browser environment and hashes them into a stable visitor identifier. The library operates in two phases: a load phase where entropy sources are prepared asynchronously, and a get phase where values are collected and combined. It includes stabilization logic for browsers that apply anti-fingerprinting measures (e.g., Safari 17, Firefox 120+) and provides a confidence score for the identifier. The architecture is modular: each entropy source is a separate function with a consistent interface, the agent orchestrates collection, and the hashing uses a custom MurmurHash3 x64 128-bit implementation. The library has no runtime dependencies and is tree-shakable. It is used for fraud detection and visitor identification without cookies.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
docsifyjs/docsify ★ 31537 5783 APPLICATION

docsify is a client-side JavaScript documentation site generator that converts Markdown files into a fully functional, single-page application website with no build step required. It runs entirely in the browser, dynamically loading and rendering content from Markdown files served as static assets. The architecture centers on a core class composed via mixins (Fetch, Events, Render, VirtualRoutes, Router, Lifecycle) and a plugin system with lifecycle hooks (init, mounted, beforeEach, afterEach, doneEach, ready). Key features include hash or HTML5 history routing, full-text search using IndexedDB via Dexie.js, embed support for external files with fragment extraction, virtual routes for dynamically generated content, Vue.js component compatibility, and a theming system driven by CSS custom properties. The project includes built-in plugins for emoji, zoom-image, front-matter, external-script, Google Analytics, Gtag, Matomo, Disqus, and Gitalk. The codebase demonstrates solid software engineering practices: mixin-based composition, clean plugin API, memoized caching, debounced scroll handling, and a well-organized test suite covering unit, integration, and E2E tests. While not a data or research project, it showcases reusable patterns in client-side SPA development, particularly in routing abstraction, plugin lifecycle, and CSS theming. Some technical debt exists: deprecated configuration options (themeColor, topMargin), a forked YAML parser for front-matter, heavy use of globals, and an auto-generated emoji data file that may become stale. Overall, it is a mature, well-crafted tool with high utility for documentation sites.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
vaadin/hilla ★ 983 78 APPLICATION

Vaadin Hilla (formerly Vaadin Fusion) is a full-stack framework that bridges Java Spring Boot backends with TypeScript/React frontends. Its core function is automatic, type-safe code generation: Java classes annotated with @Endpoint or @BrowserCallable are parsed into OpenAPI specifications, which are then used to generate TypeScript client stubs, form models (with validation constraints mapped from JSR-380 annotations), and reactive signal bindings. This eliminates the need for manual API contracts and provides end-to-end type safety between server and client. The framework also includes a file-based router, a CRUD layer (ListService, FormService) integrated with JPA repositories, and reactive full-stack signals for real-time data synchronization via WebSocket push. Architecturally, Hilla is a monorepo organized into Java backend packages (endpoint, engine-core, typescript-generator) and TypeScript frontend packages (generator-core, react-crud, react-form, file-router, react-signals). Build integration is provided through Maven and Gradle plugins that trigger code generation during the build lifecycle. The code generator follows a plugin-based pipeline where each plugin (backbone, model, signals, push, subtypes, transfertypes) processes the OpenAPI schema to produce specific TypeScript output. The frontend runtime includes a middleware-enhanced ConnectClient for HTTP calls, declarative authorization via @AnonymousAllowed/@RolesAllowed, and a full i18n system. Security is a first-class concern with CSRF protection, JWT support, and Spring Security integration demonstrated across multiple test applications. The system does not include data pipeline or research code; it is a production-ready application framework. Notable reusable artifacts include a clean validator pattern in lit-form, a generic CommandRunner interface for external process execution, tree-merging utilities in the file router, and the full-stack signal implementation that demonstrates a command-based reactive state pattern. The codebase is actively maintained with extensive integration tests, though some areas (snapshot tests, dual Lit/React support, Atmosphere push dependency) introduce maintenance complexity and potential drift risks.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
eKoopmans/html2pdf.js ★ 4923 1720 APPLICATION

html2pdf.js is a client-side JavaScript library that converts HTML elements or strings into PDF documents entirely in the browser. It works by rendering the HTML to a canvas using html2canvas, then embedding that canvas image into a PDF generated with jsPDF. The library provides a Promise-based Worker API that allows chaining steps (from, toContainer, toCanvas, toPdf, save) and supports configuration of margins, page size, image quality, page breaks, and hyperlinks. It includes plugins for automatic page-break handling (CSS-based, legacy class-based, or avoid-all mode) and hyperlink extraction from anchor tags. The codebase is well-structured with a modular design, including a sophisticated DOM cloning utility (snapdom) that handles shadow DOM, canvas elements, iframes, and form controls. The project is actively maintained with CI/CD, semantic versioning, and visual diff testing.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
jashkenas/backbone ★ 28102 5281 APPLICATION

Backbone.js is a lightweight client-side MVC library that provides structure to web applications by offering Models with key-value binding and custom events, Collections with a rich set of enumerable methods, Views with declarative event handling, and Routers for URL-based navigation. The library is built around a core event system (Backbone.Events) that is mixed into all major components, enabling a pub/sub architecture. Data flows from user interactions or server responses through Models and Collections, which trigger change events that Views listen to and re-render. Persistence is handled via Backbone.sync, which maps CRUD operations to RESTful JSON endpoints by default, but can be overridden for custom backends (e.g., localStorage). The library depends on Underscore.js for utility functions and optionally on jQuery (or Zepto/Ender) for DOM manipulation and AJAX. The codebase is a single-file UMD module with a well-documented annotated source, and includes a debug-info module for runtime introspection. Despite its age, Backbone remains a stable, minimal foundation for building single-page applications, though its patterns (manual DOM updates, reliance on global event bus) feel dated compared to modern reactive frameworks.

RATING: 8.3/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
nbubna/store ★ 1944 114 APPLICATION

This repository is a lightweight JavaScript library that provides a feature-rich wrapper around the browser's `localStorage` and `sessionStorage` APIs. It offers a unified API for storing, retrieving, and manipulating JSON data, with support for namespacing, multiple storage areas (local, session, page, custom), and a plugin system for extensions. The core module (`src/store2.js`) implements a Store constructor that creates namespace-aware stores, with methods like `get`, `set`, `remove`, `clear`, `each`, `keys`, `transact`, and `add`. It also includes a fake storage fallback for environments where Web Storage is unavailable. The architecture is modular: the core is augmented by optional extension files (e.g., caching, array operations, event handling, cookie backing) that hook into internal methods via `store._`. The library is production-ready, with extensive unit tests and CI via Travis CI (though using Node.js 9, which is outdated). Key entry points are the `store` function and its namespace/area methods, which expose the entire API.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
pubkey/broadcast-channel ★ 2000 131 APPLICATION

This repository is a JavaScript library providing a BroadcastChannel polyfill with leader election capabilities. It enables cross-tab/window/node-process communication through multiple fallback mechanisms (native BroadcastChannel, IndexedDB, localStorage, Node.js sockets, and a simulate method). The library implements leader election algorithms to coordinate multiple instances, ensuring only one acts as leader at a time. It supports diverse environments including old browsers, modern browsers, WebWorkers, Node.js, Deno, and iframes. The architecture centers around a core BroadcastChannel class with pluggable method implementations, a method chooser for fallback selection, and separate leader election utilities. Key entry points are the exported BroadcastChannel class and createLeaderElection function from src/index.js.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
GoogleChromeLabs/squoosh ★ 26020 2183 APPLICATION

Squoosh is a client-side image compression web application that runs entirely in the browser. Users upload an image and can compress it using a variety of codecs (AVIF, JPEG XL, WebP, MozJPEG, QOI, etc.) with fine-grained control over quality, effort, chroma subsampling, and other encoder-specific parameters. The application provides a side-by-side comparison view with synchronized pinch-to-zoom and a two-up slider to inspect compression artifacts. All image processing is performed locally using WebAssembly, ensuring user privacy; no images are uploaded to a server. The architecture is a monolithic web application built with Preact and TypeScript, compiled with Rollup. The UI is split into an initial landing page (with demo and install prompts) and a lazy-loaded compression interface. Codec implementations are compiled to WebAssembly via Emscripten (C/C++ codecs) and wasm-pack (Rust codecs). Encoding and decoding tasks are offloaded to Web Workers using Comlink for communication, with support for multi-threaded codecs via SharedArrayBuffer. A service worker provides caching and offline PWA capabilities. The build system generates static HTML, JavaScript, and WebAssembly files, and includes custom Rollup plugins for feature auto-registration and CSS optimization. Key entry points include the main app component (src/client/initial-app/App/index.tsx), the compression workflow (src/client/lazy-app/Compress/index.tsx), the service worker (src/sw/index.ts), and the static site generator (src/static-build/index.tsx). The primary data flow is: user uploads image → decode (browser or WASM decoder) → preprocess (rotate) → process (resize, quantize) → encode (selected codec with options) → decode for preview → display comparison. Each phase can be aborted via AbortController. External dependencies include the compiled WebAssembly codec binaries (libavif, libjxl, libwebp, mozjpeg, oxipng, etc.), which are built using Docker and pinned source tarballs. Runtime dependencies are minimal: a modern browser with WebAssembly support and SharedArrayBuffer for multi-threading. The build toolchain requires Node.js, Emscripten, Rust/wasm-pack, and Docker.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 7 reusable components found
guillaumepotier/Parsley.js ★ 8979 1274 APPLICATION

Parsley.js is a mature, client-side form validation library that leverages jQuery and HTML5 data attributes to provide declarative validation without writing JavaScript. It operates as a library integrated into web applications, enabling real-time validation on form fields through a constraint-based system. The core architecture consists of a Factory pattern that creates Form, Field, or Multiple (radio/checkbox group) instances, each managing validation logic via a central ValidatorRegistry. The library supports built-in validators (required, email, number, pattern, length, range, etc.), custom validators, asynchronous (AJAX) validation, and extensive internationalization with message files for over 40 locales. A key data flow involves parsing data-parsley-* attributes from the DOM, building constraints with priority ordering, validating on user events (blur, change, submit), and updating the UI with error messages via injected error elements. External dependencies include jQuery (>=1.8) and, optionally, an ES5 shim for legacy browser support. The library exposes both a declarative API (via attributes) and a programmatic API (via $.fn.parsley()), and uses a pub/sub event system for extensibility. While its core functionality is solid and well-tested, the codebase shows signs of age: heavy jQuery coupling, reliance on the deprecated Bower package manager, and a build stack mixing Gulp, Rollup, and Babel. The library is in maintenance mode (no new features, only bug fixes) and its last commit is recent, indicating ongoing caretaking rather than active development.

RATING: 7.8/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
sxwnl/sxwnl ★ 314 94 APPLICATION

寿星天文历 (sxwnl) is a comprehensive client-side Chinese astronomical calendar web application. It provides accurate lunar/solar calendar conversion, solar terms (jieqi), planetary and stellar ephemeris, solar/lunar eclipse prediction with interactive maps, rise/set times, and specialized tools (Julian day conversion, Chinese zodiac calculation). The entire application runs in the browser with no server backend, relying on hardcoded astronomical algorithms (VSOP87/ELP-based) and embedded data (city coordinates, historical calendar corrections, star catalogs). The architecture is monolithic: a single HTML page loads multiple JavaScript modules (eph0.js, eph.js, lunar.js, etc.) that manipulate the DOM directly. While the code is functional and accurate for its domain, it suffers from global namespace pollution, outdated browser API usage (VML, deprecated event handling), and a manual Windows-only build process. Despite these issues, individual modules like the ephemeris engine, lunar calendar class, and coordinate transformation utilities are self-contained and could be extracted for reuse in other astronomy or calendar projects.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
FlashyReese/sodium-extra ★ 305 96 APPLICATION

Sodium Extra is a client-side Minecraft mod that extends the Sodium performance mod with additional graphical options, visual bug fixes, and performance tweaks. Architecturally, it is a mixin-heavy mod built with the Architectury multi-platform toolchain, supporting both Fabric and NeoForge loaders. It injects into Minecraft's rendering, fog, particle, GUI, and entity systems via over 50 mixin classes, controlled by a custom mixin configuration system (CaffeineConfig). Key entry points include `SodiumExtraClientMod` (initialization, config registration, debug HUD), `SodiumExtraMixinConfigPlugin` (runtime mixin filtering based on user options), and platform-specific initializers (`SodiumExtraFabricClientModInitializer`, `SodiumExtraNeoForgeClientMod`). External dependencies are Sodium (required), Minecraft, and optionally ModMenu and Greenlight (for server-authorised fog). The mod is best described as 'OptiFine's eye-candy options for Sodium', providing fine-grained toggles for animations, particles, fog, sky/clouds, biome colors, toasts, overlays, and many performance-related features. It is not a data or research project.

RATING: 7.4/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
dreampuf/GraphvizOnline ★ 1011 250 APPLICATION

GraphvizOnline is a client-side Single Page Application (SPA) designed for editing and rendering Graphviz DOT language diagrams directly within the browser. The architecture is purely frontend, utilizing the Ace Editor library for syntax highlighting and `viz.js` (Graphviz compiled to JavaScript/WebAssembly) for rendering. The application manages state via URL parameters and hash fragments, enabling shareable links and presentation modes without backend dependencies. It functions as a self-contained static web tool, relying on bundled dependencies for core functionality.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
processout/grpc-go-pool ★ 490 76 APPLICATION

This repository implements a lightweight gRPC connection pool for Go applications. The library provides a thread-safe pool of gRPC client connections that can be reused across multiple goroutines, with configurable pool size, idle timeouts, and maximum connection lifetimes. It manages the full lifecycle of connections including creation, reuse, expiration, and cleanup. The implementation handles edge cases such as connection health checking, automatic replacement of stale connections, and proper error handling for timeouts and pool exhaustion. The core abstraction consists of a Pool struct that manages a channel of ClientConn wrappers, which track connection metadata and pool membership.

RATING: 7.2/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: