{"id":41922038,"url":"https://github.com/soloshun/opendsa","last_synced_at":"2026-01-30T21:00:47.896Z","repository":{"id":334381457,"uuid":"1141134463","full_name":"soloshun/opendsa","owner":"soloshun","description":"An open-source, interactive platform for visualizing data structures and algorithms. Built for learners, educators, and developers.","archived":false,"fork":false,"pushed_at":"2026-01-28T18:29:46.000Z","size":2284,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"prod","last_synced_at":"2026-01-29T07:44:36.694Z","etag":null,"topics":["alogrithm-visualizer","canvas-api","d3js","data-structures-and-algorithms","dsa-visualizer","framer-motion","github-actions","monaco-editor","nextjs","nextra","playwright","pnpm","shadcn-ui","tailwindcss","turborepo","typescript","vercel","vitest","zustand"],"latest_commit_sha":null,"homepage":"https://opendsa.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soloshun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-24T10:07:39.000Z","updated_at":"2026-01-28T18:02:19.000Z","dependencies_parsed_at":"2026-01-28T19:00:36.375Z","dependency_job_id":null,"html_url":"https://github.com/soloshun/opendsa","commit_stats":null,"previous_names":["soloshun/openalgo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/soloshun/opendsa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloshun%2Fopendsa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloshun%2Fopendsa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloshun%2Fopendsa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloshun%2Fopendsa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soloshun","download_url":"https://codeload.github.com/soloshun/opendsa/tar.gz/refs/heads/prod","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloshun%2Fopendsa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28883963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T19:55:09.949Z","status":"ssl_error","status_checked_at":"2026-01-29T19:55:08.490Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alogrithm-visualizer","canvas-api","d3js","data-structures-and-algorithms","dsa-visualizer","framer-motion","github-actions","monaco-editor","nextjs","nextra","playwright","pnpm","shadcn-ui","tailwindcss","turborepo","typescript","vercel","vitest","zustand"],"created_at":"2026-01-25T16:42:37.798Z","updated_at":"2026-01-29T20:01:36.137Z","avatar_url":"https://github.com/soloshun.png","language":"TypeScript","funding_links":["https://github.com/sponsors/soloshun"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://placehold.co/120x60?text=oDSA\" alt=\"OpenDSA Logo\" width=\"90\" height=\"60\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eOpenDSA\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eSee algorithms come to life\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  An open-source, interactive platform for visualizing data structures and algorithms.\n  \u003cbr /\u003e\n  Built for learners, educators, and developers.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://opendsa.dev.vercel.app\"\u003eWebsite⛓️‍💥❌\u003c/a\u003e\n  ·\n  \u003ca href=\"https://app.opendsa.dev.vercel.app\"\u003eLaunch App⛓️‍💥❌\u003c/a\u003e\n  ·\n  \u003ca href=\"https://docs.opendsa.dev.vercel.app\"\u003eDocumentation⛓️‍💥❌\u003c/a\u003e\n  ·\n  \u003ca href=\"https://discord.gg/opendsa\"\u003eDiscord⛓️‍💥❌\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/soloshun/opendsa/actions/workflows/ci.yml\"\u003e\n    \u003cimg src=\"https://github.com/soloshun/opendsa/actions/workflows/ci.yml/badge.svg\" alt=\"CI Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/soloshun/opendsa/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/opendsa\"\u003e\n    \u003cimg src=\"https://img.shields.io/discord/000000000000000000?color=7289da\u0026label=discord\" alt=\"Discord\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## What is OpenDSA?\n\nOpenDSA is an interactive visualization platform that helps you understand how algorithms and data structures work through step-by-step animations. Whether you're:\n\n- **Learning** algorithms for the first time\n- **Teaching** computer science concepts\n- **Preparing** for technical interviews\n- **Building** educational content\n\nOpenDSA makes complex algorithms visual and intuitive.\n\n## Features\n\n- **Interactive Visualizations** - Watch algorithms execute step-by-step with full control\n- **Multiple Categories** - Sorting, searching, graphs, trees, and more\n- **Code Highlighting** - See which line of code corresponds to each step\n- **Speed Control** - Slow down or speed up animations\n- **Shareable URLs** - Share specific visualization states with others\n- **Dark/Light Mode** - Easy on the eyes, day or night\n- **Keyboard Shortcuts** - Power-user friendly controls\n- **Open Source** - Free forever, community-driven\n\n## Visualizers\n\n### Sorting Algorithms\n- Bubble Sort\n- Selection Sort\n- Insertion Sort\n- Quick Sort\n- Merge Sort\n- *More coming soon...*\n\n### Searching Algorithms\n- Linear Search\n- Binary Search\n- *More coming soon...*\n\n### Data Structures\n- Arrays\n- *Linked Lists, Trees, Graphs coming soon...*\n\n## Quick Start\n\n### Try Online\n\nVisit [app.opendsa.dev](https://app.opendsa.dev.vercel.app) to start visualizing algorithms immediately - no installation required.\n\n### Run Locally\n\n```bash\n# Clone the repository\ngit clone https://github.com/soloshun/opendsa.git\ncd opendsa\n\n# Install dependencies\npnpm install\n\n# Start development server\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n\n## Project Structure\n\nOpenDSA is a monorepo built with [Turborepo](https://turbo.build/):\n\n```\nopendsa/\n├── apps/\n│   ├── app/          # Main visualizer application\n│   ├── web/          # Marketing website\n│   └── docs/         # Documentation site\n│\n├── packages/\n│   ├── ui/           # Shared UI components\n│   ├── algorithms/   # Algorithm implementations\n│   ├── visualizers/  # Visualization components\n│   ├── types/        # Shared TypeScript types\n│   └── utils/        # Shared utilities\n│\n└── ...config files\n```\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|------------|\n| Framework | [Next.js 14](https://nextjs.org/) (App Router) |\n| Language | [TypeScript](https://www.typescriptlang.org/) |\n| Styling | [TailwindCSS](https://tailwindcss.com/) + [shadcn/ui](https://ui.shadcn.com/) |\n| Animations | [Framer Motion](https://www.framer.com/motion/) + [D3.js](https://d3js.org/) |\n| State | [Zustand](https://zustand-demo.pmnd.rs/) |\n| Monorepo | [Turborepo](https://turbo.build/) |\n| Package Manager | [pnpm](https://pnpm.io/) |\n| Deployment | [Vercel](https://vercel.com/) |\n\n## Contributing\n\nWe welcome contributions from everyone! Whether it's:\n\n- Adding new algorithm visualizers\n- Fixing bugs\n- Improving documentation\n- Suggesting features\n\nSee our [Contributing Guide](CONTRIBUTING.md) to get started.\n\n### Adding a New Visualizer\n\nWant to add a new algorithm? Follow our step-by-step guide in the [Contributing Guide](CONTRIBUTING.md#adding-a-new-visualizer).\n\n## Development\n\n### Prerequisites\n\n- Node.js 18.17+\n- pnpm 8+\n\n### Commands\n\n```bash\n# Install dependencies\npnpm install\n\n# Start all apps in development mode\npnpm dev\n\n# Build all packages and apps\npnpm build\n\n# Run tests\npnpm test\n\n# Lint code\npnpm lint\n\n# Type check\npnpm type-check\n```\n\n### Running Specific Apps\n\n```bash\n# Run only the main app\npnpm dev --filter=@opendsa/app\n\n# Run only the website\npnpm dev --filter=@opendsa/web\n\n# Run only the docs\npnpm dev --filter=@opendsa/docs\n```\n\n## Roadmap\n\nSee our [Roadmap](https://github.com/soloshun/opendsa/blob/main/ROADMAP.md) for planned features.\n\n**Upcoming:**\n- Graph algorithms (BFS, DFS, Dijkstra)\n- Tree visualizers (BST, traversals)\n- Learning paths and tutorials\n- Challenge mode\n- More sorting and searching algorithms\n\n## Community\n\n- **Discord**: [Join our community ⛓️‍💥❌](https://discord.gg/opendsa)\n- **Twitter**: [@self.solo_shun⛓️‍💥❌](https://twitter.com/opendsa)\n- **GitHub Discussions**: [Ask questions](https://github.com/soloshun/opendsa/discussions)\n\n## Support\n\nIf you find OpenDSA useful, consider:\n\n- Giving it a star on GitHub\n- Sharing it with others\n- Contributing to the project\n- [Sponsoring⛓️‍💥❌](https://github.com/sponsors/soloshun) the development\n\n## License\n\nOpenDSA is [MIT licensed](LICENSE).\n\n\n\u003cp align=\"center\"\u003e\n  Made with love by the Solo Shun for the OpenDSA community\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/soloshun/opendsa/graphs/contributors\"\u003e\n    \u003cimg src=\"https://contrib.rocks/image?repo=soloshun/opendsa\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoloshun%2Fopendsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoloshun%2Fopendsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoloshun%2Fopendsa/lists"}