Книжный куб

@book_cube · ai · Russian · active

Subscribers 15.8K tracking since 24 Oct
Reach per post (ERR) 14.1%2.2K avg views
Posting 3.5/day last 7 hours ago
Reactions per 1K views 5.9 ❤ 🔥 👍
edited

Как я с агентами запил сегодня себе прямые эфиры на статический сайт без обычного бэкенда (Рубрика #Architecture) На этой неделе у меня четыре разговора с экспертами в прямом эфире: два уже прошли, два ещё впереди. Формат общения в реальном времени перестал быть для меня разовым экспериментом, и в какой-то момент стало странно, что мой сайт polomodov.tech об этом ничего не знает. Я хотел простое поведение: если в ближайшие семь дней запланирован эфир, сайт сам показывает анонс. Когда трансляция начинается, блок переключается в состояние live. Если эфира нет, ничего не нужно править руками, пересобирать или выкладывать специально ради одной плашки. Здесь было интересное ограничение. Сайт статический, собран на GitHub Pages и работает на собственном домене. Обычного бэкенда у него нет, и заводить отдельный сервис с сервером и базой данных ради статуса трансляции мне не хотелось. Но совсем без серверной части не обойтись: YouTube API требует OAuth, а значит, где-то должны безопасно жить client secret и refresh token. В итоге, я сегодня утром пообщался с Codex и мы спроектировали такую схему - Добавили не полноценный бэкенд, а один узкий динамический слой - Cloudflare Worker. - Раз в две минуты Worker через OAuth запрашивает у YouTube списки active и upcoming трансляций; - Отбрасывает непубличные эфиры и эфиры другого канала, затем выбирает текущий либо ближайший запланированный; - Сохраняет в Workers KV нормализованный снимок из трёх состояний - offline, upcoming, live - и отдельно кэширует access token; - Наружу отдаёт только публичный read-only endpoint /status, без OAuth-данных и лишних деталей YouTube API; - Браузер опрашивает этот endpoint раз в минуту, но только пока вкладка видима. Отдельно предусмотрено не только как показать эфир, но и как безопасно перестать его показывать. Клиент проверяет версию схемы и все поля ответа. Если снимок старше десяти минут, он считается устаревшим и интерфейс возвращается в offline. Так же скрывается анонс, если трансляция запланирована дальше чем на семь дней. Ошибка YouTube или Worker не превращается в вечную плашку «мы в эфире». Сам плеер тоже не загружается заранее. Для активной трансляции iframe появляется только после клика. Если я впаду в маразм и запрещу встраивание Youtube-фрейма, то сайт покажет превью и ссылку на страницу YouTube. А в навигации индикатор появляется только для состояния live. Операционную часть я тоже не оставил «на потом»: изменения Worker выкладываются отдельным сценарием GitHub Actions, а ещё один сценарий раз в час проверяет схему /status и свежесть данных. При этом посещения сайта не увеличивают число запросов к YouTube - к API обращается только Worker по расписанию. Круто, что все это от начала и до релиза заняло меньше дня: - Сегодня утром с агентом мы договорились об архитектуре - Основной PR открылся в 12:46 - В 15:48 ветка синхронизировалась с main (я поревьювил и принял измения) - Дальше я настроил все токены и доступы по инструкции агента между Google Cloud Console, Cloudflare, Github - А в 17:09 изменения были смержены и дальше раскатаны - К 18:00 на сайте уже отображался завтрашний стрим с Женей Сергеевым про whitepaper Anthropic В общем, сейчас разработка своих пет-проектов - это чистый фан, особенно если ты разбираешься в инженерии и настроил кучу детерминированных проверок, которые позволяют агенту безопасно достигать поставленных целей:) #Architecture #Engineering #Web #Cloudflare #DevOps #YouTube

Views over time

01K2K3K15 Jul 17:0424 Oct 02:123.1K15 Jul 17:04: 0 views24 Oct 02:12: 3,060 views
Snapshots we took after posting.
WhenViews
15 Jul 2026, 17:040
24 Oct 2026, 02:123.1K

Who shared this post

Posts in other channels we index that link to this one. (Forwards with a hidden source can't be traced.)

Nobody yet.