Thank you for your interest in contributing to RecallIQ! We're excited to have you as part of our community. This guide will help you get started with contributing to our AI-powered memory assistant.
By participating in this project, you agree to abide by our code of conduct:
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Respect different viewpoints and experiences
- Show empathy towards other community members
Before contributing, make sure you have:
- Node.js 18+ installed
- npm package manager
- Git for version control
- A Supabase account (for backend development)
- Basic knowledge of React, TypeScript, and Tailwind CSS
-
Fork the repository
# Click the "Fork" button on GitHub, then clone your fork git clone https://github.com/YOUR_USERNAME/recalliq.git cd recalliq
-
Install dependencies
npm install
-
Set up environment variables
# Copy the example environment file cp .env.example .env.local # Fill in your Supabase credentials and API keys
-
Start the development server
npm run dev
Before creating a bug report, please check if the issue already exists. If not:
- Go to the Issues page
- Click "New Issue" and select "Bug Report"
- Fill out the template with:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Environment details (browser, OS, etc.)
We love new ideas! To suggest a feature:
- Check existing issues and discussions
- Create a new issue with the "Feature Request" template
- Describe:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
- Why this would benefit other users
- 🐛 Bug fixes
- ✨ New features
- 📚 Documentation improvements
- 🎨 UI/UX enhancements
- ⚡ Performance optimizations
- 🧪 Test coverage improvements
- 🔧 Developer experience improvements
-
Choose an issue
- Check the Issues page
- Look for issues labeled
good first issuefor beginners - Comment on the issue to let others know you're working on it
-
Create a branch
git checkout -b feature/your-feature-name # or git checkout -b fix/bug-description -
Make your changes
- Follow our coding standards (see below)
- Write clear, descriptive commit messages
- Test your changes thoroughly
-
Commit your changes
git add . git commit -m "feat: add new memory search filter" # Use conventional commit format
-
Push and create a Pull Request
git push origin your-branch-name
- Go to GitHub and create a Pull Request
- Fill out the PR template
- Link any related issues
src/
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components (shadcn/ui)
│ ├── auth/ # Authentication components
│ ├── dashboard/ # Dashboard-specific components
│ └── ...
├── pages/ # Page components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
├── integrations/ # Third-party integrations
└── contexts/ # React contexts
- Use TypeScript for all new code
- Define proper types and interfaces
- Avoid
anytypes when possible - Use the existing type definitions in
src/integrations/supabase/types.ts
- Use functional components with hooks
- Follow the existing component patterns
- Keep components small and focused
- Use proper prop types and interfaces
- Use Tailwind CSS for styling
- Follow the existing design system
- Use semantic color tokens from
index.css - Ensure responsive design for all screen sizes
- Test on mobile, tablet, and desktop
- Write self-documenting code
- Add comments for complex logic
- Follow the existing file structure
- Use meaningful variable and function names
- Keep functions small and focused
We use Conventional Commits:
feat: add new search functionality
fix: resolve memory card rendering issue
docs: update API documentation
style: improve button hover effects
refactor: optimize memory loading hook
test: add unit tests for auth service
- Test your changes on different browsers
- Verify responsive design on mobile devices
- Check for console errors
- Test with different user scenarios
- Ensure accessibility standards are met
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run specific test file
npm test -- --testNamePattern="YourTestName"- My code follows the project's coding standards
- I have tested my changes thoroughly
- I have updated documentation if necessary
- My commits follow the conventional commit format
- I have linked any related issues
- My changes don't break existing functionality
- I have added appropriate comments to my code
When creating a PR, please include:
## Description
Brief description of what this PR does
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring
## Testing
- [ ] I have tested this change locally
- [ ] I have added/updated tests as needed
## Screenshots (if applicable)
Add screenshots for UI changes
## Additional Notes
Any additional information or context- Use the existing database schema and types
- Follow RLS (Row Level Security) patterns
- Test edge functions locally when possible
- Be mindful of API rate limits
- Maintain consistency with existing design
- Use the established color palette and typography
- Ensure accessibility (WCAG guidelines)
- Test on various screen sizes
- Follow glass-morphism design patterns
- Optimize images and media files
- Use React.memo for expensive components
- Implement proper loading states
- Consider lazy loading for large components
- 📧 Email: gotodevashu@gmail.com
- 🐛 GitHub Issues: For bug reports and feature requests
- 💬 Discussions: For general questions and ideas
- README.md - Project overview and setup
- API Documentation - Backend API reference
- Component Library - UI component documentation
Contributors are recognized in several ways:
- Listed in our Contributors section (coming soon)
- Featured in release notes for significant contributions
- Special recognition for first-time contributors
- Opportunity to become a maintainer for consistent contributors
We use these labels to organize issues:
good first issue- Perfect for newcomersbug- Something isn't workingenhancement- New feature or requestdocumentation- Improvements to docshelp wanted- Extra attention is neededpriority-high- Urgent issuesui/ux- Design-related issues
- Features are developed in feature branches
- Pull requests are reviewed by maintainers
- Approved changes are merged to main
- Releases are tagged and deployed automatically
- Release notes are generated from conventional commits
Thank you for contributing to RecallIQ! Your contributions help make memory management more accessible and powerful for everyone. 🧠✨
Happy coding! 🎉