Contributing to Nebula
Thank you for your interest in contributing to Nebula Browser! This guide will help you get started with contributing to the project.
Getting Started
Contributing to Nebula is easy and welcoming to developers of all skill levels. Here's how to get started:
Prerequisites
- Git knowledge
- JavaScript/HTML/CSS experience
- Node.js and npm installed
- Code editor (VS Code recommended)
Setup Development Environment
- Fork the repository on GitHub
- Clone your fork locally
- Install dependencies with
npm install - Start the development server
Find Your First Issue
- Look for "good first issue" labels
- Check the project roadmap
- Ask questions in discussions
- Start with documentation improvements
Quick Start Commands
# Clone the repository
git clone https://github.com/Bobbybear007/NebulaBrowser.git
# Navigate to the project directory
cd NebulaBrowser
# Install dependencies
npm install
# Start development server
npm run dev
Reporting Bugs
Found a bug? Help us fix it by providing detailed information about the issue.
Before Reporting
- Search existing issues: Check if the bug has already been reported
- Update to latest version: Ensure you're using the most recent version
- Reproduce the issue: Verify the bug is consistent and reproducible
Bug Report Template
Bug Report Checklist
- Clear, descriptive title
- Steps to reproduce the issue
- Expected vs. actual behavior
- Screenshots or videos (if applicable)
- Browser version and operating system
- Console errors or logs
Feature Requests
Have an idea to make Nebula even better? We'd love to hear about it!
Feature Request Guidelines
Be Specific
Clearly describe what you want to achieve and why it would be valuable.
Research First
Check if a similar feature already exists or has been requested.
Provide Context
Explain your use case and how the feature would improve the experience.
Include Mockups
Visual aids help convey your idea more effectively.
"The best features come from real user needs. Tell us your story and help us build something amazing together."Suggest a Feature
Pull Requests
Ready to contribute code? Follow these guidelines for a smooth pull request process.
Pull Request Process
- Create a Branch: Use a descriptive branch name (e.g.,
feature/new-theme-system) - Make Changes: Write clean, well-documented code following our style guide
- Test Thoroughly: Ensure your changes don't break existing functionality
- Update Documentation: Add or update relevant documentation
- Submit PR: Provide a clear description of your changes
PR Checklist
- ✅ Code follows project style guidelines
- ✅ All tests pass
- ✅ Documentation is updated
- ✅ Commit messages are clear and descriptive
- ✅ No merge conflicts
- ✅ Screenshots for UI changes
Types of Contributions
Bug Fixes
Fix reported issues and improve stability
✨ New Features
Add new functionality or enhance existing features
UI/UX Improvements
Enhance the user interface and experience
Documentation
Improve or add to project documentation
Themes
Create new themes or improve existing ones
Performance
Optimize code for better performance
Code Style Guide
Consistent code style helps maintain readability and makes collaboration easier.
JavaScript Guidelines
- Use camelCase for variable and function names
- Use PascalCase for class names
- Use UPPER_SNAKE_CASE for constants
- Use meaningful variable and function names
- Add JSDoc comments for functions and classes
- Use semicolons and single quotes
CSS Guidelines
- Use kebab-case for class names
- Follow CSS custom properties for theming
- Use rem/em units for responsive design
- Organize styles with logical grouping
- Add comments for complex styles
// Example: Good JavaScript style
class ThemeManager {
/**
* Applies a theme to the current page
* @param {Object} theme - The theme configuration
*/
applyTheme(theme) {
const root = document.documentElement;
Object.entries(theme.colors).forEach(([key, value]) => {
root.style.setProperty(`--${key}`, value);
});
}
}
Community
Join our vibrant community of contributors and users!
GitHub Discussions
Ask questions, share ideas, and connect with other contributors.
Join DiscussionsRecognition
We value every contribution! Contributors are recognized in:
- README contributors section
- Release notes for significant contributions
- Special badges for long-term contributors
- Featured themes in our gallery
Thank You
Your contributions make Nebula Browser better for everyone. Whether you're fixing a typo, reporting a bug, or adding a major feature, every contribution matters.
"Open source is about collaboration, learning, and building something greater together. Welcome to the Nebula community!"