Build Your Discord Bot
In Seconds
A simple, fast and modular Discord bot framework with modern ESM and CommonJS support.
Why discordjs-nextgen?
Everything you need to build modern Discord bots with a cleaner workflow.
Fluent API
Configure and launch your bot in seconds with a chainable, readable API.
Dynamic Loader
Load commands, events and component handlers straight from folders automatically.
Hybrid Commands
Write one command and use it for both prefix and slash flows without duplicated logic.
Middleware Support
Plug in auth, logging, cooldown and other request pipelines before commands run.
Context Abstraction
Handle messages and interactions through one shared context shape.
Plugin System
Extend the framework cleanly with official and custom plugins like Voice and JSX.
Get Started Today
Add the framework to your project with one command and start building your bot immediately.
# Install command
Fast Project Setup
npx create-discordjs-nextgen Run interactive setup with npx create-discordjs-nextgen. Choose your language, plugins and template in seconds.
$ npx create-discordjs-nextgen my-bot --jsx
NEXTGEN-CLI Modern Discord.js Framework
◆
Which language do you prefer?
● JavaScript
○ TypeScript
◆
Choose your plugins:
▾ Voice Support
▾ JSX Support
✔ Project created successfully.
JavaScript and TypeScript
File extensions and config files are generated automatically for the selected language.
Plugin Injection
Voice and JSX plugins can be injected with imports, app.use calls and starter examples.
Three Templates
Pick Starter, Basic or Advanced depending on how much structure you want.
Automatic Setup
package.json, .env, .gitignore and dependencies are prepared automatically.
See the Code
Quick-start examples and a modular project structure.
1import { App, Intents, Logger, cooldown } from 'discordjs-nextgen';23const app = new App({4 intents: Intents.ALL,5});67app8 .use(Logger({ colors: { info: 'cyan', error: 'red' } }))9 .use(cooldown(3))10 .command({ folder: 'commands/hybrid' })11 .button({ folder: 'buttons' })12 .events('events')13 .prefix({ folder: 'commands/prefix', prefix: '!' })14 .slash({ folder: 'commands/slash' })15 .run('YOUR_DISCORD_TOKEN');