Installation | Features | Usage | Examples
Container Factory abstracts the complexity of Discord's new Components v2 architecture (Containers, Sections, TextDisplay, etc.) into a fluent, type-safe API. Built on top of discord.js, it allows you to construct beautiful, rich interfaces for your bots with minimal boilerplate.
- 🧩 Complete v2 Support
- Containers, Sections, Separators
- Text Display Components
- Media Galleries & Files
- 🎨 Fluent API Design
- Intuitive helper functions for every component
- Chainable builders
- 🖼️ Media Galleries
- Create scrolling carousels with ease
- 🔘 Interactive Components
- Buttons, Link Buttons, Labels
- Advanced Select Menus (String, User, Role, Channel, Mentionable)
- 🪶 Zero Dependencies
- Lightweight and focused purely on UI construction
npm install container-factoryNote: Requires
discord.jsv14.25.1 or newer.
import { createText, buildContainer, createMessagePayload } from 'container-factory';
// 1. Create components
const helloProps = createText("👋 **Welcome to Container Factory!**");
// 2. Build the container
const container = buildContainer(helloProps);
// 3. Send it
await channel.send(createMessagePayload(container));import { createSection, createButton, buildContainer } from 'container-factory';
const settingsBtn = createButton('settings', '⚙️');
const section = createSection("**User Settings**\nManage your preferences here.", settingsBtn);
await channel.send(createMessagePayload(buildContainer(section)));import { createMediaGallery, buildContainer } from 'container-factory';
const gallery = createMediaGallery([
'https://example.com/slide1.png',
'https://example.com/slide2.png'
], "Project Showcase");
await channel.send(createMessagePayload(buildContainer(gallery)));- Fork the repository
- Clone your fork:
git clone https://github.com/ramkrishna-js/container-factory.git - Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request
Ramkrishna
- Github: @Ramkrishna
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ by Ramkrishna