Daniil Makarenko — Senior Product Designer / Case study
ONIX Stream — Video Meetings & Streams With No Install
- Year
- 2026
- Role
- Senior Product Designer (freelance, design-to-code)
- Client
- Freelance contract
- Industry
- Product
- Team
- Solo + AI agents (Claude in Cursor)
- Duration
- 5 weeks
Type: a web service for video meetings and live streams — guests join via a link right in the browser, with no install and no sign-up (web + iOS shell)
Role: Senior Product Designer (freelance contract) — product, UI/UX, and design-to-code: from idea and architecture to production code
Team: me + AI agents (Claude in Cursor): product, design and engineering single-handedly
Timeline: 5 weeks from the first commit to a public beta
Platforms: Web (desktop + mobile), iOS via Capacitor
Audience: tutors, teachers and small teams — and their guests, who have neither an account nor any wish to install something
At a glance
- Challenge: hosts teaching across countries and networks got video from one tool and stitched the board, polls and materials together from five tabs.
- What I did: product, UX, design system and production code, solo with AI agents.
- Outcome: public beta in 5 weeks; no usage metrics yet.
Problem
It started with a teacher teaching students in another country, over mobile internet and restricted networks. Guests had to install an app or sign up, so lessons began with “it won't open for me.” Calls dropped while the indicator said “excellent,” and slide text was unreadable. The hard part: one interface for a 1:1 lesson and a webinar for a hundred viewers, on phones and weak laptops.
Key decisions
Guests need only a link and a name
Installs and accounts stay with the host. If the browser blocks the camera, the lobby shows a hint instead of an error. Meetings and webinars differ in rights, not UI: one lobby switch sets them, and a webinar guest goes live via “invite to stage,” a grant signed on the server. A lesson and a stream stay one product.
Slides instead of screen sharing
Screen sharing blurred small text and hid the host behind windows. Instead, the deck (PDF, PPTX, DOCX) is uploaded into the room: it opens in seconds, looks the same for everyone, and the host stays on camera, moving their video over the slide. Split view puts a slide next to the board; presenter mode shows the host upcoming slides while students see only the current one.
Everything stays inside the call
Miro, Mentimeter and Kahoot send people to another tab, and the host loses the group. Six modules (poll, quiz, word cloud, mood, match the pairs, timer) and a whiteboard launch from one menu over the video. The host admits guests from a waiting room without interrupting the room; when it can't fit everyone, the meeting goes out as an RTMP stream to YouTube, VK Video or Twitch.
A connection indicator you can trust
The server called a 300 ms ping “excellent,” and the panel showed “68% loss” on a normal call. I capped the rating by real RTT and loss, measured on audio. A post-call report explains what slowed things down and what to change. AV1 screen share halves the bitrate for the same text, and with 20+ people only the speaker stays sharp: the call simplifies instead of crashing.
A design system written for AI agents
“Dark glass” runs on one token set with two themes, set separately for the app and the room; blur always comes with a solid fill. So agents wouldn't erode it, I wrote the design rules as ten mandatory UI rules in AGENTS.md and reviewed animations, error states and mobile layouts directly in code. 334 of 343 commits were written with Claude.
Paid value visible before paying
The board and polls are visible but dimmed on Free, one click from an upgrade. Streaming is gated from Business because a server worker runs it. Limits are checked on the server, not just drawn in the UI.
Outcome
ONIX Stream is in public beta, with no product usage metrics yet. Verified so far:
- guest entry: a link and a name, no install, no sign-up
- up to 100 participants per meeting; load estimates put one node at ~120–150 webinar viewers
At launch we'll measure late session starts, meeting engagement, connection complaints and conversion to paid plans.
B2B, B2C, Product, Design System, AI
ONIX Stream — видеовстречи и эфиры без установки
Тип: веб-сервис видеовстреч и трансляций — гость заходит по ссылке прямо из браузера, без установки и регистрации (веб + iOS-оболочка)
Роль: Senior Product Designer (фриланс-контракт) — продукт, UI/UX и design-to-code: от идеи и архитектуры до продакшн-кода
Команда: я + AI-агенты (Claude в Cursor): продукт, дизайн и разработка в одних руках
Срок: 5 недель от первого коммита до публичной беты
Платформы: Web (десктоп + мобайл), iOS через Capacitor
Аудитория: репетиторы, преподаватели и небольшие команды — и их гости, у которых нет ни аккаунта, ни желания что-то ставить
Коротко
- Задача: ведущие занятий между странами и сетями брали видео из одного сервиса, а доску, опросы и материалы собирали из пяти вкладок.
- Что сделал я: продукт, UX, дизайн-система и продакшн-код — в одиночку с AI-агентами.
- Результат: публичная бета за 5 недель; продуктовых метрик пока нет.
Проблема
Всё началось с преподавателя, которому нужно было вести уроки для учеников в другой стране — на мобильном интернете и без VPN. Гостю приходилось ставить приложение или заводить аккаунт, и занятие начиналось с «у меня не открывается». Связь рвалась, а индикатор показывал «отлично»; мелкий текст на слайдах было не прочитать. Сложность в том, что один интерфейс должен обслуживать и урок 1:1, и вебинар на сотню зрителей — с телефона и слабого ноутбука.
Ключевые решения
Гостю нужны только ссылка и имя
Установка и регистрация остаются ведущему. Если браузер заблокировал камеру, лобби показывает подсказку вместо ошибки. Встреча и вебинар отличаются правами, а не интерфейсом: их задаёт один переключатель в лобби, а гость вебинара выходит в эфир по «приглашению на сцену» — подписанному гранту на сервере. Урок и эфир остаются одним продуктом.
Слайды вместо демонстрации экрана
Демонстрация экрана превращала мелкий текст в «мыло», а ведущий пропадал за свёрнутыми окнами. Поэтому презентация (PDF, PPTX, DOCX) загружается в комнату: открывается за секунды, одинаково видна всем, а ведущий остаётся в кадре и двигает своё видео поверх слайда. Сплит ставит слайд рядом с доской, а режим доклада показывает ведущему следующие слайды, пока ученик видит только текущий.
Всё происходит внутри звонка
Miro, Mentimeter и Kahoot уводят людей в другую вкладку, и ведущий теряет группу. Шесть модулей (опрос, тест, облако слов, настроение, «соедини пары», таймер) и доска запускаются из одного меню поверх видео. Ведущий впускает гостей из зала ожидания, не прерывая комнату, а когда в неё не помещаются все, встреча уходит в RTMP-трансляцию на YouTube, VK Видео или Twitch.
Индикатор связи, которому можно верить
Сервер хвалил связь при пинге 300 мс, а панель пугала «68% потерь» на нормальном звонке. Я ограничил оценку реальными RTT и потерями, а потери стали считать по звуку. После звонка отчёт объясняет, что тормозило и что поменять. Демонстрация на AV1 — вдвое меньше битрейта на тот же текст, а при 20+ участниках чётко видно только говорящего: звонок не падает, а упрощается.
Дизайн-система, написанная для AI-агентов
«Тёмное стекло» — один набор токенов и две темы, отдельно для приложения и для комнаты; блюр только с плотной заливкой. Чтобы агенты её не размывали, я оформил дизайн-правила как десять обязательных UI-правил в AGENTS.md, а анимации, состояния ошибок и мобильную адаптацию ревьюил и правил прямо в коде. 334 из 343 коммитов написаны в паре с Claude.
Ценность тарифа видна до оплаты
Доска и опросы видны на бесплатном тарифе, но приглушены — апгрейд в один клик. Эфир доступен с тарифа «Бизнес», потому что его держит серверный воркер. Лимиты проверяются на сервере, а не только рисуются в интерфейсе.
Результат
ONIX Stream в публичной бете, продуктовых метрик использования пока нет. Что уже можно проверить:
- вход гостя — ссылка и имя, без установки и регистрации
- до 100 участников во встрече; по нагрузочной оценке одна нода держит ~120–150 зрителей вебинара
На запуске измеряем опоздания и срывы начала занятий, вовлечённость на встречах, жалобы на связь и конверсию в платные тарифы.









































































