people Contributors
NinjaType thrives because of the incredible community of developers, designers, and enthusiasts who contribute their time and talent to make it better. Every contribution, from fixing a typo to building a feature, helps thousands of people improve their typing skills.
star Core Team
π¨βπ» Vivek Gupta
Creator & Lead Maintainer
The visionary behind NinjaType, responsible for the projectβs architecture, ongoing development, and community management. Passionate about creating tools that make learning enjoyable and accessible to everyone.
- π§ vivekgupta@ninjatype.com
- π GitHub Profile
emoji_events Hall of Fame
Thank you to everyone who has contributed to NinjaType! π
π Contribution Types We Celebrate:
- π» Code Contributors: Feature developers, bug fixers, and performance optimizers
- π¨ Theme Designers: Creators of beautiful color schemes
- π Documentation Writers: Making NinjaType easier to understand
- π Bug Reporters: Helping identify and resolve issues
- π‘ Feature Requesters: Suggesting ideas that shape the roadmap
- π Community Members: Helping others and spreading the word
- β Stargazers: Showing support and helping with discoverability
code How to Contribute
We welcome contributors of all skill levels β from first-time open source participants to experienced developers!
build Code Contributions
Help build and improve NinjaTypeβs features:
Frontend Development:
- π― New typing modes (quotes, code, custom texts)
- π Enhanced analytics and visualizations
- π¨ New themes and customization options
- β¨οΈ Improved keyboard visualization
- π± Better mobile experience
Bug Fixes:
- π Typing accuracy issues
- π Stats calculation errors
- π¨ Theme display problems
- β‘ Performance optimizations
- βΏ Accessibility improvements
Testing & Quality:
- β Write unit tests
- π§ͺ E2E testing
- π Code reviews
- π Type safety improvements
palette Design Contributions
Make NinjaType beautiful and user-friendly:
- π¨ New Themes: Design color schemes for different preferences
- πΌοΈ UI/UX Improvements: Enhance the user interface
- π± Responsive Design: Optimize for mobile and tablet
- βΏ Accessibility: Ensure usability for everyone
- π Animations: Add delightful micro-interactions
description Documentation Contributions
Help others understand and use NinjaType:
- π User Guides: Write tutorials and how-tos
- π» Code Documentation: Comment and explain code
- π README Improvements: Better onboarding for new users
- π Translations: Help make NinjaType multilingual
- πΉ Video Tutorials: Create walkthrough videos
feedback Community Contributions
Support the NinjaType community:
- π Report Bugs: Found something broken? Let us know!
- π‘ Suggest Features: Share your ideas for improvements
- π¬ Answer Questions: Help other users in discussions
- π’ Spread the Word: Share NinjaType on social media
- β Star the Repo: Show support and help with visibility
- βοΈ Write Reviews: Blog posts, tutorials, or testimonials
rocket_launch Getting Started Guide
Ready to contribute? The complete setup and contribution guide is available in the project README:
π Complete Development Setup Instructions
Installation, running locally, and contribution workflow
π View Setup GuideQuick Start:
- Check the README for setup instructions
- Find an issue to work on or create one
- Fork, code, and submit a pull request!
rule Contribution Guidelines
To keep the project maintainable and high-quality:
β Code Standards
- Follow existing code style and conventions
- Use TypeScript for type safety
- Write readable, well-commented code
- Keep functions small and focused
- Use meaningful variable names
π Commit Messages
Follow conventional commits format:
feat:for new featuresfix:for bug fixesdocs:for documentationstyle:for formatting changesrefactor:for code restructuringtest:for adding testschore:for maintenance tasks
π§ͺ Testing
- Test your changes thoroughly
- Check on different browsers
- Verify mobile responsiveness
- Ensure no regressions
- Add tests for new features when possible
π Pull Request Best Practices
- Keep PRs focused and atomic
- Update documentation if needed
- Include screenshots for UI changes
- Reference related issues
- Be responsive to review feedback
auto_awesome Why Contribute?
π Personal Growth
- Learn modern web technologies (Astro, React, TypeScript)
- Practice Git and collaborative development
- Build your portfolio with real-world contributions
- Gain open source experience
π€ Community Impact
- Help thousands of people improve their typing
- Make the web more accessible
- Be part of a welcoming community
- See your work used by real users worldwide
π Recognition
- Your name in the contributors list
- GitHub contribution graph β¨
- Recognition in release notes
- Connect with other developers
help Need Help?
Donβt hesitate to reach out if you have questions:
- π¬ GitHub Discussions - Ask questions or discuss ideas
- π GitHub Issues - Report bugs or request features
- π§ Email - Direct contact for specific inquiries
π Ready to Contribute?
Join the NinjaType community and make your mark!
Every contribution matters, no matter how small.
π Thank you to all our contributors for making NinjaType awesome!