Live now! discordjs-nextgen v1.3.9

Build Your Discord Bot In Seconds

A simple, fast and modular Discord bot framework with modern ESM and CommonJS support.

$ npm i discordjs-nextgen

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

$npm install discordjs-nextgen
CLI Tool

Fast Project Setup

npx create-discordjs-nextgen Run interactive setup with npx create-discordjs-nextgen. Choose your language, plugins and template in seconds.

terminal

$ 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.

JS/TS

JavaScript and TypeScript

File extensions and config files are generated automatically for the selected language.

PLG

Plugin Injection

Voice and JSX plugins can be injected with imports, app.use calls and starter examples.

TPL

Three Templates

Pick Starter, Basic or Advanced depending on how much structure you want.

PKG

Automatic Setup

package.json, .env, .gitignore and dependencies are prepared automatically.

View full CLI documentation →

See the Code

Quick-start examples and a modular project structure.

1import { App, Intents, Logger, cooldown } from 'discordjs-nextgen';
2
3const app = new App({
4 intents: Intents.ALL,
5});
6
7app
8 .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');