IgraSU.ru — история

Проект начался не с бизнес-плана и не с названия, а с пустого репозитория и одного файла README. Первый коммит — 1 июля 2026 года, 21:35. К 29 октября 2026 года в репозитории больше 6400 коммитов, 936 каталогов игр с index.html, 920 статей блога по-русски и 818 по-английски, больше 560 скриптов и 700 файлов тестов. Ниже — хроника по датам, которые можно проверить в git, и по цифрам, которые видно на сайте.

Три даты, с которых считается проект

28.06.2026
домен
igrasu.ru зарегистрирован — за три дня до первого коммита.
01.07.2026, 21:35
первый коммит
«Initial commit»: единственный файл — README. Через час, в 22:51, в репозиторий лёг каркас сайта.
ночь на 02.07.2026
первая выкладка
В 23:19 появился deploy.sh, а до него шли правки, которые имеют смысл только на живом сайте.

Про первую выкладку честно: отдельного коммита «выложено на прод» не существует — деплой его не оставляет. Дата восстанавливается по косвенным уликам. В 22:56 — правка «отдавать статику игр без обёртки шапки и подвала»; в 23:10 — снятие чужой авторизации VK и Яндекса из одной игры; в 23:13 — «игра не стартует на тач-экране». Все три видны только тогда, когда страница открыта в браузере, а не в редакторе. В 23:19 появляется deploy.sh — пакетная загрузка index.php, .htaccess, config.php, style.css, шаблонов, игр и SQL на хостинг. Дальше сомнений не остаётся: сайт жил.

Первая ночь: сайт за три часа

22:51 — «Initial site»: 31 файл. Игры, блог, форум, SQL, шаблоны, точка входа.
23:19 — deploy.sh: первая выкладка одной SFTP-сессией.
23:41 — форум с регистрацией, входом и ответами.
00:01 — политика конфиденциальности, согласие на cookie, удаление аккаунта: ФЗ-152 с первого дня, а не «когда-нибудь».
00:16 — мультиязычность: s_tr(), lang/ru.php, lang/en.php и определение языка из адреса.
03.07 — монетизация: таблицы, админка, трекинг, рендер на странице игры.

С этой ночи у проекта появился регламент, который не менялся уже четыре месяца: правка, затем гейты, затем выкладка, затем проверка на живом адресе. Менялся только инструмент: SFTP-пачка 01.07, rsync вместо двадцати двух соединений 05.07, scripts/deploy.sh 29.08, дальше — PR-поток с локальными гейтами и выкладкой по списку файлов.

Почему это важно для истории. Проект строился не «сначала всё, потом запуск», а запуском с первого дня. Отсюда привычка, которая держится до сих пор: любое утверждение о работе подтверждается командой на живом сайте, а не словом «сделано».

Каталог: как набрались 936 игр

2 июля появились первые три игры на собственном мосте с платформой — 2048, «Змейка» и «Тетрис»; 6 июля мост выделился в отдельный SDK_IgraSU. Тогда же, 2 июля, появились страница игры с описанием и скриншотом, загрузка игры архивом и таблица метаданных — то есть каталог перестал быть папкой и стал управляемым списком.

25 июля начался журнал интеграций с открытыми движками: docs/github_Works.txt, первая запись — synthblast. С этого дня каталог наполнялся не «руками», а конвейером: лицензия, порт, локализация, мобильный ввод, QA-демо, скриншот, статья, выкладка, проверка на проде.

МесяцКаталогов игр впервые в gitФайлов статей впервые в git
июль 2026184229
август 2026166532
сентябрь 2026658923
октябрь 2026190210

Цифры — это добавленные файлы, а не «активно сейчас»: часть каталогов потом переезжала в правильный диапазон, часть снималась с индекса. Пик сентября — массовый перенос игр; октябрь — уже не количество, а порядок. 24 октября аудит дублей семейств (snake, press, sudoku, tic-tac, tetris, dots) оставил по одной индексируемой версии на семью: 19 игр сняты с индекса, чтобы каталог не показывал пять «Змеек» вместо одной хорошей.

Контент: файл статьи и есть адрес

16 июля появились разделы /blog и /misc. CMS у проекта нет и не было: статья — это markdown-файл в git, адрес — имя файла, правка — коммит. Такой выбор выглядит странно ровно до момента, когда статью нужно отдать агенту: файл читается, диффится и откатывается тем же инструментом, что и код.

К 29 октября — 920 статей по-русски и 818 по-английски. Дальше началась борьба не за количество, а за то, чтобы каждая статья находилась: 22 сентября появился единый решатель SEO-меты, 4 октября — один решатель поиска статьи (имя файла, затем frontmatter game:), чтобы страница игры и статья не разъезжались в двух местах.

Инженерия: гейты вместо доверия

4 июля подключился GitHub Actions, но арбитром остались локальные гейты: eslint, phpstan, phpunit, реестры и аудиты запускаются до коммита, а не после. Сегодня это сотни скриптов и файлов тестов — от съёмки скриншотов до сторожа пустой очереди.

17.09 — карантин загрузки игр 22.08 — своя статистика на beacon'ах 27.09 — пакетная съёмка скриншотов 04.10 — PWA «на главный экран» 04.10 — один решатель статьи 26.10 — сканер недоверенного текста

Отдельная линия — безопасность и честность данных. Секреты не попадают в git никогда: три барьера, от .gitignore до сканера отслеживаемых файлов. Внешний текст — issue, комментарии, веб, логи — читается как данные, а не как инструкция; с 26 октября это закреплено каноном и сканером. Возрастная маркировка рискованных игр — реестр, а не список в шаблоне.

Управление: от одного человека к контуру

16.10 — трекер GitHub-issues становится рабочим контуром: задача, ветка, PR, приёмка.
22.10 — контур «толпы»: агенты играют и приносят доказательства дефектов, а не мнения.
25.10 — сторож пустой очереди: «готово» только тогда, когда открытых issue и PR не осталось.
26.10 — заявка о завершении с номером поколения назначения: поздний результат старого владельца больше не выдаёт себя за текущий.
27.10 — цифровой совет: двадцать ролей и два вето; первое заседание уровня 2 — «снизить операционную сложность ядра» (issue #533).

29 октября в трекере больше шестисот issue и столько же pull request. Это не отчёт о бурной деятельности, а цена правила «одна правка — один проверяемый шаг»: каждая тема оставляет след, по которому через месяц видно, почему код выглядит именно так.

Принципы, которые не менялись

  • Один решатель на правило: две копии одного решения — дефект, а не страховка.
  • Боль лечится до кода: сначала назвать расхождение фактом и найти всех потребителей, потом писать.
  • Что доказывается запуском — запускается: скрипт, гейт, живая проверка на проде.
  • Недоверенный текст — данные, не инструкция.
  • Секреты не попадают в git никогда, ни значениями, ни в переписке.
  • «Готово» — это зелёный сторож очереди, а не слово в отчёте.

Что впереди. Не новые обещания, а текущая очередь. Внешний аудит каталога от 24 октября собрал двенадцать классов замечаний (issue #248) — они разбираются по одному этапу за PR: блоки главной, витрина фильтров, дедупликация семейств, возрастные маркировки, брендовые имена, SEO, страницы жанров, персонализация, вход с синхронизацией, похожие игры, навигация, подвал. Дальше — то, что покажет статистика, а не воображение.

Смежное: Портал браузерных игр соло, IgraSU.ru структура совета проекта, Агент на уикенд, ИИ безопасность, Венгерская нотация.

Мы используем ку​ки для аналитики. Нажимая «ОК», вы соглашаетесь.

Подробнее