Before You Start
Before submitting a contribution, please:- Check existing issues and PRs to avoid duplicate work
- Open an issue for major changes to discuss your approach
- Read the documentation to understand the project structure
- Set up your development environment following the Setup Guide
Technology Standards
DS Visualizer maintains specific technology standards:TypeScript
- Write type-safe code with proper type annotations
- Avoid using
anytypes when possible - Use interfaces for object shapes
- Leverage TypeScript’s type inference
Styling with TailwindCSS
- Use TailwindCSS utility classes for styling
- Keep custom CSS minimal
- Use Tailwind’s responsive modifiers for mobile-first design
- Leverage Tailwind’s color palette for consistency
Animations with Framer Motion
- Use Framer Motion for smooth animations
- Keep animations performant and purposeful
- Ensure animations enhance rather than distract from content
Code Quality
Formatting
Run Prettier on your changes:Code Organization
The project needs help with refactoring TypeScript imports. Consider cleaning up import statements in your contributions.
- Keep imports organized and clean
- Group related functionality
- Use meaningful variable and function names
- Write self-documenting code with clear intent
- Add comments for complex logic
Content Contributions
MDX Content Structure
All content is located incontent/[BlogName]/** directories:
Choose the right directory
Navigate to the appropriate content directory or create a new one following the naming convention
content/[TopicName]/Create or edit MDX files
Write your content using MDX format, which allows you to:
- Use Markdown syntax
- Include React components
- Add code examples with syntax highlighting
- Create interactive visualizations
Content Guidelines
- Clarity: Write clear, concise explanations suitable for learners
- Accuracy: Ensure technical accuracy in all content
- Examples: Include code examples and visualizations where helpful
- Formatting: Use proper Markdown formatting and code highlighting
- Accessibility: Write inclusive content accessible to all skill levels
Pull Request Process
Creating a Pull Request
Create a feature branch
feature/for new featuresfix/for bug fixesdocs/for documentationrefactor/for code improvements
Make your changes
- Write clean, well-tested code
- Format with Prettier
- Follow the project’s coding standards
- Test thoroughly in development
PR Review Process
- Automated checks will run on your PR
- Maintainers will review your code and provide feedback
- Address feedback by making requested changes
- Approval and merge once all requirements are met
Testing
Before submitting your PR:- Test locally: Run
yarn devand verify everything works - Check all pages: Ensure you haven’t broken existing functionality
- Test edge cases: Try different scenarios and inputs
- Cross-browser testing: Verify compatibility if making UI changes
Areas Needing Help
The project has identified these priority areas:UI Design
Page design and user interface improvements
Import Cleanup
Refactoring TypeScript imports for better organization
Dependencies
Updating and maintaining project dependencies
Communication
- Be respectful: Treat all contributors with respect
- Be constructive: Provide helpful feedback
- Be patient: Remember that maintainers are often volunteers
- Be collaborative: Work together to improve the project
Questions or Issues?
If you have questions or run into issues:- Check the GitHub Issues tab
- Search for existing discussions or solutions
- Open a new issue if your question hasn’t been addressed
- Provide as much context as possible