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.