golentor спасибо за ответ. В свободное время для личных проектов пишу фронт, Vue стараюсь активно использовать, куда ж без него)
Если по текущему статусу решения вопроса, то пока вырисовывается так:
- После некоторого ресерча оказалось что не совсем понимал работу JS с DOM.
- Также для большей свободы и контроля, решил перейти с стандартного dragndrop на свой, основанный на mouseevents (https://learn.javascript.ru/mouse-drag-and-drop).
- С сеткой тоже все оказалось проще, CSS разлиновал сетку по точкам, а когда отпускаю блок (mouseup) высчитываю ближайшее расстояние до точки и двигаю его туда. Так что обошлось без лишних библиотек.
- Данные буду хранить в атрибутах, перебирать элементы (над этим еще надо подумать) и сохранять в один из форматов.
В общем потихоньку решил накидать основу на Vanilla и мигрировать на Vue используя компоненты.
Насчет graphQL спасибо, почитаю. А готовые решения боюсь не подойдут, много переделывать под себя.
Сейчас один из вопросов который возник, перемещение нескольких добавленных элементов, когда между ними добавляют элемент. Или при добавлении нескольких ветвей (if-else-...) у нас визуально растет дерево, и если такие сложные условия будут на нижних уровнях, они будут двигать все элементы дерева сверху. В общем не знаю еще как это решать, может есть идеи?) Насчет вместе покодить я не против общего репо)
P.S наверное насчет вопроса поторопился, надо хотя бы приступить к этой проблеме и задавать более конструктивные вопросы)