We love your input! We want to make contributing to AI Product Backlog as easy and transparent as possible.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test your changes:
npm run dev - Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Submit a Pull Request
- Node.js 18+
- Git
- Supabase account
- OpenAI API key
# Clone your fork
git clone https://github.com/yourusername/ai-backlog.git
cd ai-backlog
# Install dependencies
npm install
# Set up environment
cp .env.example .env.local
# Fill in your environment variables
# Start development server
npm run devBefore submitting a bug report:
- Check existing issues
- Update to the latest version
- Test in incognito/private mode
When submitting:
- Use the bug report template
- Include steps to reproduce
- Add screenshots if helpful
- Mention your environment (OS, browser, etc.)
Before requesting:
- Check existing feature requests
- Consider if it fits the project scope
When requesting:
- Use the feature request template
- Explain the problem you're solving
- Describe your proposed solution
- Consider implementation complexity
- AI Optimization: Better prompts, model selection
- UI/UX: Component improvements, accessibility
- Performance: Caching, optimization
- Testing: Unit tests, integration tests
- Documentation: Guides, examples
- Integrations: Export features, third-party APIs
We use Prettier and ESLint:
# Format code
npm run format
# Lint code
npm run lint
# Type checking
npm run type-checkReact Components:
// Use TypeScript
interface Props {
title: string
optional?: boolean
}
// Export as default
export default function Component({ title, optional = false }: Props) {
return <div>{title}</div>
}File Naming:
- Components:
PascalCase.tsx - Utilities:
camelCase.ts - Pages:
kebab-case.tsx
Migrations:
-- supabase/migrations/YYYYMMDD_description.sql
-- Add your SQL hereTesting migrations:
# Reset local database
supabase db reset
# Test migration
supabase db push# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run specific test
npm test -- ComponentName// components/__tests__/Component.test.tsx
import { render, screen } from '@testing-library/react'
import Component from '../Component'
describe('Component', () => {
it('renders correctly', () => {
render(<Component title="Test" />)
expect(screen.getByText('Test')).toBeInTheDocument()
})
})- Keep examples current
- Update installation steps
- Add new features
/**
* Generates user stories from a conversation
* @param messages - Array of chat messages
* @param backlogId - UUID of the backlog
* @returns Promise<UserStory[]>
*/
export async function generateStories(
messages: ChatMessage[],
backlogId: string
): Promise<UserStory[]> {
// Implementation
}- Use shadcn/ui components as base
- Follow existing design patterns
- Ensure accessibility (ARIA labels, keyboard navigation)
- Test in dark/light modes
/* Primary brand colors */
--primary: hsl(222.2 84% 4.9%)
--primary-foreground: hsl(210 40% 98%)
/* Semantic colors */
--success: hsl(142.1 76.2% 36.3%)
--warning: hsl(38.1 92.1% 50%)
--error: hsl(0 84.2% 60.2%)- Update your branch:
git rebase main - Run tests:
npm test - Lint code:
npm run lint - Build successfully:
npm run build
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Tests pass
- [ ] Manual testing completed
## Screenshots (if applicable)
Add screenshots here- Automated checks must pass
- Code review by maintainer
- Testing in preview environment
- Approval and merge
Follow Conventional Commits:
# Feature
feat: add story export functionality
# Bug fix
fix: resolve chat message duplication
# Documentation
docs: update API documentation
# Refactor
refactor: optimize database queries
# Test
test: add unit tests for story generationContributors are recognized in:
- README contributor section
- CHANGELOG for significant contributions
- GitHub contributor graphs
- Special mentions in releases
- Discord: Join our community
- Issues: Use GitHub issues for bugs
- Discussions: Use GitHub discussions for questions
- Email: maintainer@ai-backlog.com
Look for issues labeled:
good first issuebeginner friendlydocumentationhelp wanted
Don't hesitate to ask questions!
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to AI Product Backlog! 🙏