Нужно обеспечить пользователю возможность загружать на сайт свои html-странички, свои js-файлы. Потом это дело нужно отображать/исполнять на странице. Как обеспечить безопасность, чтобы скрипт не имел доступа к общению с сервером? Усложнение задачи: как разрешить скрипту использовать только часть api сервера?
Грузить пользовательские скрипты в ифрейм со стороннего домена. А на сервере настроить CORS для домена куда грузятся пользовательские скрипты.
Для контроля за скриптом и для организации взаимодействия между страницей родителем и фреймом с пользовательским скриптом можно воспользоваться Window.postMessage()