Skip to main content

The Need for HTTP-First Discord Bots

A Discord application does not need a gateway connection to answer slash commands. Discord can POST every interaction to an HTTPS endpoint, and the application only has to verify the signature and reply. That model fits how most bots are actually deployed today: stateless processes, horizontal scaling, serverless-style platforms, zero-downtime rollouts. A gateway client, by contrast, holds a long-lived socket, needs shard coordination, and must be resident even when nothing is happening. @wolfstar/http-framework owns exactly that surface: the HTTP server, Discord request verification, interaction routing, piece stores, and the application-command registry.

Small Packages Over One Framework

Stars Components is a monorepo of focused packages rather than a single dependency. Infrastructure helpers work in any Node.js application; the framework packages form an optional stack on top of them.
Adopting @wolfstar/safe-fetch or @wolfstar/logger in an existing service costs one dependency and no framework buy-in. See Architecture for how the layers relate. The split goes further than one repository. Optional @wolfstar/http-framework extensions — a REST API server, i18n, modular subcommands — live in their own wolfstar-project/plugins repository and release independently of the core framework, so picking one up never bumps @wolfstar/http-framework itself. See the Plugins guide.

Types as the Contract

Every package exposes its supported API through src/index.ts and explicit package.json export maps, so private implementation files never become accidental public contracts. The API reference is generated from those entry points on every documentation build — it cannot drift from the code. The same idea runs through the packages themselves: typed environment keys in @wolfstar/env-utilities, typed translation keys in @wolfstar/plugin-i18next, Result values instead of thrown errors in @wolfstar/safe-fetch.

Testable by Construction

Commands and listeners are plain classes discovered by a store, so they can be reloaded and tested independently. @wolfstar/http-framework-test-utils dispatches interaction fixtures without starting a network server — see Testing Interactions.

Next Steps