Инструмент для технических интервью и парного программирования. Сделал его, потому что разбирать с человеком задачу в расшаренном блокноте неудобно обоим: подсветки нет, условие мешается с решением, а забрать по итогу нечего.
Ячейки — главная идея. Сессия это не один сплошной файл, а набор независимых блоков: у каждого свой язык и своё название. На интервью это выглядит так: в первой ячейке markdown с условием и тестовыми данными, во второй — решение на SQL, в третьей — то же самое на Python. Ничего не перемешивается, ячейки можно переставлять и удалять.
Правки видны сразу. Всё держится на WebSocket: до четырёх участников в сессии, изменения долетают мгновенно. Регистрации и паролей нет — создаёшь сессию, отправляешь ссылку, человек заходит под сгенерированным ником.
Языков заметно больше! — В выпадающем списке ячейки всё разложено по группам:
- Разметка и данные — Markdown, HTML, CSS, SCSS, LESS, XML, JSON, YAML, TOML, SQL
- Скрипты — Python, JavaScript, TypeScript, Shell / Bash, PowerShell, Ruby, Perl, Lua, R, Julia, PHP, Groovy
- Компилируемые — C, C++, C#, Java, Kotlin, Scala, Go, Rust, Swift, Dart, Objective-C
- Прочее — Haskell, Clojure, Erlang, Dockerfile и режим без подсветки
У markdown-ячеек есть переключатель «Просмотр»: таблицы, списки задач и заголовки рендерятся по-настоящему, причём режим у каждого участника свой, а содержимое общее.
Сессию можно забрать с собой. Кнопка «Скачать .md» собирает всё в один файл: шапка с датой и списком участников, каждая ячейка отдельным блоком кода. Удобно приложить к фидбеку.
Выполнения кода нет и не планируется — это редактор, а не песочница. Сессии живут в памяти процесса и удаляются через несколько часов после того, как из них вышел последний участник.