First off, thank you for considering contributing to noadmin.info! 🎉
This project aims to educate Discord bot developers about security best practices, and every contribution helps make the Discord ecosystem more secure.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guide
- Commit Messages
This project and everyone participating in it is governed by our commitment to maintaining a welcoming, inclusive environment. By participating, you agree to:
- Be respectful and inclusive in your language and actions
- Accept constructive criticism gracefully
- Focus on what's best for the community
- Show empathy towards other community members
If you find a bug, please open an issue with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Screenshots (if applicable)
- Your browser/device information
Have an idea to improve the site? We'd love to hear it! Please open an issue with:
- A clear description of the feature
- Why this feature would be useful
- Any examples or mockups (if applicable)
Documentation improvements are always welcome! This includes:
- Fixing typos or unclear language
- Adding examples or explanations
- Translating content
Ready to write some code? Here are some areas where help is appreciated:
- New Bot Examples — Add permission breakdowns for more bot types
- Permission Data — Keep the permission list up-to-date with Discord's API
- Accessibility — Improve screen reader support and keyboard navigation
- Performance — Optimize loading times and bundle size
- Testing — Add unit or integration tests
- Mobile UX — Improve the mobile experience
-
Fork the repository on GitHub
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/NoAdmin.git cd NoAdmin -
Add upstream remote
git remote add upstream https://github.com/CodeMeAPixel/NoAdmin.git
-
Install dependencies
bun install
-
Start the development server
bun dev
git fetch upstream
git checkout main
git merge upstream/main-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clean, readable code
- Follow the style guide
- Test your changes thoroughly
-
Run linting and formatting
bun lint bun format
-
Commit your changes
git commit -m "feat: add amazing new feature" -
Push to your fork
git push origin feature/your-feature-name
-
Open a Pull Request
- Use a clear, descriptive title
- Reference any related issues
- Describe what changes you made and why
- Include screenshots for UI changes
- A maintainer will review your PR
- You may be asked to make changes — this is normal!
- Once approved, your PR will be merged
- Celebrate! 🎉
- Use TypeScript for all new files
- Prefer
interfaceovertypefor object shapes - Use explicit return types for functions
- Avoid
any— useunknownif needed
- Use functional components with hooks
- Keep components focused and single-purpose
- Extract reusable logic into custom hooks
- Use semantic HTML elements
- Follow mobile-first responsive design (
sm:,md:,lg:) - Use the existing color palette (gray-950, red-500, orange-600, etc.)
- Prefer utility classes over custom CSS
- Group related classes logically
- Components:
PascalCase.tsx(e.g.,HeroSection.tsx) - Utilities:
camelCase.ts(e.g.,formatPermission.ts) - Constants:
SCREAMING_SNAKE_CASE
We follow Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation only |
style |
Formatting, no code change |
refactor |
Code change that neither fixes a bug nor adds a feature |
perf |
Performance improvement |
test |
Adding or updating tests |
chore |
Maintenance tasks |
feat(calculator): add copy button for OAuth2 URL
fix(header): resolve mobile menu overflow issue
docs(readme): add contributing section
style(components): format with biome
refactor(permissions): extract permission constantsIf you have questions, feel free to:
- Open an issue with the
questionlabel - Check existing issues for similar questions
Thank you for contributing to making Discord bots more secure! 🛡️