Больше года прошло с момента первого релиза и накопились кое-какие обновления.

А накопились они, а не деплоились сразу, потому что я пытался перейти на новую архитектуру. Попытки эти включали:

  • Бекенд на go, фронтэнд на vanilla js и git в качестве хранилища (через libgit2). Очень хотелось yoba-хранилище и поддержку разного рода историй и диффов. В принципе даже какие-то успехи в этой попытки были, но оказалось очень трудоемко и я забросил. Хотя поиски крупиц документации по libgit2 конечно неплохо развивали навыки ресерча.
  • Бекенд на postgrest, фронтэнд на vue3, авторизация через jwt. Это была погоня за призначной мечтой о бекенде без бекенда. В моей реальности, как показала практика, такого не бывает, хоть postgrest мне и понравился.

Все эти попытки упирались в неоправданный объем работ, непонятно ради чего, и кучи багов с самого начала проекта из-за ошибок на стыках. В итоге я вернулся к старой версии проекта на рельсах. И тогда дело пошло.

У веточки появились пользователи

Первой из множества функций, которых не хватало сервису были пользователи, и вся связанная с ними обвязка - аутентификация, авторизация ресурсов и прочее. Без пользователей было сделано так, что каждый мог редачить код другого. Супер по изичу, но уж слишком хаотично.

login

При помощи omniauth и встроенных рельсовых сессий удалось несложно пользователей организовать. Пока работает только вход через гитхаб, но впоследствии думаю, что я добавлю другие виды - через gitlab, тележку и электронную почту.

С появлением пользователей, каждый кусочек кода теперь принадлежит кому-то, что с одной стороны хорошо, а с другой создает трудности в редактировании. Чтобы трудностей не было, у чужих кусочков кнопка “Сохранить” заменена на кнопку “Скопировать”, которая копирует код к вам и далее уже спокойно с ним работать:

copy

Не забыта и возможность анонимного создания и редактирования, сделана она через костылики, но кажется работает.

Добавлено превью

Теперь при просмотре вверху отображается небольшая плашка с названием и ссылкой на редактирование. Появилась она потому что мне периодически приходилось давать 2 ссылки - просмотр и редактирование. Теперь ссылка может быть одна.

preview

Кстати маленькая кнопочка для переходя из редактирования в просмотр тоже есть.

preview_from_edit

Появилась дока

Еще у сервиса появилась небольшая дока, которую вы сейчас читаете. Начал я с блога, в котором пишу про обновления, но со временем здесь появится больше информации - неплохо бы написать какой-нибудь краткий хелп и раздел про API, когда оно будет готово.

Смена редактора кода

Тут писать особо нечего — старый codemirror сломался, новый какой-то навороченный с какими-то view и state‘ами. Разделение на вью и стейт это конечно хорошо, но мне нужен был всего лишь текстовый редактор, чтобы навесить его на HTML-элемент. Взамен codemirror пришел новый, модный, молодежный codejar. По UX он правда чуть отстает, но я думаю, что со временем мы это поправим.