diff --git a/bin/sync-content.sh b/bin/sync-content.sh
index ee35af3fd..94e411017 100644
--- a/bin/sync-content.sh
+++ b/bin/sync-content.sh
@@ -27,4 +27,4 @@ echo "=== Migrating Guides ==="
node guide-migrator.cjs
echo "=== Migrating Videos ==="
-# node video-migrator.cjs
+node video-migrator.cjs
diff --git a/bin/video-migrator.cjs b/bin/video-migrator.cjs
new file mode 100644
index 000000000..3b4acf034
--- /dev/null
+++ b/bin/video-migrator.cjs
@@ -0,0 +1,58 @@
+const fs = require('fs');
+const path = require('path');
+const yaml = require('json-to-pretty-yaml');
+
+const contentDirPath = path.join(__dirname, './developer-roadmap/content');
+const videos = require('./developer-roadmap/content/videos.json');
+
+// Remove the old videos directory
+const newVideosDirPath = path.join(__dirname, '../src/videos');
+if (fs.existsSync(newVideosDirPath)) {
+ fs.rmSync(newVideosDirPath, { recursive: true });
+}
+
+fs.mkdirSync(newVideosDirPath);
+
+videos.forEach((video) => {
+ const { id: videoId } = video;
+
+ const originalVideoPath = path.join(
+ contentDirPath,
+ 'videos',
+ `${videoId}.md`
+ );
+
+ const newVideoPath = path.join(__dirname, `../src/videos/${videoId}.md`);
+
+ const videoWithoutFrontmatter = fs.readFileSync(originalVideoPath, 'utf8');
+ fs.copyFileSync(originalVideoPath, newVideoPath);
+
+ const videoFrontMatter = yaml
+ .stringify({
+ title: video.title,
+ description: video.description,
+ duration: video.duration,
+ isNew: video.isNew,
+ date: video.createdAt.replace(/T.*/, ''),
+ author: {
+ name: 'Kamran Ahmed',
+ url: `https://twitter.com/kamranahmedse`,
+ imageUrl: `/authors/kamranahmedse.jpeg`,
+ },
+ sitemap: {
+ priority: 0.7,
+ changefreq: 'weekly',
+ },
+ tags: ['video', `video-sitemap`],
+ })
+ .replace(/date: "(.+?)"/, 'date: $1');
+
+ const videoWithIframeClass = videoWithoutFrontmatter
+ .replace(//g, '');
+
+ const videoWithFrontmatter = `---\n${videoFrontMatter}---\n\n${videoWithIframeClass}`;
+
+ console.log(`Writing video ${videoId} to disk`);
+ fs.writeFileSync(newVideoPath, videoWithFrontmatter);
+});
diff --git a/src/videos/acid-explained.md b/src/videos/acid-explained.md
new file mode 100644
index 000000000..99eee7d0c
--- /dev/null
+++ b/src/videos/acid-explained.md
@@ -0,0 +1,19 @@
+---
+title: "ACID Explained"
+description: "Learn what it means for a database to be ACID compliant with examples."
+duration: "5 minutes"
+isNew: false
+date: 2021-09-26
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/all-about-http-caching.md b/src/videos/all-about-http-caching.md
new file mode 100644
index 000000000..17cbb897b
--- /dev/null
+++ b/src/videos/all-about-http-caching.md
@@ -0,0 +1,19 @@
+---
+title: "All about HTTP Caching"
+description: "Learn what is HTTP caching, places for caching and different caching headers."
+duration: "13 minutes"
+isNew: false
+date: 2020-10-04
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/array-structure.md b/src/videos/array-structure.md
new file mode 100644
index 000000000..c86c92c36
--- /dev/null
+++ b/src/videos/array-structure.md
@@ -0,0 +1,19 @@
+---
+title: "All about Array Data Structure"
+description: "Learn everything you need to know about array data structure"
+duration: "10 minutes"
+isNew: false
+date: 2022-01-09
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/arrays-and-objects-in-javascript.md b/src/videos/arrays-and-objects-in-javascript.md
new file mode 100644
index 000000000..b65ddf902
--- /dev/null
+++ b/src/videos/arrays-and-objects-in-javascript.md
@@ -0,0 +1,19 @@
+---
+title: "Arrays and Objects in JavaScript"
+description: "Learn how to manipulate arrays and objects in JavaScript."
+duration: "12 minutes"
+isNew: false
+date: 2020-05-09
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/async-javascript.md b/src/videos/async-javascript.md
new file mode 100644
index 000000000..caa68a2a3
--- /dev/null
+++ b/src/videos/async-javascript.md
@@ -0,0 +1,19 @@
+---
+title: "Asynchronous JavaScript"
+description: "Learn how to write asynchronous JavaScript using Async/Await"
+duration: "15 minutes"
+isNew: false
+date: 2021-11-14
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/basic-authentication.md b/src/videos/basic-authentication.md
new file mode 100644
index 000000000..223dbc84c
--- /dev/null
+++ b/src/videos/basic-authentication.md
@@ -0,0 +1,19 @@
+---
+title: "Basic Authentication"
+description: "Learn everything you need to know about basic authentication"
+duration: "5 minutes"
+isNew: true
+date: 2022-10-01
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/basics-of-authentication.md b/src/videos/basics-of-authentication.md
new file mode 100644
index 000000000..147123857
--- /dev/null
+++ b/src/videos/basics-of-authentication.md
@@ -0,0 +1,19 @@
+---
+title: "Basics of Authentication"
+description: "Learn everything you need to know about authentication with this Authentication Series"
+duration: "5 minutes"
+isNew: true
+date: 2022-09-21
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/big-o-notation.md b/src/videos/big-o-notation.md
new file mode 100644
index 000000000..a46dcd004
--- /dev/null
+++ b/src/videos/big-o-notation.md
@@ -0,0 +1,19 @@
+---
+title: "Big O Notation"
+description: "Learn what the Big-O notation is and how to calculate the time complexity of an algorithm."
+duration: "8 minutes"
+isNew: false
+date: 2021-10-25
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/content-delivery-networks.md b/src/videos/content-delivery-networks.md
new file mode 100644
index 000000000..ebe08bbbe
--- /dev/null
+++ b/src/videos/content-delivery-networks.md
@@ -0,0 +1,19 @@
+---
+title: "Content Delivery Networks"
+description: "Learn what the CDNs are and the difference between push CDN vs pull CDN."
+duration: "4 minutes"
+isNew: false
+date: 2020-09-26
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/dns-explained.md b/src/videos/dns-explained.md
new file mode 100644
index 000000000..d0ab73972
--- /dev/null
+++ b/src/videos/dns-explained.md
@@ -0,0 +1,19 @@
+---
+title: "DNS and how does it work?"
+description: "Learn what the DNS is and how a website is found on the internet."
+duration: "5 minutes"
+isNew: false
+date: 2020-08-17
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/dns-records.md b/src/videos/dns-records.md
new file mode 100644
index 000000000..8fe683854
--- /dev/null
+++ b/src/videos/dns-records.md
@@ -0,0 +1,19 @@
+---
+title: "DNS Records"
+description: "Learn what the DNS is and how a website is found on the internet."
+duration: "6 minutes"
+isNew: false
+date: 2020-08-31
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/floating-point-arithmetic.md b/src/videos/floating-point-arithmetic.md
new file mode 100644
index 000000000..78f544c57
--- /dev/null
+++ b/src/videos/floating-point-arithmetic.md
@@ -0,0 +1,19 @@
+---
+title: "Floating Point Arithmetic"
+description: "Learn how ow the arithmetic operations work on floating-point numbers and why the results might be different from what you may expect."
+duration: "4 minutes"
+isNew: false
+date: 2021-10-10
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/freeze-and-seal-objects-in-javascript.md b/src/videos/freeze-and-seal-objects-in-javascript.md
new file mode 100644
index 000000000..bda66792e
--- /dev/null
+++ b/src/videos/freeze-and-seal-objects-in-javascript.md
@@ -0,0 +1,19 @@
+---
+title: "Freeze and Seal in JavaScript"
+description: "Learn what is object freeze and seal in JavaScript and how to use them"
+duration: "6 minutes"
+isNew: false
+date: 2020-10-16
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/graph-data-structure.md b/src/videos/graph-data-structure.md
new file mode 100644
index 000000000..963bde862
--- /dev/null
+++ b/src/videos/graph-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Graph Data Structure"
+description: "Learn everything you need to know about the graph data structure"
+duration: "13 minutes"
+isNew: false
+date: 2022-09-08
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/hash-table-data-structure.md b/src/videos/hash-table-data-structure.md
new file mode 100644
index 000000000..c6c2f61e7
--- /dev/null
+++ b/src/videos/hash-table-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Hash Table Data Structure"
+description: "Learn everything you need to know about the hash table data structure"
+duration: "8 minutes"
+isNew: false
+date: 2022-02-21
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/heap-data-structure.md b/src/videos/heap-data-structure.md
new file mode 100644
index 000000000..5e5a4cb63
--- /dev/null
+++ b/src/videos/heap-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Heap Data Structure"
+description: "Learn everything you need to know about the heap data structure"
+duration: "11 minutes"
+isNew: false
+date: 2022-08-24
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/how-to-use-css-variables.md b/src/videos/how-to-use-css-variables.md
new file mode 100644
index 000000000..778804ae7
--- /dev/null
+++ b/src/videos/how-to-use-css-variables.md
@@ -0,0 +1,19 @@
+---
+title: "How to use CSS Variables?"
+description: "Learn how to write scalable CSS using CSS Variables."
+duration: "5 minutes"
+isNew: false
+date: 2020-07-03
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/how-to-use-github-actions.md b/src/videos/how-to-use-github-actions.md
new file mode 100644
index 000000000..b99279e2b
--- /dev/null
+++ b/src/videos/how-to-use-github-actions.md
@@ -0,0 +1,19 @@
+---
+title: "Automate with GitHub Actions"
+description: "Learn how to implement CI/CD with GitHub Actions"
+duration: "6 minutes"
+isNew: false
+date: 2020-07-13
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/javascript-fetch-api.md b/src/videos/javascript-fetch-api.md
new file mode 100644
index 000000000..854807f4e
--- /dev/null
+++ b/src/videos/javascript-fetch-api.md
@@ -0,0 +1,19 @@
+---
+title: "JavaScript Fetch API"
+description: "Learn how to use JavaScript's Fetch API to interact with remote API."
+duration: "3 minutes"
+isNew: false
+date: 2020-08-02
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/linked-list-data-structure.md b/src/videos/linked-list-data-structure.md
new file mode 100644
index 000000000..4baa81cdb
--- /dev/null
+++ b/src/videos/linked-list-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Linked List Data Structure"
+description: "Learn everything you need to know about linked list data structure"
+duration: "11 minutes"
+isNew: false
+date: 2022-01-31
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/load-balancers-101.md b/src/videos/load-balancers-101.md
new file mode 100644
index 000000000..94b7d977e
--- /dev/null
+++ b/src/videos/load-balancers-101.md
@@ -0,0 +1,19 @@
+---
+title: "Load Balancers 101"
+description: "Learn the basics of load balancers, types and different algorithms."
+duration: "9 minutes"
+isNew: false
+date: 2020-09-18
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/osi-model.md b/src/videos/osi-model.md
new file mode 100644
index 000000000..a4a8b3e6f
--- /dev/null
+++ b/src/videos/osi-model.md
@@ -0,0 +1,19 @@
+---
+title: "OSI Model Explained"
+description: "Learn what is OSI Model and the different layers involved."
+duration: "7 minutes"
+isNew: false
+date: 2020-10-24
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/practical-intro-to-react.md b/src/videos/practical-intro-to-react.md
new file mode 100644
index 000000000..edec7a9fa
--- /dev/null
+++ b/src/videos/practical-intro-to-react.md
@@ -0,0 +1,42 @@
+---
+title: "Practical Introduction to React"
+description: "Learn how to create a React Application with practical example."
+duration: "40 minutes"
+isNew: false
+date: 2020-07-09
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+In this short series of lessons, we are going to create a react app from scratch. We are mainly going to use React and Chakra UI and see how we can build an application that fetches the trending projects from GitHub's API and shows you in the form of listing.
+
+If you want to get an idea of what we are going to be building have a look at [GitHunt](https://kamranahmed.info/githunt). Also the complete source code can be found at [@kamranahmedse/githunt](https://github.com/kamranahmedse/githunt)
+
+## Intro and Basic Setup
+The video below gives you the basic introduction about the project and explains what we are going to build.
+
+
+
+## Building the Interface
+In this second lesson we are going to create all the required components and the UI using Chakra UI and in the next lesson of this series we are going to start adding interactivity to our application.
+
+
+
+## Building the View Switcher
+In this lesson we start adding interactivity to the interface. We will be building the view switcher where you can switch between the "Grid View" and the "List View" and in the next and last lesson of the series, we are going to integrate GitHub API and show the repositories.
+
+
+
+## Fetching Remote Data
+
+Below is the final lesson where we complete the application by integrating the GitHub API to make the data dynamic.
+
+
diff --git a/src/videos/promises-in-javascript.md b/src/videos/promises-in-javascript.md
new file mode 100644
index 000000000..686819982
--- /dev/null
+++ b/src/videos/promises-in-javascript.md
@@ -0,0 +1,19 @@
+---
+title: "All about Promises in JavaScript"
+description: "Learn how to write asynchronous code in JavaScript using promises."
+duration: "8 minutes"
+isNew: false
+date: 2020-07-20
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/queue-data-structure.md b/src/videos/queue-data-structure.md
new file mode 100644
index 000000000..edd622873
--- /dev/null
+++ b/src/videos/queue-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Queue Data Structure"
+description: "Learn everything you need to know about the queue data structure"
+duration: "4 minutes"
+isNew: false
+date: 2022-02-14
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/random-number-generators.md b/src/videos/random-number-generators.md
new file mode 100644
index 000000000..e1e6e85f8
--- /dev/null
+++ b/src/videos/random-number-generators.md
@@ -0,0 +1,19 @@
+---
+title: "Random Number Generators"
+description: "How do random number generators work?"
+duration: "8 minutes"
+isNew: false
+date: 2021-11-03
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/scaling-the-unscalable.md b/src/videos/scaling-the-unscalable.md
new file mode 100644
index 000000000..f3c4fc6c4
--- /dev/null
+++ b/src/videos/scaling-the-unscalable.md
@@ -0,0 +1,19 @@
+---
+title: "Scaling the Unscalable"
+description: "Learn the basics of System Design and understand how to build a scalable application."
+duration: "10 minutes"
+isNew: false
+date: 2020-07-26
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/session-based-authentication.md b/src/videos/session-based-authentication.md
new file mode 100644
index 000000000..15d909308
--- /dev/null
+++ b/src/videos/session-based-authentication.md
@@ -0,0 +1,19 @@
+---
+title: "Session Based Authentication"
+description: "Learn everything you need to know about session authentication"
+duration: "2 minutes"
+isNew: true
+date: 2022-11-02
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/ssh-ssl-tls.md b/src/videos/ssh-ssl-tls.md
new file mode 100644
index 000000000..855ea42c1
--- /dev/null
+++ b/src/videos/ssh-ssl-tls.md
@@ -0,0 +1,19 @@
+---
+title: "SSH vs TLS vs SSL"
+description: "Learn the difference between SSH, TLS and SSL"
+duration: "3 minutes"
+isNew: false
+date: 2021-11-25
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/stack-data-structure.md b/src/videos/stack-data-structure.md
new file mode 100644
index 000000000..aae5ab1d6
--- /dev/null
+++ b/src/videos/stack-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Stack Data Structure"
+description: "Learn everything you need to know about the stack data structure"
+duration: "5 minutes"
+isNew: false
+date: 2022-02-07
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/system-design-101.md b/src/videos/system-design-101.md
new file mode 100644
index 000000000..c8b9ace0c
--- /dev/null
+++ b/src/videos/system-design-101.md
@@ -0,0 +1,19 @@
+---
+title: "System Design 101"
+description: "Learn about all the bits and pieces of system design."
+duration: "7 minutes"
+isNew: false
+date: 2020-08-08
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/tcp-ip-model.md b/src/videos/tcp-ip-model.md
new file mode 100644
index 000000000..ee49df89e
--- /dev/null
+++ b/src/videos/tcp-ip-model.md
@@ -0,0 +1,19 @@
+---
+title: "TCP/IP Model Explained"
+description: "Learn what is TCP/IP Model and the different layers involved."
+duration: "5 minutes"
+isNew: false
+date: 2020-11-06
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/transport-protocols-tcp-vs-udp.md b/src/videos/transport-protocols-tcp-vs-udp.md
new file mode 100644
index 000000000..b0ca0a7bf
--- /dev/null
+++ b/src/videos/transport-protocols-tcp-vs-udp.md
@@ -0,0 +1,19 @@
+---
+title: "Transport Protocols: TCP vs UDP"
+description: "Learn about the Transport Layer of the TCP/IP model and different transport protocols."
+duration: "10 minutes"
+isNew: false
+date: 2020-11-21
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/tree-data-structure.md b/src/videos/tree-data-structure.md
new file mode 100644
index 000000000..5ed5cfe82
--- /dev/null
+++ b/src/videos/tree-data-structure.md
@@ -0,0 +1,19 @@
+---
+title: "Tree Data Structure"
+description: "Learn everything you need to know about the tree data structure"
+duration: "8 minutes"
+isNew: false
+date: 2022-08-11
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/what-are-data-structures.md b/src/videos/what-are-data-structures.md
new file mode 100644
index 000000000..d57dca242
--- /dev/null
+++ b/src/videos/what-are-data-structures.md
@@ -0,0 +1,19 @@
+---
+title: "What are Data Structures?"
+description: "Learn about the different data structures in this illustrated series"
+duration: "1 minute"
+isNew: false
+date: 2021-12-12
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/what-is-cap-theorem.md b/src/videos/what-is-cap-theorem.md
new file mode 100644
index 000000000..6e0eb0938
--- /dev/null
+++ b/src/videos/what-is-cap-theorem.md
@@ -0,0 +1,19 @@
+---
+title: "What is CAP Theorem?"
+description: "An illustrated explanation to CAP theorem with examples and proof."
+duration: "8 minutes"
+isNew: false
+date: 2021-10-05
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/what-is-dependency-injection.md b/src/videos/what-is-dependency-injection.md
new file mode 100644
index 000000000..2e65a2703
--- /dev/null
+++ b/src/videos/what-is-dependency-injection.md
@@ -0,0 +1,19 @@
+---
+title: "What is Dependency Injection?"
+description: "Learn what is dependency injection and how to write better code with the help of it."
+duration: "3 minutes"
+isNew: false
+date: 2020-07-04
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/what-is-dom-shadow-dom-virtual-dom.md b/src/videos/what-is-dom-shadow-dom-virtual-dom.md
new file mode 100644
index 000000000..2b519b67e
--- /dev/null
+++ b/src/videos/what-is-dom-shadow-dom-virtual-dom.md
@@ -0,0 +1,19 @@
+---
+title: "DOM, Shadow DOM, Virtual DOM"
+description: "Learn what is DOM, Shadow DOM and Virtual DOM and how they work."
+duration: "6 minutes"
+isNew: false
+date: 2020-07-20
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
\ No newline at end of file
diff --git a/src/videos/what-is-eventual-consistency.md b/src/videos/what-is-eventual-consistency.md
new file mode 100644
index 000000000..6c68cbb70
--- /dev/null
+++ b/src/videos/what-is-eventual-consistency.md
@@ -0,0 +1,19 @@
+---
+title: "What is Eventual Consistency?"
+description: "Learn about the different consistency models in distributed systems"
+duration: "5 minutes"
+isNew: false
+date: 2021-11-30
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+
diff --git a/src/videos/yaml-in-depth.md b/src/videos/yaml-in-depth.md
new file mode 100644
index 000000000..1be654d24
--- /dev/null
+++ b/src/videos/yaml-in-depth.md
@@ -0,0 +1,19 @@
+---
+title: "YAML in Depth"
+description: "Everything you need to know about YAML"
+duration: "8 minutes"
+isNew: false
+date: 2021-10-18
+author:
+ name: "Kamran Ahmed"
+ url: "https://twitter.com/kamranahmedse"
+ imageUrl: "/authors/kamranahmedse.jpeg"
+sitemap:
+ priority: 0.7
+ changefreq: "weekly"
+tags:
+ - "video"
+ - "video-sitemap"
+---
+
+