Skip to content

Finish the project #7

@BenRacicot

Description

@BenRacicot

If you checkout the you

SortableTS: Cutting-Edge Drag & Drop Library - Seeking Contributors

Project Overview

SortableTS is a modern TypeScript library for drag-and-drop interfaces with a focus on developer experience, modern browser implementations, and a clean, maintainable architecture. The foundation has been established, but I'm now focusing on my startup and looking for contributors to continue development.

Current State

  • ✅ Core architecture established across modules: animation, core, dom, utils, cleanup.manager, etc.
  • ✅ Example app successfully imports the compiled package from dist/
  • ✅ Example app includes dedicated sections for all planned features

Development Approach

The recommended workflow is:

  1. Each SortableTS feature should be implemented in its corresponding section of the example app
  2. Develop the feature in the package's TypeScript code in src/
  3. Test functionality in the example app
  4. Maintain (or improve) the existing architecture (please don't simplify or downsize)

Features to Implement

Core Features

  1. Simple List - Basic draggable list implementation
  2. Shared Lists - Moving items between two different lists
  3. Cloning - Duplicating items when dragging
  4. Disable Sorting - Preventing items from being sorted in a list while still allowing drag to other lists
  5. Handles - Using specific handles to drag items instead of the entire item
  6. Filter - Filtering which items can be dragged

Advanced Examples

  1. Grid - Arranging items in a grid layout
  2. Nested Sortables - Lists that contain other sortable lists (highest priority)
  3. MultiDrag - Ability to select and drag multiple items at once
  4. Swap - Swapping items instead of inserting them

Architecture-First

The architecture must be maintained or improved to prevent the issues that arose with SortableJS. The modular design with separate concerns for animation, DOM manipulation, core logic, and utilities is intentional and critical for maintainability and adding features.

Future Direction

This project aims to eventually embrace Native JavaScript Signals for seamless integration with all frameworks.

Getting Started

  1. Clone the repository
  2. Install dependencies (npm install or yarn)
  3. Run the example app (npm start or yarn start)
  4. Choose a feature to implement
  5. Follow the development approach outlined above

Contribution Guidelines

  • Maintain TypeScript typing throughout
  • Write tests for new features
  • Document your code and update examples
  • Follow the existing architectural patterns
  • Submit PRs with clear descriptions of changes

Thank you for considering contributing to SortableTS!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions