Welcome Contributors!
We welcome contributions to SeanceAI! Whether you want to add new historical figures, improve conversation quality, enhance the UI/UX, fix bugs, or write documentation, your contributions help make SeanceAI better for everyone.Ways to Contribute
1. Add New Historical Figures
Expand the roster of historical minds users can converse with. What You’ll Do:- Research historical figures and their personalities
- Add figure data to
figures.py - Create SVG portraits (optional)
- Test conversations for authenticity
2. Improve Conversation Quality
Enhance how figures respond and interact. Ideas:- Refine existing figure personalities and beliefs
- Improve the
FIGURE_PROMPT_TEMPLATEfor better roleplay - Enhance suggestion generation logic
- Optimize conversation context handling
3. Enhance UI/UX
Make the interface more beautiful and user-friendly. Areas:- Visual design improvements
- Mobile responsiveness
- Accessibility features
- Animation and transitions
- New UI components
4. Fix Bugs
Help keep SeanceAI running smoothly. Process:- Check existing GitHub Issues
- Reproduce the bug locally
- Fix and test thoroughly
- Submit a pull request
5. Optimize Performance
Improve speed, efficiency, and reliability. Ideas:- Reduce API calls and costs
- Improve streaming performance
- Optimize model selection logic
- Enhance caching strategies
- Reduce frontend bundle size
6. Write Documentation
Help others understand and use SeanceAI. Needs:- Improve setup instructions
- Add troubleshooting guides
- Create video tutorials
- Write blog posts about features
- Translate documentation
Getting Started
Prerequisites
- Python 3.11 or higher
- Git
- A GitHub account
- An OpenRouter API key (Get one free)
Fork and Clone
Click the Fork button at the top of the SeanceAI repository.
Development Workflow
Creating a Feature Branch
Always create a new branch for your changes:feature/- New features (e.g.,feature/add-newton)fix/- Bug fixes (e.g.,fix/streaming-error)docs/- Documentation (e.g.,docs/setup-guide)refactor/- Code improvements (e.g.,refactor/api-calls)style/- UI/CSS changes (e.g.,style/mobile-responsive)
Making Changes
- Make your changes to the codebase
- Test thoroughly - ensure everything works as expected
- Follow code style - see Code Style Guidelines below
- Write clear commit messages - see Commit Message Guidelines below
Testing Your Changes
Manual Testing
Test your changes in multiple scenarios:- Basic functionality works
- Edge cases are handled
- Error messages are clear
- Mobile/responsive design works
- No console errors
- Streaming responses work
- API fallback logic functions
API Testing
Test API endpoints with curl:Committing Changes
Commit Message Guidelines
Write clear, descriptive commit messages: Format:feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- UI/CSS changesrefactor:- Code improvements without changing functionalityperf:- Performance improvementstest:- Adding or updating tests
Pushing Changes
Opening a Pull Request
## Summary
Brief description of what this PR does.
## Changes
- Added feature X
- Fixed bug Y
- Improved performance of Z
## Testing
Describe how you tested these changes:
- Tested on Chrome, Firefox, Safari
- Verified API endpoints work correctly
- Tested with multiple historical figures
## Screenshots (if applicable)
[Add screenshots of UI changes]
## Related Issues
Closes #123
Code Style Guidelines
Python Code Style
Follow PEP 8 conventions:- Use meaningful variable names
- Add docstrings to functions
- Use type hints where applicable
- Keep functions focused and modular
- Add comments for complex logic
- Maximum line length: 100 characters
JavaScript Code Style
- Use
constandlet, notvar - Use arrow functions
- Use async/await over callbacks
- Use meaningful variable names
- Add comments for complex logic
CSS Code Style
- Use CSS custom properties (variables)
- Organize properties logically
- Use semantic class names
- Follow existing naming conventions
Special Contribution Types
Adding Historical Figures
See the complete Adding Historical Figures Guide for detailed instructions. Quick Checklist:- Researched historical accuracy
- Added to
HISTORICAL_FIGURESinfigures.py - Created SVG portrait (optional)
- Wrote 5 engaging starter questions
- Tested for era-appropriate responses
- Verified figure stays in character
Improving AI Prompts
When modifyingFIGURE_PROMPT_TEMPLATE or figure prompts:
- Test with multiple figures - Ensure changes work universally
- Maintain era-appropriate responses - Don’t break historical accuracy
- Test edge cases - Modern concepts, controversial topics
- Document changes - Explain why the change improves responses
UI/UX Improvements
When making visual changes:- Test on multiple devices - Desktop, tablet, mobile
- Test in multiple browsers - Chrome, Firefox, Safari, Edge
- Include screenshots - Before and after in PR
- Maintain accessibility - Color contrast, keyboard navigation
- Follow existing design system - Colors, spacing, typography
Pull Request Review Process
What Reviewers Look For
-
Code Quality
- Follows style guidelines
- Well-documented
- No unnecessary complexity
-
Functionality
- Works as intended
- Handles edge cases
- No breaking changes
-
Testing
- Thoroughly tested
- No console errors
- Works across browsers/devices
-
Historical Accuracy (for figure additions)
- Era-appropriate knowledge
- Authentic personality
- Documented beliefs
Review Timeline
Maintainers aim to review PRs within:- Bug fixes: 1-3 days
- New features: 3-7 days
- Major changes: 1-2 weeks
Community Guidelines
Code of Conduct
- Be respectful - Treat all contributors with respect
- Be constructive - Provide helpful feedback
- Be patient - Maintainers are volunteers
- Be collaborative - Work together to improve SeanceAI
Getting Help
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions or share ideas
- Pull Request Comments: Discuss specific code changes
Recognition
Contributors are recognized in:- README.md - Listed as contributors
- GitHub Contributors - Automatically tracked
- Release Notes - Credited for major contributions
Questions?
If you have questions about contributing:- Check existing documentation
- Search GitHub Discussions
- Open a new discussion
- Reach out to maintainers