Welcome Contributors!
Fire is an open-source Discord bot built with TypeScript, Discord.js, and Discord Akairo. This documentation will help you understand the codebase and contribute effectively.Project Overview
Fire is designed to be a comprehensive Discord bot with:- Moderation tools
- Utility commands
- Content filtering
- Ticket system
- Starboard functionality
- Premium features
- And much more!
Technology Stack
Core Dependencies
- Node.js: >=24.13.0
- TypeScript: ^5.9.3
- Discord.js: Custom fork with Fire-specific enhancements
- Discord Akairo: Command/event framework
- PostgreSQL: Database via ts-postgres
Key Libraries
package.json
Development Workflow
Getting Started
Set Up Environment
Configure your development environment (see Setup).
Contributing Guidelines
Code Style
- Use TypeScript for all new code
- Follow existing code patterns and conventions
- Run Prettier before committing:
File Organization
Module Aliases
The project uses TypeScript path aliases:@fire/lib/*→lib/*@fire/src/*→src/*@fire/config/*→config/*@fire/i18n/*→languages/*
Commit Guidelines
Commit Messages
Use clear, descriptive commit messages:Before Committing
- Test your changes thoroughly
- Run
pnpm formatto format code - Ensure TypeScript compiles:
pnpm compile - Verify no linting errors
Testing Your Changes
Local Testing
- Set up a test Discord server
- Create a bot application in Discord Developer Portal
- Configure environment variables
- Run the bot in development mode:
Production Build
Test the production build before submitting:Getting Help
- Check existing documentation
- Review similar commands/modules for examples
- Ask questions in the Fire Discord server
- Open an issue for bugs or feature requests
License
Fire is licensed under AGPL-3.0-only. All contributions must comply with this license.Next Steps
Architecture
Learn about the codebase architecture
Setup Guide
Set up your development environment
Create Commands
Build your first command
Create Modules
Create background modules