Todo List

The Challenge

The goal was to build a modern todo application that:

  • Supports adding, completing, and deleting todos
  • Allows filtering by all, active, or completed todos
  • Clears all completed todos at once
  • Persists tasks in local storage
  • Supports light and dark themes with toggle functionality
  • Reorders todos via drag-and-drop
  • Provides a responsive layout and hover states for interactive elements

The Solution

The application was built using React and TypeScript, focusing on predictable state updates and intuitive interactions. Key implementation details:

  • State management with React hooks
  • Drag-and-drop functionality for reordering tasks
  • Local storage integration for task persistence
  • Tailwind CSS for layout, styling, and responsiveness
  • Reusable components for maintainable code
  • Light and dark theme support with toggle
  • Responsive design and hover states for all interactive elements

The Outcome

The final result is a lightweight, responsive, and interactive todo app that performs well and feels intuitive to use. Through this project, I strengthened my understanding of:

  • Managing complex UI state in React
  • Type-safe component and state design with TypeScript
  • Implementing drag-and-drop interactions
  • Persisting client-side data with local storage
  • Theme toggling and responsive design patterns