Skip to content

Sagar Kunwar

Menu
  • Home
  • YouTube
  • Blog
  • Contact
  • Privacy Policy
Menu

Building a Simple Bookmarking App

Posted on June 25, 2025July 1, 2025 by Sagar Kunwar

Hey there, budding developers! ๐ŸŒŸ Today, we’ll embark on a journey to create a simple bookmarking app. This is a perfect project to get your feet wet in web development while building something practical. Ready to dive in? Let’s go!

Why Build a Bookmarking App?

Before we jump into coding, let’s talk about why such an app is useful. Bookmarking apps help save and manage URLs (links to your favorite websites) in an organized way. You can access them anytime without cluttering your browser bookmarks. Plus, you’ll learn core skills like working with HTML, CSS, and JavaScriptโ€”all of which are essential web development skills.

What We’ll Build

We’ll create a minimalistic web app where users can:

  • Add a new bookmark with a name and URL.
  • View all saved bookmarks.
  • Delete bookmarks they no longer need.

Step 1: Setting Up Your Project

First, let’s create the basic structure for our project. You’ll need three files:

  1. index.html โ€“ The HTML structure.
  2. styles.css โ€“ The styles to make it look nice.
  3. app.js โ€“ The brains of our app, where all JavaScript will live.

HTML Structure

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Bookmarking App</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="container">
    <h1>Bookmarking App</h1>
    <form id="bookmark-form">
      <input id="bookmark-name" type="text" placeholder="Bookmark Name" required />
      <input id="bookmark-url" type="url" placeholder="Bookmark URL" required />
      <button type="submit">Add Bookmark</button>
    </form>
    <ul id="bookmark-list"></ul>
  </div>

  <script src="app.js"></script>
</body>
</html>

Styling with CSS

body {
  font-family: Arial, sans-serif;
  background-color: #f3f3f3;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
}

.container {
  background-color: white;
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

h1 {
  color: #333;
}

form {
  display: flex;
  flex-direction: column;
}

input {
  margin-bottom: 10px;
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

button {
  padding: 10px;
  background-color: #5cb85c;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

button:hover {
  background-color: #4cae4c;
}

Step 2: Bringing Functionality with JavaScript

document.getElementById('bookmark-form').addEventListener('submit', function(event) {
  event.preventDefault();

  // Get values
  const name = document.getElementById('bookmark-name').value;
  const url = document.getElementById('bookmark-url').value;

  // Validate inputs
  if (!name || !url) {
    alert('Please provide both name and URL!');
    return;
  }

  // Create bookmark object
  const bookmark = {
    name: name,
    url: url
  };

  // Fetch bookmarks from localStorage
  let bookmarks = JSON.parse(localStorage.getItem('bookmarks')) || [];

  // Add new bookmark to array
  bookmarks.push(bookmark);

  // Save back to localStorage
  localStorage.setItem('bookmarks', JSON.stringify(bookmarks));

  // Clear form
  document.getElementById('bookmark-form').reset();

  // Fetch bookmarks again to display
  fetchBookmarks();
});

function fetchBookmarks() {
  // Get bookmarks from localStorage
  const bookmarks = JSON.parse(localStorage.getItem('bookmarks')) || [];

  // Get output element
  const bookmarkList = document.getElementById('bookmark-list');

  // Clear existing list
  bookmarkList.innerHTML = '';

  // Add each bookmark to the list
  bookmarks.forEach(bookmark => {
    bookmarkList.innerHTML += `
      <li>
        <a href="${bookmark.url}" target="_blank" rel="noopener">${bookmark.name}</a>
        <button onclick="deleteBookmark('${bookmark.url}')">Delete</button>
      </li>
    `;
  });
}

function deleteBookmark(url) {
  // Fetch bookmarks from localStorage
  const bookmarks = JSON.parse(localStorage.getItem('bookmarks')) || [];

  // Filter out the bookmark to delete
  const updatedBookmarks = bookmarks.filter(bookmark => bookmark.url !== url);

  // Save back to localStorage
  localStorage.setItem('bookmarks', JSON.stringify(updatedBookmarks));

  // Fetch bookmarks again to update list
  fetchBookmarks();
}

// Fetch bookmarks on page load
fetchBookmarks();

Conclusion and Practice Ideas

Congratulations! ๐ŸŽ‰ You’ve just built a simple bookmarking app. You’ve learned how to:

  • Structure an HTML document
  • Style your app with CSS
  • Use JavaScript to manage data in the browser’s local storage

Practice Ideas

  1. Add Categories: Let users categorize their bookmarks (e.g., Work, Personal).
  2. Edit Feature: Implement the ability to edit bookmarks.
  3. Enhance UI/UX: Add animations or use a framework like Bootstrap to beautify the interface.

Feel free to leave comments if you have questions or need further clarification. Keep experimenting and have fun building! ๐Ÿ˜Š

Happy Coding!

(Visited 9 times, 1 visits today)

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Guide to Responsive Images with `srcset`
  • # Creating and Validating Forms in React with Formik
  • Setting Up Multiple Pages with React Router DOM v6
  • How to Use VS Code Like a Pro: Extensions and Shortcuts

Categories

  • Blog
  • Javascript
  • PHP
  • Support
  • Uncategorized
  • Web Hosting
June 2025
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930  
« May   Jul »
© 2025 Sagar Kunwar | Powered by Superbs Personal Blog theme