Contributing to JavaScript Hard Parts Resources¶
Welcome Contributors!
Thank you for your interest in contributing to the JavaScript Hard Parts Resources collection! This project aims to provide the most comprehensive and high-quality deep technical JavaScript learning resources available.
🚀 Quick Contribution¶
Add a New Resource¶
The easiest way to suggest a new resource is through our GitHub issue system:
This will open a pre-filled GitHub issue where you can provide all the necessary details about your suggested resource.
📋 How to Contribute¶
1. Resource Suggestion Process¶
- Click the "Add Resource" button above
- Fill out the GitHub issue template with:
- Resource title and URL
- Author information
- Section it belongs to
- Resource type (Visual, Technical, etc.)
- Description and why it's essential
- Submit the issue for community review
- Engage in discussion if maintainers have questions
- Resource gets added to the collection after approval
2. Alternative Contribution Methods¶
- Report broken links or outdated content
- Suggest improvements to existing descriptions
- Propose new sections or reorganization
- Contribute to documentation and guides
✅ Resource Quality Criteria¶
For a resource to be included in our collection, it must meet these standards:
Must Have Requirements¶
Deep and Technical
Explains JavaScript mechanisms and internals, not just syntax
Unique Value
Offers insights, perspectives, or explanations not found in other resources
Expert Authors
Written by recognized JavaScript experts, educators, or experienced developers
Well-Explained
Clear, comprehensive, accurate, and well-structured content
Relevant
Fits within the Frontend Masters "JavaScript: The Hard Parts v2" course structure
Preferred Resource Types¶
Type | Description | Examples |
---|---|---|
Visual Understanding | Animated explanations, diagrams | Lydia Hallie's visualizations |
Engine-Level Technical | V8, SpiderMonkey, bytecode | Engine implementation details |
Specification Level | ECMA-262 references | Official documentation |
Practical Application | Real-world patterns | Debugging techniques |
Educational Excellence | Master educators | Will Sentance, Kyle Simpson |
📚 Resource Categories¶
JavaScript Principles¶
Thread of Execution, Functions, Call Stack, Global Context
Functions & Callbacks¶
Higher-Order Functions, Generalized Functions, Arrow Functions
Closure¶
Lexical Environment, Function Memory, Practical Applications
Asynchronous JavaScript¶
Event Loop, Web APIs, Callback Queue, Single-threaded Execution
Promises¶
Microtask Queue, Promise Execution, then/catch mechanisms
Classes & Prototypes¶
OOP, Prototype Chain, this keyword, new operator, class syntax
Advanced ES6+ Concepts¶
Iterators, Generators, async/await implementation, Advanced Patterns
🔄 Review Process¶
Step 1: Submission¶
Resource suggestion submitted via GitHub issue with automatic validation
Step 2: Community Review¶
Community members can comment and discuss the resource quality and relevance
Step 3: Maintainer Review¶
Project maintainers evaluate against quality criteria and check for duplicates
Step 4: Integration¶
Approved resources are manually added to the documentation and website
Step 5: Quality Assurance¶
Periodic review of existing resources for broken links and continued relevance
🛠️ Technical Contributions¶
Documentation Improvements¶
If you want to contribute to the documentation itself:
- Fork the repository
- Make your changes to the Markdown files in the
docs/
directory - Test locally using
mkdocs serve
- Submit a pull request with a clear description
Local Development Setup¶
# Clone the repository
git clone https://github.com/AlaaEmam29/JavaScript-Hard-Parts.git
cd JavaScript-Hard-Parts
# Install MkDocs Material
pip install mkdocs-material
# Serve locally
mkdocs serve
# Build for production
mkdocs build
📝 Writing Guidelines¶
Resource Descriptions¶
When describing a resource, include:
- Clear focus: What specific concepts it covers
- Why essential: What unique value it provides
- Target audience: Beginner, intermediate, advanced, expert
- Learning approach: Visual, technical, practical, theoretical
Example Resource Entry¶
#### Resource Title
**Author:** Author Name
**Type:** Resource Type
**URL:** [Link text](https://example.com)
**Focus:** Brief description of what it covers
**Why Essential:** Explanation of unique value and importance
🏆 Recognition¶
Contributors who suggest high-quality resources will be:
- Acknowledged in the resource description
- Listed in the project's contributors section
- Mentioned in project updates and releases
- Credited in the acknowledgments page
📞 Getting Help¶
Questions and Support¶
- General questions: GitHub Discussions
- Technical issues: Create an issue
- Feature requests: Suggest a feature
Community Guidelines¶
- Be respectful and constructive in all interactions
- Provide context when asking questions or reporting issues
- Search existing issues before creating new ones
- Follow the templates when creating issues
📄 License¶
By contributing to this project, you agree that your contributions will be licensed under the same MIT License that covers the project.
Ready to Contribute?
Start by adding a resource or check out our quality standards for more detailed guidelines.