O Spraxium inclui um conjunto completo de aplicações reais e executáveis em github.com/spraxium/spraxium/tree/main/apps. Atualmente, esses exemplos estão alinhados com as APIs atuais, incluindo builders assíncronos de componentes, padrões modernos de interação e arquitetura mais preparada para produção.
Esta página ajuda você a escolher o melhor ponto de partida para o seu objetivo e, em seguida, mostra um fluxo prático para executar, inspecionar e modificar os exemplos com segurança.
Mapa de apps
Atualmente, o Spraxium possui 13 apps oficiais de exemplo:
components-botcontext-menu-botdynamic-botguard-bothttp-boti18n-boti18n-components-botmodal-botsandboxschedule-botsignal-botslash-botwebhook-bot
upgrade-test-bot foi removido intencionalmente e não faz parte do conjunto de apps do modelo atual.
O que cada app ensina
1) slash-bot
Use primeiro se você quer a entrada mais limpa possível.
Você aprende:
- Registro e execução de slash commands.
- Organização de handlers e módulos com baixa complexidade inicial.
- Fluxo base de comandos antes de adicionar infraestrutura avançada.
2) context-menu-bot
Use quando seu fluxo começa por ações de contexto (usuário/mensagem), e não por slash command.
Você aprende:
- Comandos de contexto para usuário e mensagem.
- Padrões de defer e resposta para evitar timeout de interação.
- Composição de guards e services ao redor de handlers.
3) guard-bot
Use para entender camadas de controle de acesso e políticas.
Você aprende:
- Composição de guards para cargo, permissão e condição.
- Reuso de validações de segurança em módulo/handler.
- Padrões para tirar regra de autorização do código de negócio.
4) components-bot
Use quando você precisa de botões/select menus com fluxos mais ricos.
Você aprende:
- Uso de Component V2 com builders orientados a
await. - Fluxos de interação em múltiplas etapas.
- Mapeamento de interações de componente para handlers tipados.
5) dynamic-bot
Use quando dados precisam viajar dentro da interação de componentes.
Você aprende:
- Estratégias de identidade/payload dinâmico.
- Tratamento seguro de estado sem parsing frágil.
- Estrutura amigável para evolução de contratos de componente.
6) modal-bot
Use para coleta de dados em formato de formulário.
Você aprende:
- Abertura de modais e handlers de submit.
- Validação e feedback de erro em campos enviados.
- Integração de dados de modal no fluxo de comandos.
7) i18n-bot
Use quando localização é requisito principal.
Você aprende:
- Detecção de locale e carregamento de traduções.
- Composição de mensagens com utilitários sensíveis a idioma.
- Estruturação de respostas multilíngues em comandos.
8) i18n-components-bot
Use para combinar localização com fluxos complexos de componentes.
Você aprende:
- Labels e conteúdo localizados em árvores de componente.
- Estados dinâmicos de UI com consistência por idioma.
- Limites práticos de tradução em UX orientada a interação.
9) http-bot
Use quando seu bot também expõe endpoints HTTP.
Você aprende:
- Execução conjunta de runtime de bot e runtime HTTP.
- Organização de endpoints ao redor de serviços/módulos.
- Padrões básicos de middleware usados no framework.
10) webhook-bot
Use quando eventos externos devem acionar ações no Discord.
Você aprende:
- Recebimento e validação de requisições webhook.
- Despacho de eventos para handlers corretos.
- Estratégias de confiabilidade e erro explícito.
11) signal-bot
Use para padrões de comunicação orientados a eventos.
Você aprende:
- Publicação e consumo de sinais/eventos.
- Desacoplamento entre produtores e consumidores.
- Arquitetura de comunicação interna escalável.
12) schedule-bot
Use para automações recorrentes.
Você aprende:
- Tarefas agendadas e fluxo de execução estilo cron.
- Limites seguros para operações Discord em jobs.
- Organização de rotinas com observabilidade.
13) sandbox
Use como laboratório de integração.
Você aprende:
- Combinação de vários padrões do framework.
- Demonstrações de exceção e tratamento de edge cases.
- Prototipação rápida antes de extrair módulos de produção.
Trilhas recomendadas de aprendizado
Escolha uma trilha e siga a sequência para absorção mais rápida.
Trilha A: fundamentos de comandos
slash-botcontext-menu-botguard-bot
Trilha B: UX com interação intensa
components-botdynamic-botmodal-boti18n-components-bot
Trilha C: arquitetura de backend/integração
http-botwebhook-botsignal-botschedule-botsandbox
Trilha D: produto com foco em localização
i18n-boti18n-components-botsandbox
Como executar um exemplo
No diretório raiz do workspace:
pnpm install
pnpm --filter @spraxium/slash-bot build
pnpm --filter @spraxium/slash-bot startTroque @spraxium/slash-bot pelo pacote do app que você quer executar.
Fluxo prático para estudar exemplos
Use este ciclo ao analisar qualquer app:
- Leia
spraxium.config.tspara entender wiring de módulos e hooks de runtime. - Leia handlers em
src/primeiro, depois services/providers. - Execute um comando/interação completo e observe logs.
- Modifique um único comportamento e rode novamente.
- Mantenha experimentos úteis e descarte experimentos ruidosos rápido.
Esse método mantém seu estudo focado em fluxo de execução, e não só em leitura estática.
Notas de migração modelo atual para quem usa exemplos
Se você usou revisões anteriores dos exemplos, considere:
- Exemplos de Component V2 agora enfatizam builders assíncronos.
- Fluxos dinâmicos de componentes foram modernizados para payloads atuais.
- Exemplos de HTTP/webhook seguem as interfaces mais recentes dos pacotes.
- Manifestos dos apps foram normalizados para consistência no workspace.
Criando seu app a partir de um exemplo
Abordagem segura para produção:
- Escolha o exemplo mais próximo do comportamento desejado, não do tamanho.
- Copie somente módulos que você consegue explicar linha por linha.
- Substitua variáveis de ambiente e segredos primeiro.
- Adicione guards, logs e tratamento de erro antes de novas features.
- Escreva testes para o primeiro fluxo crítico de comando/interação.
Os exemplos servem como referência de arquitetura, não como template pronto para produção.