Skip to Content
Overview

Introduction to OpenDSA

See algorithms come to life

OpenDSA is an interactive visualization platform that helps you understand how algorithms and data structures work through step-by-step animations. Whether you’re:

  • Learning algorithms for the first time
  • Teaching computer science concepts
  • Preparing for technical interviews
  • Building educational content

OpenDSA makes complex algorithms visual and intuitive.

Features

  • Interactive Visualizations - Watch algorithms execute step-by-step with full control
  • Multiple Categories - Sorting, searching, graphs, trees, and more
  • Code Highlighting - See which line of code corresponds to each step
  • Speed Control - Slow down or speed up animations
  • Shareable URLs - Share specific visualization states with others
  • Dark/Light Mode - Easy on the eyes, day or night
  • Keyboard Shortcuts - Power-user friendly controls
  • Open Source - Free forever, community-driven

Visualizers

Sorting Algorithms

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Quick Sort
  • Merge Sort
  • More coming soon…

Searching Algorithms

  • Linear Search
  • Binary Search
  • More coming soon…

Data Structures

  • Arrays
  • Linked Lists, Trees, Graphs coming soon…

Quick Start

Try Online

Visit app.opendsa.dev  to start visualizing algorithms immediately - no installation required.

Run Locally

# Clone the repository git clone https://github.com/soloshun/opendsa.git cd opendsa # Install dependencies pnpm install # Start development server pnpm dev

Open http://localhost:3000  in your browser.

Tech Stack

LayerTechnology
FrameworkNext.js 14  (App Router)
LanguageTypeScript 
StylingTailwindCSS  + shadcn/ui 
AnimationsFramer Motion  + D3.js 
StateZustand 
MonorepoTurborepo 
Package Managerpnpm 
DeploymentVercel 

Contributing

We welcome contributions from everyone! Whether it’s:

  • Adding new algorithm visualizers
  • Fixing bugs
  • Improving documentation
  • Suggesting features

See our Contributing Guide to get started.

Community



Made with ❤️ by the Solo Shun for the OpenDSA community

Last updated on