diff --git a/src/app/views/layouts/default.php b/src/app/views/layouts/default.php
index 7b701a64883089cf8321fd5fcca8b4b20cc427c0..350b628ee79a69205328f94fa7397a8be02bc34e 100644
--- a/src/app/views/layouts/default.php
+++ b/src/app/views/layouts/default.php
@@ -5,11 +5,16 @@
   <meta charset="UTF-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <meta name="description" content="Discover a world of captivating stories and insightful conversations on Podcastify. Explore a diverse range of podcasts, from engaging interviews to gripping narratives. Dive into a seamless listening experience and stay connected to your favorite topics. Start your podcast journey with Podcastify today.">
-  <link rel="stylesheet" href="<?= CSS_DIR ?>/global.css">
-  <link rel="stylesheet" href="<?= CSS_DIR ?>/default.css">
-  <link rel="stylesheet" href="<?= CSS_DIR ?>/episode/episode_card.css">
-  <link rel="stylesheet" href="<?= CSS_DIR ?>/episode/episode_detail.css">
-  <link rel="stylesheet" href="<?= CSS_DIR ?>/episode/add_episode.css">
+  <link rel="stylesheet" href="<?= CSS_DIR ?>global.css">
+  <link rel="stylesheet" href="<?= CSS_DIR ?>default.css">
+  <link rel="stylesheet" href="<?= CSS_DIR ?>episode/episode_card.css">
+  <link rel="stylesheet" href="<?= CSS_DIR ?>episode/episode_detail.css">
+  <link rel="stylesheet" href="<?= CSS_DIR ?>episode/add_episode.css">
+  <link rel="apple-touce-icon" sizes="180x180" href="<?= ICONS_WEB_DIR ?>apple-touch-icon.png">
+  <link rel="icon" type="image/png" sizes="32x32" href="<?= ICONS_WEB_DIR ?>favicon-32x32.png">
+  <link rel="icon" type="image/png" sizes="16x16" href="<?= ICONS_WEB_DIR ?>favicon-16x16.png">
+  <link rel="icon" type="image/x-icon" href="<?= ICONS_WEB_DIR ?>favicon.ico">
+  <link rel="manifest" href="<?= ICONS_WEB_DIR ?>manifest.json">
 </head>
 
 <body>
@@ -42,4 +47,4 @@ echoNotification();
 <script src="<?= JS_DIR ?>default.js"></script>
 <script src="<?= JS_DIR ?>topbar.js"></script>
 
-</html>
+</html>
\ No newline at end of file
diff --git a/src/app/views/layouts/error.php b/src/app/views/layouts/error.php
index ddfc4e03f86f6adc332ebb98669c0ba0916b8121..6a70a8580551be747b0f1eddd963386750a0aa68 100644
--- a/src/app/views/layouts/error.php
+++ b/src/app/views/layouts/error.php
@@ -7,6 +7,11 @@
   <meta name="description" content="Discover a world of captivating stories and insightful conversations on Podcastify. Explore a diverse range of podcasts, from engaging interviews to gripping narratives. Dive into a seamless listening experience and stay connected to your favorite topics. Start your podcast journey with Podcastify today.">
   <link rel="stylesheet" href="<?= CSS_DIR ?>global.css">
   <link rel="stylesheet" href="<?= CSS_DIR ?>error.css">
+  <link rel="apple-touce-icon" sizes="180x180" href="<?= ICONS_WEB_DIR ?>apple-touch-icon.png">
+  <link rel="icon" type="image/png" sizes="32x32" href="<?= ICONS_WEB_DIR ?>favicon-32x32.png">
+  <link rel="icon" type="image/png" sizes="16x16" href="<?= ICONS_WEB_DIR ?>favicon-16x16.png">
+  <link rel="icon" type="image/x-icon" href="<?= ICONS_WEB_DIR ?>favicon.ico">
+  <link rel="manifest" href="<?= ICONS_WEB_DIR ?>manifest.json">
   <title>Podcastify | Page not found</title>
 </head>
 
@@ -18,4 +23,4 @@
   </div>
 </body>
 
-</html>
+</html>
\ No newline at end of file
diff --git a/src/app/views/layouts/guest.php b/src/app/views/layouts/guest.php
index 1fbcb7f1c50a5854c6981c6da25b324e5d347922..737b73507d7d5bc69c165001814307b84130e5c0 100644
--- a/src/app/views/layouts/guest.php
+++ b/src/app/views/layouts/guest.php
@@ -7,6 +7,11 @@
   <meta name="description" content="Discover a world of captivating stories and insightful conversations on Podcastify. Explore a diverse range of podcasts, from engaging interviews to gripping narratives. Dive into a seamless listening experience and stay connected to your favorite topics. Start your podcast journey with Podcastify today.">
   <link rel="stylesheet" href="<?= CSS_DIR ?>global.css">
   <link rel="stylesheet" href="<?= CSS_DIR ?>guest.css">
+  <link rel="apple-touce-icon" sizes="180x180" href="<?= ICONS_WEB_DIR ?>apple-touch-icon.png">
+  <link rel="icon" type="image/png" sizes="32x32" href="<?= ICONS_WEB_DIR ?>favicon-32x32.png">
+  <link rel="icon" type="image/png" sizes="16x16" href="<?= ICONS_WEB_DIR ?>favicon-16x16.png">
+  <link rel="icon" type="image/x-icon" href="<?= ICONS_WEB_DIR ?>favicon.ico">
+  <link rel="manifest" href="<?= ICONS_WEB_DIR ?>manifest.json">
 </head>
 
 <body>
@@ -37,4 +42,4 @@
 
 <script src="<?= JS_DIR ?>components/notification.js"></script>
 
-</html>
+</html>
\ No newline at end of file
diff --git a/src/config/config.php b/src/config/config.php
index 514b09f7fae44d363d78bd953c34b22493dc3dbe..dc81e183988ed2b6a6568a9034d6d540b39ed899 100644
--- a/src/config/config.php
+++ b/src/config/config.php
@@ -23,6 +23,7 @@ define("IMAGES_DIR", "/src/public/assets/images/");
 define("FONTS_DIR", "/src/public/assets/fonts/");
 define("CSS_DIR", "/src/public/css/");
 define("JS_DIR", "/src/public/js/");
+define("ICONS_WEB_DIR", "/src/public/icon/");
 
 // File
 define('MAX_SIZE', 8 * 1024 * 1024); // 8 mb
diff --git a/src/public/icon/android-chrome-192x192.png b/src/public/icon/android-chrome-192x192.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f94a34699c2e499ca94b5fdf953bfa9c35e77df
Binary files /dev/null and b/src/public/icon/android-chrome-192x192.png differ
diff --git a/src/public/icon/android-chrome-512x512.png b/src/public/icon/android-chrome-512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ca2fc234cfe7fd2569e22c48ad188eda4c1afa7
Binary files /dev/null and b/src/public/icon/android-chrome-512x512.png differ
diff --git a/src/public/icon/apple-touch-icon.png b/src/public/icon/apple-touch-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..6db5905cdf03fc711d4aafa0165a9d3d3833d323
Binary files /dev/null and b/src/public/icon/apple-touch-icon.png differ
diff --git a/src/public/icon/favicon-16x16.png b/src/public/icon/favicon-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7bcdfe886b50b90440d4283803e95704fcf01e0
Binary files /dev/null and b/src/public/icon/favicon-16x16.png differ
diff --git a/src/public/icon/favicon-32x32.png b/src/public/icon/favicon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..7bbd5828f15e9956bec83fa1ee7b86ad75399bd3
Binary files /dev/null and b/src/public/icon/favicon-32x32.png differ
diff --git a/src/public/icon/favicon.ico b/src/public/icon/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..88a625eb929f5b335ef6478cabe1c9469d01fd2c
Binary files /dev/null and b/src/public/icon/favicon.ico differ
diff --git a/src/public/icon/manifest.json b/src/public/icon/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..8f73ad97a11b9ca3be8c09ffadb6ce0014c634a5
--- /dev/null
+++ b/src/public/icon/manifest.json
@@ -0,0 +1,19 @@
+{
+  "name": "",
+  "short_name": "",
+  "icons": [
+    {
+      "src": "/src/public/icon/android-chrome-192x192.png",
+      "sizes": "192x192",
+      "type": "image/png"
+    },
+    {
+      "src": "/src/public/icon/android-chrome-512x512.png",
+      "sizes": "512x512",
+      "type": "image/png"
+    }
+  ],
+  "theme_color": "#000000",
+  "background_color": "#000000",
+  "display": "standalone"
+}
diff --git a/src/public/js/components/notification.js b/src/public/js/components/notification.js
index 35cd63602d35eac5b34c18495672cbb046e4c1d6..7f1823ccc62d39d824cb6f6b316c0da55b0a1767 100644
--- a/src/public/js/components/notification.js
+++ b/src/public/js/components/notification.js
@@ -1,14 +1,11 @@
 const showNotificationSuccess = (responseMessage) => {
   const notification = document.querySelector("#notification");
+  notification.classList.remove("danger");
   notification.classList.add("success");
 
   const notificationText = document.querySelector("#notification-text");
   notificationText.innerHTML = responseMessage;
 
-  // Set to local storage
-  localStorage.setItem("notificationText", responseMessage);
-  localStorage.setItem("notificationStatus", "success");
-
   setTimeout(() => {
     hideNotification(notification);
   }, 4000);
@@ -16,6 +13,7 @@ const showNotificationSuccess = (responseMessage) => {
 
 const showNotificationDanger = (responseMessage) => {
   const notification = document.querySelector("#notification");
+  notification.classList.remove("success");
   notification.classList.add("danger");
 
   const notificationText = document.querySelector("#notification-text");