Getting Started
Before making contributions, ensure you have:- Read the contributing overview
- Set up your development environment
- Joined our Discord community
Code Contributions
Finding Something to Work On
- Check the GitHub Issues for open tasks
- Look for issues labeled
good first issueif you’re new to the project - Ask in Discord if you’d like guidance on where to start
- Propose new features by opening an issue first for discussion
Workflow
Create a Branch
Create a new branch for your work:Use descriptive branch names:
feature/for new featuresfix/for bug fixesdocs/for documentation changesrefactor/for code refactoring
Make Your Changes
- Write clean, readable code
- Follow the existing code style
- Add comments for complex logic
- Keep changes focused and atomic
Commit Your Changes
Write clear, descriptive commit messages:Use conventional commit prefixes:
feat:new featuresfix:bug fixesdocs:documentation changesstyle:formatting, missing semicolons, etc.refactor:code refactoringtest:adding testschore:maintenance tasks
Code Style
TypeScript
- Use TypeScript for all new code
- Avoid using
anytype - use proper typing - Prefer interfaces over type aliases for object shapes
- Use strict mode (already configured)
Formatting
- The project uses ESLint for code quality
- Run
pnpm lintbefore committing - Follow the existing code style in the file you’re editing
- Use meaningful variable and function names
File Organization
- Place components in appropriate directories
- Keep related files together
- Use index files for cleaner imports
- Follow the existing project structure
Component Guidelines
Qwik Components
- Use the
component$function for all components - Leverage Qwik’s resumability features
- Keep components small and focused
- Use signals (
useSignal) for reactive state - Prefer
useVisibleTask$overuseTask$when appropriate
Styling
- Use Tailwind CSS utility classes
- Follow the existing design system
- Ensure responsive design for all screen sizes
- Test in both light and dark modes (if applicable)
- Use the
@luminescent/uicomponent library when available
Database Changes
Schema Modifications
If you need to modify the database schema:Testing
Manual Testing
- Test all functionality you’ve added or modified
- Verify the UI works on different screen sizes
- Check browser console for errors
- Test with and without database features (if applicable)
Before Submitting
Run these checks before creating a pull request:Pull Request Guidelines
PR Description
Your pull request should include:- What: Clear description of changes made
- Why: Explanation of why the changes are needed
- How: Brief overview of the implementation approach
- Testing: How you tested the changes
- Screenshots: For any UI changes (before/after if applicable)
- Related Issues: Link to related issues using “Fixes #issue-number”
Review Process
- Be responsive to feedback and questions
- Make requested changes in new commits (don’t force push)
- Engage in discussion if you disagree with feedback
- Be patient - maintainers are volunteers
Merging
- PRs require approval from maintainers before merging
- Keep your branch up to date with main:
- Resolve any conflicts before merge
Documentation
Code Comments
- Add comments for complex logic
- Use JSDoc comments for public functions
- Explain “why” not “what” in comments
- Keep comments up to date with code changes
Documentation Updates
If your changes affect user-facing functionality:- Update relevant documentation
- Add examples for new features
- Update screenshots if UI has changed
Community Standards
Be Respectful
- Treat all contributors with respect
- Provide constructive feedback
- Be open to different approaches and ideas
- Help others learn and grow
Attribution
- Credit others for their ideas and work
- Don’t remove attribution from existing code
- Acknowledge help received in pull requests
Licensing
- All contributions are subject to the project’s license
- Only submit code you have the right to contribute
- Don’t include proprietary or copyrighted code
Questions?
If you have questions about contributing:- Ask in the Discord server
- Open a GitHub Discussion
- Comment on the relevant issue