Create a Simple Todo App with JavaScript in Minutes

Create a Simple Todo App with JavaScript in Minutes

  1. Include actual code for index.html, styles.css, and script.js

  2. Add explanations for each section of the code

  3. Provide a step-by-step guide on how to set up and run the application

  4. Include screenshots or a live demo to demonstrate the app's functionality

  5. Add a conclusion or next steps for readers interested in learning more or enhancing the app further.


<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <title>ToDo App</title>
    <div class="container">
        <h1>ToDo App</h1>
        <input type="text" id="taskInput" placeholder="Add a new task">
        <button onclick="addTask()">Add Task</button>
        <ul id="taskList"></ul>
    <script src="script.js"></script>


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

.container {
    text-align: center;
    background-color: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);

ul {
    list-style-type: none;
    padding: 0;

li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #ddd;
    padding: 10px 0;

button {
    padding: 10px;
    margin-top: 10px;
    cursor: pointer;
    background-color: #4caf50;
    color: white;
    border: none;
    border-radius: 4px;


// Get references to HTML elements
const taskInput = document.getElementById('taskInput');
const taskList = document.getElementById('taskList');

// Function to add a new task
function addTask() {
    const taskText = taskInput.value.trim();

    if (taskText === '') {
        alert('Please enter a task.');

    // Create a new list item
    const listItem = document.createElement('li');
    listItem.innerHTML = `
        <button onclick="removeTask(this)">Remove</button>

    // Append the new task to the task list

    // Clear the input field
    taskInput.value = '';

// Function to remove a task
function removeTask(button) {
    const listItem = button.parentNode;


  • This is the main HTML file that defines the structure of the webpage.

  • It includes a title, a container with a heading, an input field for adding tasks, a button to add tasks, and an unordered list (<ul>) for displaying the tasks.

  • The script file (script.js) is included at the end of the body.


  • This file contains the styles (CSS) for the HTML elements to make the app visually appealing.

  • It defines the styling for the body, container, list items, and buttons.

  • The styling includes a simple layout, background colors, borders, padding, and margins.


  • This is the JavaScript file that provides the functionality for the to-do app.

JavaScript Explanation:

  1. Get references to HTML elements:

    • taskInput: Represents the input field where the user can enter a new task.

    • taskList: Represents the unordered list where the tasks will be displayed.

  2. addTask function:

    • Retrieves the value from the input field (taskInput).

    • Checks if the input is not empty.

    • Creates a new list item (<li>) and sets its HTML content to include the task text and a "Remove" button.

    • Appends the new list item to the task list (taskList).

    • Clears the input field.

  3. removeTask function:

    • Takes a reference to the button that was clicked.

    • Traverses the DOM to get the parent list item (<li>).

    • Removes the list item from the task list.

Overall Flow:

  1. The user enters a task in the input field and clicks "Add Task."

  2. The addTask function is called:

    • It checks if the input is not empty.

    • Creates a new list item with the task text and a "Remove" button.

    • Appends the list item to the task list.

    • Clears the input field.

  3. The user can see the added tasks in the unordered list.

  4. Each task has a "Remove" button.

  5. Clicking the "Remove" button calls theremoveTask function, which removes the corresponding task from the list.

This creates a simple to-do app with basic functionality. You can build upon this foundation by adding features such as task completion, due dates, or storage using local storage or a backend server.


In conclusion, creating a simple to-do app with JavaScript can be accomplished quickly and easily. This tutorial provides a basic foundation for building more complex and feature-rich applications. As you gain experience, consider enhancing the app by adding more functionality, improving the user interface, and exploring additional JavaScript libraries and frameworks.

Did you find this article valuable?

Support LingarajTechhub All About Programming by becoming a sponsor. Any amount is appreciated!