Thank you for your interest in contributing to Comeback AI! β¨
Made with β€οΈ by Pink Pixel - "Dream it, Pixel it"
We're excited to have you join our community of contributors who are helping to make negativity a thing of the past through AI-powered humor!
- Code of Conduct
- Getting Started
- Development Setup
- Contributing Guidelines
- Pull Request Process
- Issue Guidelines
- Coding Standards
- Testing
- Documentation
- Community
By participating in this project, you agree to abide by our community standards:
- π Be respectful and inclusive
- π Keep the humor positive and entertaining
- π€ Help others learn and grow
- π Report bugs constructively
- π‘ Share ideas thoughtfully
- π Celebrate others' contributions
- π« Use inappropriate or offensive language
- π Engage in personal attacks or harassment
- ποΈ Share private information without permission
- π Discourage new contributors
- π¨ Submit harmful or malicious content
Welcome! We're thrilled to have you. Here's how to get started:
- π΄ Fork the repository
- π₯ Clone your fork locally
- πΏ Create a feature branch
- β¨ Make your changes
- π§ͺ Test thoroughly
- π Submit a pull request
- π New Personas - Creative character ideas and personalities
- π¨ UI/UX Improvements - Design enhancements and user experience
- π§ Bug Fixes - Resolving issues and improving stability
- π Documentation - Better guides, examples, and explanations
- π Internationalization - Multi-language support
- β‘ Performance - Optimization and speed improvements
- π§ͺ Testing - Test coverage and quality assurance
# 1. Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/comeback-ai.git
cd comeback-ai
# 2. Install dependencies
npm install
# 3. Start development server
npm run dev
# 4. Open in browser
# Visit http://localhost:5173| Command | Description |
|---|---|
npm run dev |
π Start development server |
npm run build |
ποΈ Build for production |
npm run lint |
π Run ESLint |
npm run lint:fix |
π§ Fix ESLint issues |
npm run preview |
π Preview production build |
- Small fixes that resolve existing issues
- No new features or breaking changes
- Include tests when possible
- New functionality or enhancements
- Discuss in an issue before implementing
- Include documentation and tests
- README improvements
- Code comments and JSDoc
- Examples and tutorials
- UI/UX improvements
- Visual enhancements
- Responsive design fixes
| Type | Description | Review Time |
|---|---|---|
| πΎ Small | 1-10 lines changed | 1-2 days |
| π Medium | 10-100 lines changed | 3-5 days |
| π¦ Large | 100+ lines changed | 1-2 weeks |
- β Ensure your code follows our coding standards
- π§ͺ Run tests and fix any failures
- π Run linting and fix any issues
- π Update documentation if needed
- π― Keep changes focused and atomic
Use conventional commit format:
type(scope): description
Examples:
feat(personas): add Robot Butler persona
fix(audio): resolve playback issues on Safari
docs(readme): update installation instructions
style(ui): improve mobile responsiveness
## π― Description
Brief description of what this PR does.
## π§ Type of Change
- [ ] π Bug fix
- [ ] β¨ New feature
- [ ] π₯ Breaking change
- [ ] π Documentation update
- [ ] π¨ Style/UI improvement
## π§ͺ Testing
- [ ] Tests pass locally
- [ ] Manual testing completed
- [ ] New tests added (if applicable)
## π Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No merge conflicts
## π· Screenshots (if UI changes)
[Add screenshots here]Use our bug report template:
**π Bug Description**
Clear description of what went wrong.
**π Steps to Reproduce**
1. Go to '...'
2. Click on '...'
3. See error
**β
Expected Behavior**
What should have happened.
**π₯οΈ Environment**
- Browser: Chrome 120
- OS: Windows 11
- Device: Desktop
**π· Screenshots**
[Add screenshots if helpful]Use our feature request template:
**β¨ Feature Description**
Clear description of the proposed feature.
**π― Problem to Solve**
What problem does this solve?
**π‘ Proposed Solution**
How would you implement this?
**π Alternatives Considered**
Other solutions you've thought about.
**π Additional Context**
Any other relevant information.- β Use TypeScript for all new code
- π Define interfaces for complex objects
- π― Prefer type safety over
any - π Use meaningful variable names
- π§© Use functional components with hooks
- π¨ Follow React best practices
- π Use React Router for navigation
- π Leverage Framer Motion for animations
- π¨ Use Tailwind CSS utility classes
- π± Mobile-first responsive design
- π Follow existing color scheme
- β‘ Optimize for performance
// β
Good - Clear, typed, documented
interface PersonaProps {
name: string;
voice: string;
onSelect: (persona: string) => void;
}
export function PersonaCard({ name, voice, onSelect }: PersonaProps) {
const handleClick = () => {
onSelect(name);
};
return (
<div className="persona-card" onClick={handleClick}>
<h3>{name}</h3>
<p>Voice: {voice}</p>
</div>
);
}src/
βββ components/ # Reusable UI components
βββ pages/ # Route-based page components
βββ lib/ # Utility functions and helpers
βββ types/ # TypeScript type definitions
βββ hooks/ # Custom React hooks
While we don't have comprehensive tests yet, we encourage:
- π§ Manual Testing: Test your changes thoroughly
- π± Cross-browser: Check Chrome, Firefox, Safari
- π² Responsive: Test on mobile and desktop
- βΏ Accessibility: Ensure keyboard navigation works
- π― Unit Tests: Jest + React Testing Library
- π Integration Tests: API integration testing
- π E2E Tests: Playwright for user workflows
- β‘ Performance: Lighthouse CI for performance monitoring
- π Use JSDoc for complex functions
- π¬ Add inline comments for tricky logic
- π Document component props with TypeScript
- π Update README for new features
- π― Include usage examples
- π· Add screenshots for UI changes
- π Link to relevant resources
- π¬ Discord: @sizzlebop
- π GitHub Discussions: Coming soon
- π§ Issues: For bugs and feature requests
- π Website: pinkpixel.dev
We appreciate all contributions! Contributors will be:
- π Listed in our contributors section
- π Mentioned in release notes
- β¨ Featured on our website (with permission)
- π Sent virtual high-fives and gratitude
When adding new personas to personas.json:
{
"name": "Quirky Character Name",
"voice": "voice_id",
"prompt": "Detailed personality description that guides AI behavior..."
}- π Unique Personality: Distinct from existing personas
- π€ Voice Assignment: Use available voice IDs
- π Clear Prompt: Detailed instructions for AI behavior
- π Positive Humor: Keep it entertaining, not harmful
- π― Target Audience: Consider broad appeal
Available voices: alloy, echo, fable, onyx, nova, shimmer, coral, verse, ballad, ash, sage, amuch, dan
We follow Semantic Versioning:
- π§ PATCH (0.1.X): Bug fixes
- β¨ MINOR (0.X.0): New features
- π₯ MAJOR (X.0.0): Breaking changes
- ποΈ Regular Releases: Monthly minor releases
- π Hotfixes: As needed for critical bugs
- π Major Releases: Quarterly feature releases
Every contribution, no matter how small, makes Comeback AI better for everyone. Whether you're fixing a typo, suggesting a new persona, or implementing a major feature, you're helping create something that brings joy and laughter to people worldwide.
Together, we're turning negativity into comedy, one comeback at a time! πβ¨
Β© 2025 Pink Pixel. All rights reserved.
"Dream it, Pixel it" β¨
Questions? Reach out to us:
- π GitHub: github.com/pinkpixel-dev
- π¬ Discord: @sizzlebop
- π Website: pinkpixel.dev