Merge branch 'kamranahmedse:master' into master

pull/979/head
Aroyan 3 years ago committed by GitHub
commit 4dd98a0de1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 48
      content/roadmaps.json
  2. 4
      content/roadmaps/100-frontend/content-paths.json
  3. 1
      content/roadmaps/100-frontend/content/102-css/readme.md
  4. 8
      content/roadmaps/100-frontend/content/109-css-preprocessors/readme.md
  5. 8
      content/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md
  6. 6
      content/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-vuex.md
  7. 1
      content/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md
  8. 1
      content/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md
  9. 1
      content/roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md
  10. 1
      content/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md
  11. 11
      content/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md
  12. 13
      content/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md
  13. 13
      content/roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md
  14. 2
      content/roadmaps/100-frontend/content/122-desktop-applications/100-electron.md
  15. 10
      content/roadmaps/100-frontend/meta.json
  16. 8
      content/roadmaps/101-backend/meta.json
  17. 10
      content/roadmaps/102-devops/meta.json
  18. 8
      content/roadmaps/103-react/meta.json
  19. 4
      content/roadmaps/104-angular/meta.json
  20. 4
      content/roadmaps/105-android/meta.json
  21. 4
      content/roadmaps/106-python/meta.json
  22. 4
      content/roadmaps/107-golang/meta.json
  23. 4
      content/roadmaps/108-java/meta.json
  24. 4
      content/roadmaps/109-postgresql-dba/meta.json
  25. 4
      content/roadmaps/110-aws/meta.json
  26. 4
      content/roadmaps/111-qa/meta.json
  27. 2
      license
  28. 216
      package-lock.json
  29. 14
      package.json
  30. 20
      pages/thanks.tsx
  31. 104
      readme.md

@ -29,9 +29,9 @@
] ]
}, },
"title": "Frontend Developer", "title": "Frontend Developer",
"description": "Step by step guide to becoming a modern frontend developer in 2021", "description": "Step by step guide to becoming a modern frontend developer in 2022",
"featuredTitle": "Frontend", "featuredTitle": "Frontend",
"featuredDescription": "Step by step guide to becoming a frontend developer in 2021", "featuredDescription": "Step by step guide to becoming a frontend developer in 2022",
"author": { "author": {
"name": "Kamran Ahmed", "name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse" "url": "https://twitter.com/kamranahmedse"
@ -76,9 +76,9 @@
] ]
}, },
"title": "Backend Developer", "title": "Backend Developer",
"description": "Step by step guide to becoming a modern backend developer in 2021", "description": "Step by step guide to becoming a modern backend developer in 2022",
"featuredTitle": "Backend", "featuredTitle": "Backend",
"featuredDescription": "Step by step guide to becoming a backend developer in 2021", "featuredDescription": "Step by step guide to becoming a backend developer in 2022",
"featured": true, "featured": true,
"imageUrl": "/roadmaps/backend.png", "imageUrl": "/roadmaps/backend.png",
"jsonUrl": "/project/frontend.json", "jsonUrl": "/project/frontend.json",
@ -115,9 +115,9 @@
] ]
}, },
"title": "DevOps Roadmap", "title": "DevOps Roadmap",
"description": "Step by step guide for DevOps, SRE or any other Operations Role in 2021", "description": "Step by step guide for DevOps, SRE or any other Operations Role in 2022",
"featuredTitle": "DevOps", "featuredTitle": "DevOps",
"featuredDescription": "Step by step guide for DevOps or operations role in 2021", "featuredDescription": "Step by step guide for DevOps or operations role in 2022",
"featured": true, "featured": true,
"imageUrl": "/roadmaps/devops.png", "imageUrl": "/roadmaps/devops.png",
"jsonUrl": "/project/devops.json", "jsonUrl": "/project/devops.json",
@ -155,9 +155,9 @@
] ]
}, },
"title": "React Developer", "title": "React Developer",
"description": "Everything that is there to learn about React and the ecosystem in 2021.", "description": "Everything that is there to learn about React and the ecosystem in 2022.",
"featuredTitle": "React", "featuredTitle": "React",
"featuredDescription": "Step by step guide to become a React Developer in 2021", "featuredDescription": "Step by step guide to become a React Developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,
@ -197,9 +197,9 @@
] ]
}, },
"title": "Angular Developer", "title": "Angular Developer",
"description": "Everything that is there to learn about Angular and the ecosystem in 2021.", "description": "Everything that is there to learn about Angular and the ecosystem in 2022.",
"featuredTitle": "Angular", "featuredTitle": "Angular",
"featuredDescription": "Step by step guide to become a Angular Developer in 2021", "featuredDescription": "Step by step guide to become a Angular Developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,
@ -239,9 +239,9 @@
] ]
}, },
"title": "Android Developer", "title": "Android Developer",
"description": "Step by step guide to becoming an Android developer in 2021", "description": "Step by step guide to becoming an Android developer in 2022",
"featuredTitle": "Android", "featuredTitle": "Android",
"featuredDescription": "Step by step guide to becoming an Android Developer in 2021", "featuredDescription": "Step by step guide to becoming an Android Developer in 2022",
"isTextHeavy": true, "isTextHeavy": true,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,
@ -280,9 +280,9 @@
] ]
}, },
"title": "Python Developer", "title": "Python Developer",
"description": "Step by step guide to becoming a Python developer in 2021", "description": "Step by step guide to becoming a Python developer in 2022",
"featuredTitle": "Python", "featuredTitle": "Python",
"featuredDescription": "Step by step guide to becoming a Python Developer in 2021", "featuredDescription": "Step by step guide to becoming a Python Developer in 2022",
"isTextHeavy": true, "isTextHeavy": true,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,
@ -330,9 +330,9 @@
] ]
}, },
"title": "Go Developer", "title": "Go Developer",
"description": "Step by step guide to becoming a Go developer in 2021", "description": "Step by step guide to becoming a Go developer in 2022",
"featuredTitle": "Go", "featuredTitle": "Go",
"featuredDescription": "Step by step guide to becoming a Go developer in 2021", "featuredDescription": "Step by step guide to becoming a Go developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"isUpcoming": false, "isUpcoming": false,
@ -381,9 +381,9 @@
] ]
}, },
"title": "Java Developer", "title": "Java Developer",
"description": "Step by step guide to becoming a Java developer in 2021", "description": "Step by step guide to becoming a Java developer in 2022",
"featuredTitle": "Java", "featuredTitle": "Java",
"featuredDescription": "Step by step guide to becoming a Java Developer in 2021", "featuredDescription": "Step by step guide to becoming a Java Developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"isUpcoming": false, "isUpcoming": false,
@ -430,9 +430,9 @@
] ]
}, },
"title": "PostgreSQL DBA", "title": "PostgreSQL DBA",
"description": "Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021", "description": "Step by step guide to becoming a modern PostgreSQL DB Administrator in 2022",
"featuredTitle": "DBA", "featuredTitle": "DBA",
"featuredDescription": "Step by step guide to become a PostgreSQL DBA in 2021", "featuredDescription": "Step by step guide to become a PostgreSQL DBA in 2022",
"landingPath": "/roadmaps/109-postgresql-dba/landscape.md", "landingPath": "/roadmaps/109-postgresql-dba/landscape.md",
"resourcesPath": "/roadmaps/109-postgresql-dba/resources.md", "resourcesPath": "/roadmaps/109-postgresql-dba/resources.md",
"author": { "author": {
@ -465,9 +465,9 @@
] ]
}, },
"title": "AWS", "title": "AWS",
"description": "Everything that is there to learn about AWS and the ecosystem in 2021.", "description": "Everything that is there to learn about AWS and the ecosystem in 2022.",
"featuredTitle": "AWS", "featuredTitle": "AWS",
"featuredDescription": "Step by step guide to learn AWS in 2021", "featuredDescription": "Step by step guide to learn AWS in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"isUpcoming": true, "isUpcoming": true,
@ -506,9 +506,9 @@
] ]
}, },
"title": "QA Engineer", "title": "QA Engineer",
"description": "Steps to follow in order to become a modern QA Engineer in 2021", "description": "Steps to follow in order to become a modern QA Engineer in 2022",
"featuredTitle": "QA", "featuredTitle": "QA",
"featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2021", "featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2022",
"isUpcoming": true, "isUpcoming": true,
"featured": true, "featured": true,
"landingPath": "/roadmaps/111-qa/landscape.md", "landingPath": "/roadmaps/111-qa/landscape.md",

@ -93,6 +93,10 @@
"testing-your-apps:cypress": "/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md", "testing-your-apps:cypress": "/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md",
"testing-your-apps:enzyme": "/roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md", "testing-your-apps:enzyme": "/roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md",
"testing-your-apps:other-options": "/roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md", "testing-your-apps:other-options": "/roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md",
"testing-your-apps:mocha": "/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md",
"testing-your-apps:chai": "/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md",
"testing-your-apps:ava": "/roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md",
"testing-your-apps:jasmine": "/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md",
"type-checkers": "/roadmaps/100-frontend/content/116-type-checkers/readme.md", "type-checkers": "/roadmaps/100-frontend/content/116-type-checkers/readme.md",
"type-checkers:typescript": "/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md", "type-checkers:typescript": "/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md",
"type-checkers:flow": "/roadmaps/100-frontend/content/116-type-checkers/101-flow.md", "type-checkers:flow": "/roadmaps/100-frontend/content/116-type-checkers/101-flow.md",

@ -9,3 +9,4 @@ CSS or Cascading Style Sheets is the language used to style the frontend of any
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink> <BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=yfoY53QXEnI'>CSS Crash Course For Absolute Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink> <BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=D-h8L5hgW-w'>HTML and CSS Tutorial</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=FqmB-Zj2-PA'>CSS Masterclass - Tutorial & Course for Beginners</BadgeLink> <BadgeLink colorScheme='green' badgeText='Course' href='https://www.youtube.com/watch?v=FqmB-Zj2-PA'>CSS Masterclass - Tutorial & Course for Beginners</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='href=https://flexbox.io/'>What The Flexbox!</BadgeLink>

@ -1 +1,7 @@
# Css preprocessors # CSS Preprocessors
CSS Preprocessors are scripting languages that extend the default capabilities of CSS. They enable us to use logic in our CSS code, such as variables, nesting, inheritance, mixins, functions, and mathematical operations.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/css-preprocessors/#:~:text=CSS%20Preprocessors%20compile%20the%20code,preprocessor%20were%20not%20in%20place.'>CSS Preprocessors Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://sherocommerce.com/what-is-a-css-preprocessors-why-use-them/'>Why Use Preprocessors?</BadgeLink>

@ -1 +1,9 @@
# Redux # Redux
Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as [live code editing combined with a time traveling debugger](https://github.com/reduxjs/redux-devtools).
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://redux.js.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://redux.js.org/introduction/getting-started'>Official Getting Started to Redux</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://redux.js.org/tutorials/essentials/part-1-overview-concepts'>Official Tutorial to Learn Redux</BadgeLink>
<BadgeLink colorScheme='green' badgeText='Course' href='https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867'>Fundamentals of Redux Course from Dan Abramov</BadgeLink>

@ -1 +1,7 @@
# Vuex # Vuex
Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://vuex.vuejs.org/'>Official Documentation</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://www.youtube.com/watch?v=5lVQgZzLMHc'>Vuex Crash Course</BadgeLink>

@ -1 +1,10 @@
# Typescript # TypeScript
TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.
<ResourceGroupTitle>Free Resources</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Website' href='https://www.typescriptlang.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Docs' href='https://www.typescriptlang.org/docs/'>Official Docs for Deep Dives</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Handbook' href='https://www.typescriptlang.org/docs/handbook/intro.html'>The TypeScript Handbook</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.tutorialspoint.com/typescript/index.htm'>TypeScript Tutorial</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://www.youtube.com/watch?v=BwuLxPH8IDs'>TypeScript for Beginners</BadgeLink>

@ -1 +1,12 @@
# Next js # Next.js
Next.js is an open-source development framework built on top of Node.js
enabling React based web applications functionalities such as server-side
rendering and generating static websites.
<ResourceGroupTitle>Free Resources</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Website' href='https://nextjs.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Docs' href='https://nextjs.org/docs/getting-started'>Official Docs for Getting Started</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://masteringnextjs.com/'>Mastering Next.js</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://youtu.be/1WmNXEVia8I'>Next.js for Beginners - freeCodeCamp</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Handbook' href='https://www.freecodecamp.org/news/the-next-js-handbook/'>The Next.js Handbook — freeCodeCamp</BadgeLink>

@ -1 +1,12 @@
# Next js # Next.js
Next.js is an open-source development framework built on top of Node.js
enabling React based web applications functionalities such as server-side
rendering and generating static websites.
<ResourceGroupTitle>Free Resources</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Website' href='https://nextjs.org/'>Official Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Docs' href='https://nextjs.org/docs/getting-started'>Official Docs for Getting Started</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://masteringnextjs.com/'>Mastering Next.js</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://youtu.be/1WmNXEVia8I'>Next.js for Beginners - Full Course at freeCodeCamp YouTube Channel</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Handbook' href='https://www.freecodecamp.org/news/the-next-js-handbook/'>The Next.js Handbook — FreeCodeCamp</BadgeLink>

@ -1 +1,3 @@
# Electron # Electron
Electron allows you to build cross-platform desktop applications with HTML, CSS, and Javascript/Typescript. It uses Chromium and Node.js, so essentially it is a "Browser" like application that is compatbile with Mac, Windows, and Linux.

@ -3,9 +3,9 @@
"title": "Frontend Developer Roadmap: Learn to become a modern frontend developer", "title": "Frontend Developer Roadmap: Learn to become a modern frontend developer",
"description": "Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.", "description": "Learn to become a modern frontend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern frontend development.",
"keywords": [ "keywords": [
"javascript roadmap 2021", "javascript roadmap 2022",
"frontend roadmap 2021", "frontend roadmap 2022",
"frontend developer roadmap 2021", "frontend developer roadmap 2022",
"guide to becoming a developer", "guide to becoming a developer",
"guide to becoming a frontend developer", "guide to becoming a frontend developer",
"frontend developer", "frontend developer",
@ -31,9 +31,9 @@
] ]
}, },
"title": "Frontend Developer", "title": "Frontend Developer",
"description": "Step by step guide to becoming a modern frontend developer in 2021", "description": "Step by step guide to becoming a modern frontend developer in 2022",
"featuredTitle": "Frontend", "featuredTitle": "Frontend",
"featuredDescription": "Step by step guide to becoming a frontend developer in 2021", "featuredDescription": "Step by step guide to becoming a frontend developer in 2022",
"author": { "author": {
"name": "Kamran Ahmed", "name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse" "url": "https://twitter.com/kamranahmedse"

@ -3,8 +3,8 @@
"title": "Backend Developer Roadmap: Learn to become a modern backend developer", "title": "Backend Developer Roadmap: Learn to become a modern backend developer",
"description": "Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.", "description": "Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.",
"keywords": [ "keywords": [
"backend roadmap 2021", "backend roadmap 2022",
"backend developer roadmap 2021", "backend developer roadmap 2022",
"guide to becoming a developer", "guide to becoming a developer",
"guide to becoming a backend developer", "guide to becoming a backend developer",
"backend roadmap", "backend roadmap",
@ -30,9 +30,9 @@
] ]
}, },
"title": "Backend Developer", "title": "Backend Developer",
"description": "Step by step guide to becoming a modern backend developer in 2021", "description": "Step by step guide to becoming a modern backend developer in 2022",
"featuredTitle": "Backend", "featuredTitle": "Backend",
"featuredDescription": "Step by step guide to becoming a backend developer in 2021", "featuredDescription": "Step by step guide to becoming a backend developer in 2022",
"featured": true, "featured": true,
"imageUrl": "/roadmaps/backend.png", "imageUrl": "/roadmaps/backend.png",
"jsonUrl": "/project/frontend.json", "jsonUrl": "/project/frontend.json",

@ -3,9 +3,9 @@
"title": "DevOps Roadmap: Learn to become a DevOps Engineer or SRE", "title": "DevOps Roadmap: Learn to become a DevOps Engineer or SRE",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap.", "description": "Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords": [ "keywords": [
"devops roadmap 2021", "devops roadmap 2022",
"sre roadmap 2021", "sre roadmap 2022",
"operations roadmap 2021", "operations roadmap 2022",
"guide to becoming a devops enginer", "guide to becoming a devops enginer",
"devops roadmap", "devops roadmap",
"sre roadmap", "sre roadmap",
@ -24,9 +24,9 @@
] ]
}, },
"title": "DevOps Roadmap", "title": "DevOps Roadmap",
"description": "Step by step guide for DevOps, SRE or any other Operations Role in 2021", "description": "Step by step guide for DevOps, SRE or any other Operations Role in 2022",
"featuredTitle": "DevOps", "featuredTitle": "DevOps",
"featuredDescription": "Step by step guide for DevOps or operations role in 2021", "featuredDescription": "Step by step guide for DevOps or operations role in 2022",
"featured": true, "featured": true,
"imageUrl": "/roadmaps/devops.png", "imageUrl": "/roadmaps/devops.png",
"jsonUrl": "/project/devops.json", "jsonUrl": "/project/devops.json",

@ -3,8 +3,8 @@
"title": "React Developer Roadmap: Learn to become a React developer", "title": "React Developer Roadmap: Learn to become a React developer",
"description": "Community driven, articles, resources, guides, interview questions, quizzes for react development. Learn to become a modern React developer by following the steps, skills, resources and guides listed in this roadmap.", "description": "Community driven, articles, resources, guides, interview questions, quizzes for react development. Learn to become a modern React developer by following the steps, skills, resources and guides listed in this roadmap.",
"keywords": [ "keywords": [
"react roadmap 2021", "react roadmap 2022",
"react developer roadmap 2021", "react developer roadmap 2022",
"guide to becoming a react developer", "guide to becoming a react developer",
"react developer roadmap", "react developer roadmap",
"react roadmap", "react roadmap",
@ -19,9 +19,9 @@
] ]
}, },
"title": "React Developer", "title": "React Developer",
"description": "Everything that is there to learn about React and the ecosystem in 2021.", "description": "Everything that is there to learn about React and the ecosystem in 2022.",
"featuredTitle": "React", "featuredTitle": "React",
"featuredDescription": "Step by step guide to become a React Developer in 2021", "featuredDescription": "Step by step guide to become a React Developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,

@ -17,9 +17,9 @@
] ]
}, },
"title": "Angular Developer", "title": "Angular Developer",
"description": "Everything that is there to learn about Angular and the ecosystem in 2021.", "description": "Everything that is there to learn about Angular and the ecosystem in 2022.",
"featuredTitle": "Angular", "featuredTitle": "Angular",
"featuredDescription": "Step by step guide to become a Angular Developer in 2021", "featuredDescription": "Step by step guide to become a Angular Developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,

@ -17,9 +17,9 @@
] ]
}, },
"title": "Android Developer", "title": "Android Developer",
"description": "Step by step guide to becoming an Android developer in 2021", "description": "Step by step guide to becoming an Android developer in 2022",
"featuredTitle": "Android", "featuredTitle": "Android",
"featuredDescription": "Step by step guide to becoming an Android Developer in 2021", "featuredDescription": "Step by step guide to becoming an Android Developer in 2022",
"isTextHeavy": true, "isTextHeavy": true,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,

@ -17,9 +17,9 @@
] ]
}, },
"title": "Python Developer", "title": "Python Developer",
"description": "Step by step guide to becoming a Python developer in 2021", "description": "Step by step guide to becoming a Python developer in 2022",
"featuredTitle": "Python", "featuredTitle": "Python",
"featuredDescription": "Step by step guide to becoming a Python Developer in 2021", "featuredDescription": "Step by step guide to becoming a Python Developer in 2022",
"isTextHeavy": true, "isTextHeavy": true,
"isCommunity": false, "isCommunity": false,
"featured": true, "featured": true,

@ -27,9 +27,9 @@
] ]
}, },
"title": "Go Developer", "title": "Go Developer",
"description": "Step by step guide to becoming a Go developer in 2021", "description": "Step by step guide to becoming a Go developer in 2022",
"featuredTitle": "Go", "featuredTitle": "Go",
"featuredDescription": "Step by step guide to becoming a Go developer in 2021", "featuredDescription": "Step by step guide to becoming a Go developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"isUpcoming": false, "isUpcoming": false,

@ -26,9 +26,9 @@
] ]
}, },
"title": "Java Developer", "title": "Java Developer",
"description": "Step by step guide to becoming a Java developer in 2021", "description": "Step by step guide to becoming a Java developer in 2022",
"featuredTitle": "Java", "featuredTitle": "Java",
"featuredDescription": "Step by step guide to becoming a Java Developer in 2021", "featuredDescription": "Step by step guide to becoming a Java Developer in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"isUpcoming": false, "isUpcoming": false,

@ -24,9 +24,9 @@
] ]
}, },
"title": "PostgreSQL DBA", "title": "PostgreSQL DBA",
"description": "Step by step guide to becoming a modern PostgreSQL DB Administrator in 2021", "description": "Step by step guide to becoming a modern PostgreSQL DB Administrator in 2022",
"featuredTitle": "DBA", "featuredTitle": "DBA",
"featuredDescription": "Step by step guide to become a PostgreSQL DBA in 2021", "featuredDescription": "Step by step guide to become a PostgreSQL DBA in 2022",
"landingPath": "./landscape.md", "landingPath": "./landscape.md",
"resourcesPath": "./resources.md", "resourcesPath": "./resources.md",
"author": { "author": {

@ -15,9 +15,9 @@
] ]
}, },
"title": "AWS", "title": "AWS",
"description": "Everything that is there to learn about AWS and the ecosystem in 2021.", "description": "Everything that is there to learn about AWS and the ecosystem in 2022.",
"featuredTitle": "AWS", "featuredTitle": "AWS",
"featuredDescription": "Step by step guide to learn AWS in 2021", "featuredDescription": "Step by step guide to learn AWS in 2022",
"isTextHeavy": false, "isTextHeavy": false,
"isCommunity": false, "isCommunity": false,
"isUpcoming": true, "isUpcoming": true,

@ -18,9 +18,9 @@
] ]
}, },
"title": "QA Engineer", "title": "QA Engineer",
"description": "Steps to follow in order to become a modern QA Engineer in 2021", "description": "Steps to follow in order to become a modern QA Engineer in 2022",
"featuredTitle": "QA", "featuredTitle": "QA",
"featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2021", "featuredDescription": "Step by step guide to becoming a modern QA Engineer in 2022",
"isUpcoming": true, "isUpcoming": true,
"featured": true, "featured": true,
"landingPath": "./landscape.md", "landingPath": "./landscape.md",

@ -9,7 +9,7 @@ posts, articles, newsletters, you must get prior consent from the understated. T
conditions do not apply to the readonly GitHub forks created using the Fork button on conditions do not apply to the readonly GitHub forks created using the Fork button on
GitHub with the whole purpose of contributing to the project. GitHub with the whole purpose of contributing to the project.
Copyright © 2021 Kamran Ahmed <kamranahmed.se@gmail.com> Copyright © 2022 Kamran Ahmed <kamranahmed.se@gmail.com>
Please note that I am really flexible with allowing the usage of the content in this Please note that I am really flexible with allowing the usage of the content in this
repository. If you reach out to me with a brief detail of why and how you would like repository. If you reach out to me with a brief detail of why and how you would like

216
package-lock.json generated

@ -12,15 +12,15 @@
"dependencies": { "dependencies": {
"@chakra-ui/icons": "^1.1.1", "@chakra-ui/icons": "^1.1.1",
"@chakra-ui/react": "^1.7.3", "@chakra-ui/react": "^1.7.3",
"@emotion/react": "^11.7.0", "@emotion/react": "^11.7.1",
"@emotion/styled": "^11.6.0", "@emotion/styled": "^11.6.0",
"@mapbox/rehype-prism": "^0.8.0", "@mapbox/rehype-prism": "^0.8.0",
"@mdx-js/loader": "^1.6.22", "@mdx-js/loader": "^1.6.22",
"@next/mdx": "^12.0.7", "@next/mdx": "^12.0.7",
"@svgr/webpack": "^6.1.1", "@svgr/webpack": "^6.1.2",
"date-fns": "^2.27.0", "date-fns": "^2.27.0",
"focus-visible": "^5.2.0", "focus-visible": "^5.2.0",
"framer-motion": "^5.4.5", "framer-motion": "^5.5.5",
"next": "^12.0.7", "next": "^12.0.7",
"prism-themes": "^1.9.0", "prism-themes": "^1.9.0",
"react": "17.0.2", "react": "17.0.2",
@ -33,18 +33,18 @@
"@types/eslint": "8.2.1", "@types/eslint": "8.2.1",
"@types/gh-pages": "^3.2.0", "@types/gh-pages": "^3.2.0",
"@types/glob": "^7.2.0", "@types/glob": "^7.2.0",
"@types/react": "17.0.37", "@types/react": "17.0.38",
"@types/react-dom": "17.0.11", "@types/react-dom": "17.0.11",
"@types/styled-components": "^5.1.17", "@types/styled-components": "^5.1.19",
"eslint-config-next": "12.0.7", "eslint-config-next": "12.0.7",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"gh-pages": "^3.2.3", "gh-pages": "^3.2.3",
"glob": "^7.2.0", "glob": "^7.2.0",
"husky": "^7.0.4", "husky": "^7.0.4",
"pretty-quick": "^3.1.2", "pretty-quick": "^3.1.3",
"serve": "^13.0.2", "serve": "^13.0.2",
"ts-node": "^10.4.0", "ts-node": "^10.4.0",
"typescript": "4.5.3" "typescript": "4.5.4"
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
@ -2691,15 +2691,15 @@
} }
}, },
"node_modules/@emotion/cache": { "node_modules/@emotion/cache": {
"version": "11.6.0", "version": "11.7.1",
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.6.0.tgz", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz",
"integrity": "sha512-ElbsWY1KMwEowkv42vGo0UPuLgtPYfIs9BxxVrmvsaJVvktknsHYYlx5NQ5g6zLDcOTyamlDc7FkRg2TAcQDKQ==", "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==",
"dependencies": { "dependencies": {
"@emotion/memoize": "^0.7.4", "@emotion/memoize": "^0.7.4",
"@emotion/sheet": "^1.1.0", "@emotion/sheet": "^1.1.0",
"@emotion/utils": "^1.0.0", "@emotion/utils": "^1.0.0",
"@emotion/weak-memoize": "^0.2.5", "@emotion/weak-memoize": "^0.2.5",
"stylis": "^4.0.10" "stylis": "4.0.13"
} }
}, },
"node_modules/@emotion/hash": { "node_modules/@emotion/hash": {
@ -2721,12 +2721,12 @@
"integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
}, },
"node_modules/@emotion/react": { "node_modules/@emotion/react": {
"version": "11.7.0", "version": "11.7.1",
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.0.tgz", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.1.tgz",
"integrity": "sha512-WL93hf9+/2s3cA1JVJlz8+Uy6p6QWukqQFOm2OZO5ki51hfucHMOmbSjiyC3t2Y4RI8XUmBoepoc/24ny/VBbA==", "integrity": "sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.13.10", "@babel/runtime": "^7.13.10",
"@emotion/cache": "^11.6.0", "@emotion/cache": "^11.7.1",
"@emotion/serialize": "^1.0.2", "@emotion/serialize": "^1.0.2",
"@emotion/sheet": "^1.1.0", "@emotion/sheet": "^1.1.0",
"@emotion/utils": "^1.0.0", "@emotion/utils": "^1.0.0",
@ -3619,11 +3619,11 @@
} }
}, },
"node_modules/@svgr/core": { "node_modules/@svgr/core": {
"version": "6.1.1", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.1.1.tgz", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.1.2.tgz",
"integrity": "sha512-/NP+24cQmcEdJYptoFWO34SHkNx2x4KOGAMcnTpzOPQifvb1ecupWNEPeHBDY18utd0OMpl2kWf0ZnyN5VsVlg==", "integrity": "sha512-G1UVZcPS5R+HfBG5QC7n2ibkax8RXki2sbKHySTTnajeNXbzriBJcpF4GpYzWptfvD2gmqTDY9XaX+x08TUyGQ==",
"dependencies": { "dependencies": {
"@svgr/plugin-jsx": "^6.1.0", "@svgr/plugin-jsx": "^6.1.2",
"camelcase": "^6.2.0", "camelcase": "^6.2.0",
"cosmiconfig": "^7.0.1" "cosmiconfig": "^7.0.1"
}, },
@ -3652,9 +3652,9 @@
} }
}, },
"node_modules/@svgr/plugin-jsx": { "node_modules/@svgr/plugin-jsx": {
"version": "6.1.0", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.1.2.tgz",
"integrity": "sha512-grAeVnwjr4eyzzscX6d5dK202nQcKGt5STry3BrCNuw8RZkMVFYumjH/qLnInO2ugc0ESSo8eCkb+30vXVxSTg==", "integrity": "sha512-K/w16g3BznTjVjLyUyV0fE7LLl1HSq5KJjvczFVVvx9QG0+3xtU7RX6gvoVnTvYlrNo8QxxqLWVAU3HQm68Eew==",
"dependencies": { "dependencies": {
"@babel/core": "^7.15.5", "@babel/core": "^7.15.5",
"@svgr/babel-preset": "^6.1.0", "@svgr/babel-preset": "^6.1.0",
@ -3669,13 +3669,13 @@
"url": "https://github.com/sponsors/gregberge" "url": "https://github.com/sponsors/gregberge"
}, },
"peerDependencies": { "peerDependencies": {
"@svgr/core": "^6.0.0-alpha.0" "@svgr/core": "^6.0.0"
} }
}, },
"node_modules/@svgr/plugin-svgo": { "node_modules/@svgr/plugin-svgo": {
"version": "6.1.0", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.1.2.tgz",
"integrity": "sha512-NQtYlvPg6yk3wxm1EeeI3kNh/NoSxwW/Zjkvy3vf4CJJHKryB3TnkLsY8Z5hDOERT3Hadksh9RyZnSszEG7q5w==", "integrity": "sha512-UHVSRZV3RdaggDT60OMIEmhskN736DOF6PuBcCaql6jBDA9+SZkA5ZMEw73ZLAlwdOAmw+0Gi4vx/xvAfnmerw==",
"dependencies": { "dependencies": {
"cosmiconfig": "^7.0.1", "cosmiconfig": "^7.0.1",
"deepmerge": "^4.2.2", "deepmerge": "^4.2.2",
@ -3689,22 +3689,22 @@
"url": "https://github.com/sponsors/gregberge" "url": "https://github.com/sponsors/gregberge"
}, },
"peerDependencies": { "peerDependencies": {
"@svgr/core": "^6.0.0-alpha.0" "@svgr/core": "^6.0.0"
} }
}, },
"node_modules/@svgr/webpack": { "node_modules/@svgr/webpack": {
"version": "6.1.1", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.1.1.tgz", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.1.2.tgz",
"integrity": "sha512-22Ba6/9u/7UHnnwWQBDEIy3GrKbacMHUfS1+0XO1sjiEwQFV+eoJnnwnNX5PVS3pEx0srIKhaCCs9RtUrsM8+w==", "integrity": "sha512-5RzzWxFquywENwvnsiGjZ7IED+0l2lnICR3OKQ6OUyGgxlu+ac73NmDSXp6EPBz/ZTArpMZtug7jiPMUkXxnlg==",
"dependencies": { "dependencies": {
"@babel/core": "^7.15.5", "@babel/core": "^7.15.5",
"@babel/plugin-transform-react-constant-elements": "^7.14.5", "@babel/plugin-transform-react-constant-elements": "^7.14.5",
"@babel/preset-env": "^7.15.6", "@babel/preset-env": "^7.15.6",
"@babel/preset-react": "^7.14.5", "@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0", "@babel/preset-typescript": "^7.15.0",
"@svgr/core": "^6.1.1", "@svgr/core": "^6.1.2",
"@svgr/plugin-jsx": "^6.1.0", "@svgr/plugin-jsx": "^6.1.2",
"@svgr/plugin-svgo": "^6.1.0" "@svgr/plugin-svgo": "^6.1.2"
}, },
"engines": { "engines": {
"node": ">=10" "node": ">=10"
@ -3867,9 +3867,9 @@
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "17.0.37", "version": "17.0.38",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz",
"integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==",
"dependencies": { "dependencies": {
"@types/prop-types": "*", "@types/prop-types": "*",
"@types/scheduler": "*", "@types/scheduler": "*",
@ -3891,9 +3891,9 @@
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
}, },
"node_modules/@types/styled-components": { "node_modules/@types/styled-components": {
"version": "5.1.17", "version": "5.1.19",
"resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.17.tgz", "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.19.tgz",
"integrity": "sha512-niMaIan3C2LYCGEPntljGrkxLBfz1RZf4WTTv7w9GJygMsCOl226/UoSwXC8dIHCHs4sQKFQUs5JtdL2hj7k0g==", "integrity": "sha512-hNj14Oamk7Jhb/fMMQG7TUkd3e8uMMgxsCTH+ueJNGdFo/PuhlGDQTPChqyilpZP0WttgBHkc2YyT5UG+yc6Yw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/hoist-non-react-statics": "*", "@types/hoist-non-react-statics": "*",
@ -5694,15 +5694,15 @@
} }
}, },
"node_modules/css-select": { "node_modules/css-select": {
"version": "4.1.3", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz",
"integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==",
"dependencies": { "dependencies": {
"boolbase": "^1.0.0", "boolbase": "^1.0.0",
"css-what": "^5.0.0", "css-what": "^5.1.0",
"domhandler": "^4.2.0", "domhandler": "^4.3.0",
"domutils": "^2.6.0", "domutils": "^2.8.0",
"nth-check": "^2.0.0" "nth-check": "^2.0.1"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/fb55" "url": "https://github.com/sponsors/fb55"
@ -7240,9 +7240,9 @@
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
}, },
"node_modules/framer-motion": { "node_modules/framer-motion": {
"version": "5.4.5", "version": "5.5.5",
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-5.4.5.tgz", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-5.5.5.tgz",
"integrity": "sha512-OjKfSMO22a9bTedhQ4diwZWCcmwoZmfrkalv4adhHTH2/cXa2eoFAmmPzs6aNpENbMrn47YmlWGwZtYNycXFLg==", "integrity": "sha512-+LPAF5ddo02qKh+MK4h1ChwqUFvrLkK1NDWwrHy+MuCVmQDGgiFNHvwqOSklTDGkEtbio3dCOEDy23+ZyNAa9g==",
"dependencies": { "dependencies": {
"framesync": "6.0.1", "framesync": "6.0.1",
"hey-listen": "^1.0.8", "hey-listen": "^1.0.8",
@ -7256,7 +7256,7 @@
"@emotion/is-prop-valid": "^0.8.2" "@emotion/is-prop-valid": "^0.8.2"
}, },
"peerDependencies": { "peerDependencies": {
"@react-three/fiber": "^7.0.21", "@react-three/fiber": "*",
"react": ">=16.8 || ^17.0.0", "react": ">=16.8 || ^17.0.0",
"react-dom": ">=16.8 || ^17.0.0", "react-dom": ">=16.8 || ^17.0.0",
"three": "^0.135.0" "three": "^0.135.0"
@ -10605,9 +10605,9 @@
} }
}, },
"node_modules/pretty-quick": { "node_modules/pretty-quick": {
"version": "3.1.2", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.2.tgz", "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.3.tgz",
"integrity": "sha512-T+fpTJrDjTzewql4p3lKrRA7z3MrNyjBK1MKeaBm5PpKwATgVm885TpY7TgY8KFt5Q1Qn3QDseRQcyX9AKTKkA==", "integrity": "sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"chalk": "^3.0.0", "chalk": "^3.0.0",
@ -12518,9 +12518,9 @@
} }
}, },
"node_modules/stylis": { "node_modules/stylis": {
"version": "4.0.10", "version": "4.0.13",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz",
"integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag=="
}, },
"node_modules/supports-color": { "node_modules/supports-color": {
"version": "5.5.0", "version": "5.5.0",
@ -13013,9 +13013,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "4.5.3", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
"integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==", "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@ -15936,15 +15936,15 @@
} }
}, },
"@emotion/cache": { "@emotion/cache": {
"version": "11.6.0", "version": "11.7.1",
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.6.0.tgz", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz",
"integrity": "sha512-ElbsWY1KMwEowkv42vGo0UPuLgtPYfIs9BxxVrmvsaJVvktknsHYYlx5NQ5g6zLDcOTyamlDc7FkRg2TAcQDKQ==", "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==",
"requires": { "requires": {
"@emotion/memoize": "^0.7.4", "@emotion/memoize": "^0.7.4",
"@emotion/sheet": "^1.1.0", "@emotion/sheet": "^1.1.0",
"@emotion/utils": "^1.0.0", "@emotion/utils": "^1.0.0",
"@emotion/weak-memoize": "^0.2.5", "@emotion/weak-memoize": "^0.2.5",
"stylis": "^4.0.10" "stylis": "4.0.13"
} }
}, },
"@emotion/hash": { "@emotion/hash": {
@ -15966,12 +15966,12 @@
"integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ=="
}, },
"@emotion/react": { "@emotion/react": {
"version": "11.7.0", "version": "11.7.1",
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.0.tgz", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.1.tgz",
"integrity": "sha512-WL93hf9+/2s3cA1JVJlz8+Uy6p6QWukqQFOm2OZO5ki51hfucHMOmbSjiyC3t2Y4RI8XUmBoepoc/24ny/VBbA==", "integrity": "sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==",
"requires": { "requires": {
"@babel/runtime": "^7.13.10", "@babel/runtime": "^7.13.10",
"@emotion/cache": "^11.6.0", "@emotion/cache": "^11.7.1",
"@emotion/serialize": "^1.0.2", "@emotion/serialize": "^1.0.2",
"@emotion/sheet": "^1.1.0", "@emotion/sheet": "^1.1.0",
"@emotion/utils": "^1.0.0", "@emotion/utils": "^1.0.0",
@ -16535,11 +16535,11 @@
} }
}, },
"@svgr/core": { "@svgr/core": {
"version": "6.1.1", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.1.1.tgz", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.1.2.tgz",
"integrity": "sha512-/NP+24cQmcEdJYptoFWO34SHkNx2x4KOGAMcnTpzOPQifvb1ecupWNEPeHBDY18utd0OMpl2kWf0ZnyN5VsVlg==", "integrity": "sha512-G1UVZcPS5R+HfBG5QC7n2ibkax8RXki2sbKHySTTnajeNXbzriBJcpF4GpYzWptfvD2gmqTDY9XaX+x08TUyGQ==",
"requires": { "requires": {
"@svgr/plugin-jsx": "^6.1.0", "@svgr/plugin-jsx": "^6.1.2",
"camelcase": "^6.2.0", "camelcase": "^6.2.0",
"cosmiconfig": "^7.0.1" "cosmiconfig": "^7.0.1"
} }
@ -16554,9 +16554,9 @@
} }
}, },
"@svgr/plugin-jsx": { "@svgr/plugin-jsx": {
"version": "6.1.0", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.1.2.tgz",
"integrity": "sha512-grAeVnwjr4eyzzscX6d5dK202nQcKGt5STry3BrCNuw8RZkMVFYumjH/qLnInO2ugc0ESSo8eCkb+30vXVxSTg==", "integrity": "sha512-K/w16g3BznTjVjLyUyV0fE7LLl1HSq5KJjvczFVVvx9QG0+3xtU7RX6gvoVnTvYlrNo8QxxqLWVAU3HQm68Eew==",
"requires": { "requires": {
"@babel/core": "^7.15.5", "@babel/core": "^7.15.5",
"@svgr/babel-preset": "^6.1.0", "@svgr/babel-preset": "^6.1.0",
@ -16565,9 +16565,9 @@
} }
}, },
"@svgr/plugin-svgo": { "@svgr/plugin-svgo": {
"version": "6.1.0", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.1.0.tgz", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.1.2.tgz",
"integrity": "sha512-NQtYlvPg6yk3wxm1EeeI3kNh/NoSxwW/Zjkvy3vf4CJJHKryB3TnkLsY8Z5hDOERT3Hadksh9RyZnSszEG7q5w==", "integrity": "sha512-UHVSRZV3RdaggDT60OMIEmhskN736DOF6PuBcCaql6jBDA9+SZkA5ZMEw73ZLAlwdOAmw+0Gi4vx/xvAfnmerw==",
"requires": { "requires": {
"cosmiconfig": "^7.0.1", "cosmiconfig": "^7.0.1",
"deepmerge": "^4.2.2", "deepmerge": "^4.2.2",
@ -16575,18 +16575,18 @@
} }
}, },
"@svgr/webpack": { "@svgr/webpack": {
"version": "6.1.1", "version": "6.1.2",
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.1.1.tgz", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.1.2.tgz",
"integrity": "sha512-22Ba6/9u/7UHnnwWQBDEIy3GrKbacMHUfS1+0XO1sjiEwQFV+eoJnnwnNX5PVS3pEx0srIKhaCCs9RtUrsM8+w==", "integrity": "sha512-5RzzWxFquywENwvnsiGjZ7IED+0l2lnICR3OKQ6OUyGgxlu+ac73NmDSXp6EPBz/ZTArpMZtug7jiPMUkXxnlg==",
"requires": { "requires": {
"@babel/core": "^7.15.5", "@babel/core": "^7.15.5",
"@babel/plugin-transform-react-constant-elements": "^7.14.5", "@babel/plugin-transform-react-constant-elements": "^7.14.5",
"@babel/preset-env": "^7.15.6", "@babel/preset-env": "^7.15.6",
"@babel/preset-react": "^7.14.5", "@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0", "@babel/preset-typescript": "^7.15.0",
"@svgr/core": "^6.1.1", "@svgr/core": "^6.1.2",
"@svgr/plugin-jsx": "^6.1.0", "@svgr/plugin-jsx": "^6.1.2",
"@svgr/plugin-svgo": "^6.1.0" "@svgr/plugin-svgo": "^6.1.2"
} }
}, },
"@szmarczak/http-timer": { "@szmarczak/http-timer": {
@ -16736,9 +16736,9 @@
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
}, },
"@types/react": { "@types/react": {
"version": "17.0.37", "version": "17.0.38",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz",
"integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==",
"requires": { "requires": {
"@types/prop-types": "*", "@types/prop-types": "*",
"@types/scheduler": "*", "@types/scheduler": "*",
@ -16760,9 +16760,9 @@
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
}, },
"@types/styled-components": { "@types/styled-components": {
"version": "5.1.17", "version": "5.1.19",
"resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.17.tgz", "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.19.tgz",
"integrity": "sha512-niMaIan3C2LYCGEPntljGrkxLBfz1RZf4WTTv7w9GJygMsCOl226/UoSwXC8dIHCHs4sQKFQUs5JtdL2hj7k0g==", "integrity": "sha512-hNj14Oamk7Jhb/fMMQG7TUkd3e8uMMgxsCTH+ueJNGdFo/PuhlGDQTPChqyilpZP0WttgBHkc2YyT5UG+yc6Yw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/hoist-non-react-statics": "*", "@types/hoist-non-react-statics": "*",
@ -18148,15 +18148,15 @@
"integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU="
}, },
"css-select": { "css-select": {
"version": "4.1.3", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz",
"integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==",
"requires": { "requires": {
"boolbase": "^1.0.0", "boolbase": "^1.0.0",
"css-what": "^5.0.0", "css-what": "^5.1.0",
"domhandler": "^4.2.0", "domhandler": "^4.3.0",
"domutils": "^2.6.0", "domutils": "^2.8.0",
"nth-check": "^2.0.0" "nth-check": "^2.0.1"
} }
}, },
"css-to-react-native": { "css-to-react-native": {
@ -19335,9 +19335,9 @@
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
}, },
"framer-motion": { "framer-motion": {
"version": "5.4.5", "version": "5.5.5",
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-5.4.5.tgz", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-5.5.5.tgz",
"integrity": "sha512-OjKfSMO22a9bTedhQ4diwZWCcmwoZmfrkalv4adhHTH2/cXa2eoFAmmPzs6aNpENbMrn47YmlWGwZtYNycXFLg==", "integrity": "sha512-+LPAF5ddo02qKh+MK4h1ChwqUFvrLkK1NDWwrHy+MuCVmQDGgiFNHvwqOSklTDGkEtbio3dCOEDy23+ZyNAa9g==",
"requires": { "requires": {
"@emotion/is-prop-valid": "^0.8.2", "@emotion/is-prop-valid": "^0.8.2",
"framesync": "6.0.1", "framesync": "6.0.1",
@ -21787,9 +21787,9 @@
"peer": true "peer": true
}, },
"pretty-quick": { "pretty-quick": {
"version": "3.1.2", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.2.tgz", "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.3.tgz",
"integrity": "sha512-T+fpTJrDjTzewql4p3lKrRA7z3MrNyjBK1MKeaBm5PpKwATgVm885TpY7TgY8KFt5Q1Qn3QDseRQcyX9AKTKkA==", "integrity": "sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "^3.0.0", "chalk": "^3.0.0",
@ -23242,9 +23242,9 @@
} }
}, },
"stylis": { "stylis": {
"version": "4.0.10", "version": "4.0.13",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz",
"integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag=="
}, },
"supports-color": { "supports-color": {
"version": "5.5.0", "version": "5.5.0",
@ -23621,9 +23621,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "4.5.3", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
"integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==", "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
"dev": true "dev": true
}, },
"unbox-primitive": { "unbox-primitive": {

@ -20,15 +20,15 @@
"dependencies": { "dependencies": {
"@chakra-ui/icons": "^1.1.1", "@chakra-ui/icons": "^1.1.1",
"@chakra-ui/react": "^1.7.3", "@chakra-ui/react": "^1.7.3",
"@emotion/react": "^11.7.0", "@emotion/react": "^11.7.1",
"@emotion/styled": "^11.6.0", "@emotion/styled": "^11.6.0",
"@mapbox/rehype-prism": "^0.8.0", "@mapbox/rehype-prism": "^0.8.0",
"@mdx-js/loader": "^1.6.22", "@mdx-js/loader": "^1.6.22",
"@next/mdx": "^12.0.7", "@next/mdx": "^12.0.7",
"@svgr/webpack": "^6.1.1", "@svgr/webpack": "^6.1.2",
"date-fns": "^2.27.0", "date-fns": "^2.27.0",
"focus-visible": "^5.2.0", "focus-visible": "^5.2.0",
"framer-motion": "^5.4.5", "framer-motion": "^5.5.5",
"next": "^12.0.7", "next": "^12.0.7",
"prism-themes": "^1.9.0", "prism-themes": "^1.9.0",
"react": "17.0.2", "react": "17.0.2",
@ -41,18 +41,18 @@
"@types/eslint": "8.2.1", "@types/eslint": "8.2.1",
"@types/gh-pages": "^3.2.0", "@types/gh-pages": "^3.2.0",
"@types/glob": "^7.2.0", "@types/glob": "^7.2.0",
"@types/react": "17.0.37", "@types/react": "17.0.38",
"@types/react-dom": "17.0.11", "@types/react-dom": "17.0.11",
"@types/styled-components": "^5.1.17", "@types/styled-components": "^5.1.19",
"eslint-config-next": "12.0.7", "eslint-config-next": "12.0.7",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"gh-pages": "^3.2.3", "gh-pages": "^3.2.3",
"glob": "^7.2.0", "glob": "^7.2.0",
"husky": "^7.0.4", "husky": "^7.0.4",
"pretty-quick": "^3.1.2", "pretty-quick": "^3.1.3",
"serve": "^13.0.2", "serve": "^13.0.2",
"ts-node": "^10.4.0", "ts-node": "^10.4.0",
"typescript": "4.5.3" "typescript": "4.5.4"
}, },
"husky": { "husky": {
"hooks": { "hooks": {

@ -84,14 +84,16 @@ export default function Thanks() {
<Box mt='40px'> <Box mt='40px'>
<Heading mb='15px' fontSize='25px' as='h2'>Monthly Sponsors</Heading> <Heading mb='15px' fontSize='25px' as='h2'>Monthly Sponsors</Heading>
<UnorderedList> <UnorderedList>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/imReset'>Reset</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/ricardolino'>Ricardo Lino</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/Nenzyz'>Yan Valuyskiy</Link></ListItem> href='https://github.com/Nenzyz'>Yan Valuyskiy</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/idjevm'>Josue V</Link></ListItem> href='https://github.com/idjevm'>Josue V</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/Novecento88'>Novecento88</Link></ListItem> href='https://github.com/Novecento88'>Novecento88</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/werber'>Myroslav</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/gmzabos'>Gerald-Markus Zabos</Link></ListItem> href='https://github.com/gmzabos'>Gerald-Markus Zabos</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
@ -103,15 +105,23 @@ export default function Thanks() {
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/josephjacks'>Joseph href='https://github.com/josephjacks'>Joseph
Jacks</Link></ListItem> Jacks</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/MustafaMagdi'>Mustafa
Magdi</Link></ListItem>
</UnorderedList> </UnorderedList>
</Box> </Box>
<Box mt='40px'> <Box mt='40px'>
<Heading mb='15px' fontSize='25px' as='h2'>Past or One Time Sponsors</Heading> <Heading mb='15px' fontSize='25px' as='h2'>Past or One Time Sponsors</Heading>
<UnorderedList> <UnorderedList>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/werber'>Myroslav</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/MustafaMagdi'>Mustafa
Magdi</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/JacobPEvans'>Jacob P Evans</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/shaman771'>Oleg</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/aimuch'>Andy</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}
href='https://github.com/elzup'>elzup</Link></ListItem> href='https://github.com/elzup'>elzup</Link></ListItem>
<ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500} <ListItem mb='5px'><Link color='blue.500' target='_blank' fontWeight={500}

@ -1,11 +1,61 @@
![Web Developer Roadmap - 2021](./.github/images/banner.png) <p align="center">
<img src="public/brand.png" height="128">
<h2 align="center">roadmap.sh</h2>
<p align="center">Community driven roadmaps, articles and resources for developers<p>
<p align="center">
<a href="https://roadmap.sh/roadmaps">
<img src="https://img.shields.io/badge/-Roadmaps%20-0a0a0a.svg?style=flat&colorA=0a0a0a" alt="roadmaps" />
</a>
<a href="https://youtube.com/theroadmap?sub_confirmation=1">
<img src="https://img.shields.io/badge/-Videos-0a0a0a.svg?style=flat&colorA=0a0a0a" alt="videos" />
</a>
<a href="https://github.com/kamranahmedse/developer-roadmap/tree/0471d44c8fae58b6a36a7c57bba12253916d0249/translations">
<img src="https://img.shields.io/badge/-Translations-0a0a0a.svg?style=flat&colorA=0a0a0a" alt="videos" />
</a>
<a href="https://www.youtube.com/channel/UCA0H2KIWgWTwpTFjSxp0now?sub_confirmation=1">
<img src="https://img.shields.io/badge/%E2%9D%A4-YouTube%20Channel-0a0a0a.svg?style=flat&colorA=0a0a0a" alt="roadmaps" />
</a>
</p>
</p>
> Community effort to create roadmaps, guides and structured educational content. <br>
<div align="center">
<p>
<sup>
<a href="https://github.com/sponsors/kamranahmedse">My open source work is supported by the community</a>
</sup>
</p>
<sup>Special thanks to:</sup>
<br />
<p>
<a href="https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=kamranahmedse&utm_source=github">
<div>
<img src="./.github/sponsors/doppler-logo.svg" width="300" alt="Doppler" >
</div>
<b>All your environment variables, in one place</b>
<div>
<sub>Stop struggling with scattered API keys, hacking together home-brewed tools,</sub>
<br>
<sup>and avoiding access controls. Keep your team and servers in sync with Doppler.</sup>
</div>
</a>
</p>
<br>
<p>
<a href="https://oss.capital">
<div>
<img src="./.github/sponsors/oss-logo.svg" width="300" alt="OSS Capital">
</div>
<div>
<sup><b>Founded in 2018, OSS Capital is the first and only venture capital platform focused<br>exclusively on supporting early-stage COSS (commercial open source) startup founders.</b></sup>
</div>
</a>
</p>
</div>
[![](https://img.shields.io/badge/-Roadmaps%20-0a0a0a.svg?style=flat&colorA=0a0a0a)](http://roadmap.sh) <br>
[![](https://img.shields.io/badge/-Guides-0a0a0a.svg?style=flat&colorA=0a0a0a)](http://roadmap.sh/guides)
[![](https://img.shields.io/badge/-Videos-0a0a0a.svg?style=flat&colorA=0a0a0a)](http://roadmap.sh/watch)
[![](https://img.shields.io/badge/%E2%9D%A4-YouTube%20Channel-0a0a0a.svg?style=flat&colorA=0a0a0a)](https://www.youtube.com/channel/UCA0H2KIWgWTwpTFjSxp0now?sub_confirmation=1)
![](https://i.imgur.com/waxVImv.png) ![](https://i.imgur.com/waxVImv.png)
@ -53,48 +103,6 @@ npm run dev
- Discuss ideas in issues - Discuss ideas in issues
- Spread the word - Spread the word
<br>
<br>
<br>
<div align="center">
<p>
<sup>
<a href="https://github.com/sponsors/kamranahmedse">My open source work is supported by the community</a>
</sup>
</p>
<sup>Special thanks to:</sup>
<br />
<p>
<a href="https://www.doppler.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=kamranahmedse&utm_source=github">
<div>
<img src="./.github/sponsors/doppler-logo.svg" width="300" alt="Doppler" >
</div>
<b>All your environment variables, in one place</b>
<div>
<sub>Stop struggling with scattered API keys, hacking together home-brewed tools,</sub>
<br>
<sup>and avoiding access controls. Keep your team and servers in sync with Doppler.</sup>
</div>
</a>
</p>
<br>
<p>
<a href="https://oss.capital">
<div>
<img src="./.github/sponsors/oss-logo.svg" width="300" alt="OSS Capital">
</div>
<div>
<sup><b>Founded in 2018, OSS Capital is the first and only venture capital platform focused<br>exclusively on supporting early-stage COSS (commercial open source) startup founders.</b></sup>
</div>
</a>
</p>
</div>
<br>
<br>
## License ## License
Have a look at the [license file](./license) for details Have a look at the [license file](./license) for details

Loading…
Cancel
Save