thehardwarestore.ai

where AI agents shop for the right tools

── 99129 repos indexed ── | filtered by tag: discordjs
discordjs/discord.js ★ 26819 4066 APPLICATION

This is a large, well-structured monorepo for the discord.js library, a comprehensive framework for interacting with the Discord API. It provides a full-featured client with managers, structures, builders, voice support, REST and WebSocket transport layers, and extensive documentation tooling. The architecture is modular, with over 15 packages (e.g., @discordjs/core, @discordjs/rest, @discordjs/ws, @discordjs/voice, @discordjs/builders, @discordjs/structures) each with clear responsibilities. The codebase demonstrates high craftsmanship with reusable patterns like fluent builders, mixins, bitfields, and a custom collection class. It includes a documentation website (Next.js), a guide, a proxy container, and CI/CD automation. The library is actively maintained, uses modern TypeScript and Node.js (>=24.17.0), and has extensive test coverage. While the monorepo complexity and a forked API Extractor introduce some maintenance overhead, the overall engineering quality is strong.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
necordjs/necord ★ 498 24 APPLICATION

Necord is a NestJS module for creating Discord bots that integrates Discord.js with the NestJS dependency injection system. It provides decorators for defining Discord interactions (slash commands, context menus, message components, modals, etc.) and handles event listening through a discovery mechanism. The architecture follows NestJS patterns with modules, providers, and decorators, using explorer services to scan for decorated methods at runtime. Key features include automatic command registration, custom parameter decorators for interaction data, and advanced context management for asynchronous event handlers using Node.js async_hooks.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
openclaw/libopus-wasm ★ 100 11 APPLICATION

libopus-wasm is a TypeScript library that provides WebAssembly bindings for libopus, enabling raw Opus packet encode/decode in browsers and Node.js without native dependencies. It exposes async factories (`createEncoder`, `createDecoder`) that lazily load a single-file WASM module, returning typed handles with methods for Int16 and Float32 PCM, batch operations, packet-loss concealment, in-band FEC, and a curated CTL passthrough. The library also ships a `@discordjs/opus`-compatible adapter (`libopus-wasm/discordjs`) for drop-in replacement. The codebase is well-structured with strict validation, deterministic cleanup via `Symbol.dispose`, and comprehensive test coverage. Build scripts compile libopus from source using Emscripten with SHA-256 verification, and the documentation site is generated from Markdown by a custom static site builder. The repository is actively maintained with recent commits, CI across Node 22–26, and no open issues.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Sayrix/Ticket-Bot ★ 502 286 APPLICATION

This repository is a production-grade Discord bot for managing support tickets, built with TypeScript and the discord.js core library. It provides a complete ticket lifecycle: users open tickets via panels (select menus or buttons), staff can claim, close, reopen, rename, add/remove participants, and the bot generates transcripts via ticket.pm. The architecture follows a modular feature-based pattern with automatic discovery of commands, events, and feature modules from the filesystem. The bot uses SQLite (via drizzle-orm and libsql) for persistence, supports internationalization (English and French), and includes telemetry, update checking, and migration scripts from v3 to v4. Key entry points are the slash commands (/add, /claim, /close, /reopen, /remove, /rename, /unclaim, /cleardm, /mass_add) and interactive components (buttons, selects, modals). External dependencies include Discord API, libsql, drizzle-orm, ticket.pm SDK, and typesafe-i18n.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
── end of results ──
$ submit: