Crie bots para Discord
como software de verdade.
O Spraxium adiciona a camada de arquitetura que o Discord.js não oferece: módulos, injeção de dependência, guard pipelines e comandos tipados. Um único modelo para todos os tipos de interação.

Módulos com fronteiras bem definidas, provedores injetados e um container de DI que resolve tudo de forma determinística durante a inicialização.
Combine módulos entre domínios, compartilhe provedores entre eles e aplique guards a qualquer tipo de interação com um único decorator.
Cada provedor se conecta ao onBoot(), onReady() e onShutdown(). Sem ordem de inicialização oculta, sem condições de corrida.
Escreva a lógica de permissões uma vez como classe guard e aplique-a a slash commands, context menus e prefix commands com um único decorator.
Cada opção de comando, payload de interação e contrato de provedor é totalmente tipado. Sem castings, sem any, sem surpresas em runtime da API do Discord.
Providers são classes injetáveis puras com dependências declaradas. Troque implementações reais por mocks no teste sem tocar o código de produção.
Benchmark de arquitetura
Menos complexidade conforme seu bot cresce.
À medida que um projeto escala além de alguns comandos, o discord.js exige uma configuração manual crescente - guards, DI, agendamento e estado feitos à mão. O Spraxium cuida dessa camada.
* Estimativas ilustrativas de complexidade com base nas linhas de código de infraestrutura necessárias por marco em um projeto de bot de produção típico.
A Lacuna Arquitetural
Mesmo comando. Mundo diferente.
O mesmo comando /ban, implementado duas vezes. Uma com discord.js puro, outra com Spraxium. A diferença não está na sintaxe. Está na estrutura, na segurança e na escala.
- Registro e handler totalmente desacoplados, sem vínculo estrutural entre eles
- Checks de permissão escritos à mão em cada handler, sem enforcement ou reuso
- Todas as interações passam por um único listener global, zero isolamento por feature
- Sem injeção de dependência; serviços são importados diretamente, sem abstração
- Sem sistema de módulos; as features crescem lado a lado sem limites claros
Por que existe
Nascido de uma frustração real.
Todo bot da Spacelaxy começava do mesmo jeito: um projeto discord.js limpo que virava uma bagunça conforme novas funcionalidades eram adicionadas. Sem estrutura, sem fronteiras, estado global em todo lugar. O código funcionava, mas ninguém queria mexer nele.
O Spraxium começou como uma ferramenta interna pra resolver isso. Módulos, injeção de dependências, guards: princípios de backend aplicados ao desenvolvimento de bots Discord. Rodou todos os bots da Spacelaxy em produção por mais de um ano antes de qualquer pessoa de fora conhecer.
Agora é open source. O mesmo framework, organizado, documentado e pronto pra quem está cansado de escrever os mesmos if-else em cada listener.
Slash commands
Defina a estrutura. Cuide da lógica. Mantenha-os separados.
O Spraxium divide slash commands em dois arquivos: uma classe de comando que declara opções e permissões, e um handler que recebe serviços injetados e executa a lógica. O framework os conecta automaticamente no boot.
- Opções type-safe com decorators @SlashOption
- Injeção de DI completa no handler, como qualquer outra classe
- Guards aplicados no nível do handler, não dentro do código
- Auto-registrado no Discord durante a inicialização
Ecossistema de pacotes
Um framework, doze pacotes.
Doze pacotes focados construídos em torno do mesmo contrato de módulos e DI. Cada um é opcional, versionado de forma independente e entra em qualquer módulo com um único import. Comece com core e common. Adicione o restante conforme seu bot cresce.
Componentes de UI
Construa componentes de UI do Discord como classes TypeScript.
Declare cada componente de UI do Discord como uma classe TypeScript tipada. Sem construtores manuais, sem opções espalhadas pelo código. Composível e injetável por padrão.
Explorar ComponentesModais
Modais com experiência nativa, validados e prontos para produção.
Defina campos de modais como propriedades de classe. Os validadores executam antes do handler ser chamado. Respostas em cache sobrevivem ao timeout de 15 minutos do Discord automaticamente.
Ver documentaçãoEcossistema CLI
Um comando. Qualquer integração.
A CLI do Spraxium não para em instalar dependência. Ela gera providers, registra módulos e conecta configurações base na sua arquitetura em segundos. Clique em qualquer integração para ver o comando exato e o setup gerado.

Casos de uso
Um framework. Todo tipo de bot.
De bots com slash commands escaláveis a arquiteturas multi-serviço, cada pacote entra de forma independente e faz um único trabalho bem feito.
Arquitetura de bot escalável
Crie bots multi-módulo com DI topológica, pipelines de guards e lifecycle hooks tipados. @spraxium/core e @spraxium/common sustentam estruturas que crescem de 10 a 200 comandos.
Endpoints HTTP dentro do bot
Execute controllers REST no mesmo processo que o Discord. @spraxium/http oferece DTOs, validação e um BotBridge para enviar mensagens no Discord direto dos handlers HTTP.
Entrega de eventos entre serviços
Receba eventos tipados e assinados com HMAC de qualquer backend Node.js via @spraxium/signal. Sem polling, sem banco compartilhado, sem acoplamento entre serviços.
Jobs agendados e automação
Declare jobs cron e por intervalo que iniciam após onReady() e encerram limpos no desligamento. @spraxium/schedule integra nativamente com o lifecycle dos módulos.
Bots multilíngues para comunidades
Resolução de idioma por servidor, arquivos de mensagens carregados sob demanda e chaves de tradução tipadas em todos os slash commands. Desenvolvido com @spraxium/i18n.
Configuração tipada e observabilidade
Valide todas as variáveis de ambiente no boot com schemas gerados automaticamente. Monitore uso de comandos, latência e taxas de erro desde o primeiro dia com @spraxium/env e @spraxium/analytics.
“Já testei discord.js, Necord e até chamadas REST puras. Nada chega perto. Spraxium é o primeiro framework que realmente parece ter sido criado para bots grandes. Necord acopla demais aos internals do discord.js e espalha essa complexidade por todo o projeto. Com Spraxium, cada feature finalmente tem um lugar certo.”
Status do Projeto
O que foi entregue. O que vem a seguir.
O Spraxium está em desenvolvimento ativo. Aqui está uma visão transparente do que está disponível hoje e o que está no roadmap.
- @spraxium/logger: structured logging
- @spraxium/webhook: decorator-based senders
- @Defer() and @AutoDefer() decorators
- Process lock & --force-unlock flag
- Upgrade notifier on startup
- Cross-package stabilization (0.2.0)
- Webhook handler decorators
- Hot module reload (dev mode)
- Documentation site
- Testing utilities & vitest helpers
- Example bot projects
- @spraxium/dashboard: web UI
- Plugin registry & marketplace
- Voice state handler decorators
- CLI new project templates v2
- Rate limiting decorators
- @spraxium/cache: distributed cache
Comece a construir
Trate seu bot como uma superfície de produto.
Limites claros de módulos, um pipeline de guards que cobre todos os tipos de interação, diagnóstico de inicialização que mostra exatamente o que foi carregado, e nove pacotes prontos quando seu bot precisar crescer.
