Merge branch 'kamranahmedse:master' into master

This commit is contained in:
Aroyan
2022-01-05 13:36:54 +07:00
committed by GitHub
31 changed files with 315 additions and 235 deletions

View File

@ -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",
@ -520,4 +520,4 @@
"id": "qa", "id": "qa",
"metaPath": "/roadmaps/111-qa/meta.json" "metaPath": "/roadmaps/111-qa/meta.json"
} }
] ]

View File

@ -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",

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1 @@
# Mocha

View File

@ -0,0 +1 @@
# Jasmine

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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.

View File

@ -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"

View File

@ -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",

View File

@ -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",

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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": {

View File

@ -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,

View File

@ -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",

View File

@ -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
View File

@ -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": {

View File

@ -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": {

View File

@ -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}

104
readme.md
View File

@ -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>
[![](https://img.shields.io/badge/-Roadmaps%20-0a0a0a.svg?style=flat&colorA=0a0a0a)](http://roadmap.sh) <div align="center">
[![](https://img.shields.io/badge/-Guides-0a0a0a.svg?style=flat&colorA=0a0a0a)](http://roadmap.sh/guides) <p>
[![](https://img.shields.io/badge/-Videos-0a0a0a.svg?style=flat&colorA=0a0a0a)](http://roadmap.sh/watch) <sup>
[![](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) <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>
![](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