СортувальникПортфоліоEN

sitegen · самоперевірка воріт

Кожна помилка падає у свій лоток

63 сторінки-пастки котяться повз 24 станції конвеєра сайтів. 42 мусять випасти точно там, де записано в тесті, 21 чиста має докотитися до фінішу. Маршрут кожної кульки взято з файлу, а не з випадковості.

золота кулька: пастка, мусить упастиперлова кулька: чиста, мусить пройтилатунний жетон: перші з двох воріт теж спіймалиТоркніться лотка, щоб дізнатися, що він стереже.

Станції

Двадцять чотири зупинки однієї сторінки: 23 воріт конвеєра і нульова станція, яка питає, чи сайт узагалі зібрано. Порядок той самий, у якому їх запускає конвеєр.

sg.dist

нульова станція

Сайт узагалі зібрано: у папці викладки є сторінки. Без цього інші ворота дивилися б на порожнечу.

пастки
1

sg.html

Скелет сторінки: мова, hreflang, іконка, постер у скрол-відео.

пастки
4
уроків
7
перевірок у журналі
4 693

sg.csp

Політика безпеки збігається з тим, що справді вбудовано в сторінку, а чужі хости не підключені.

пастки
3
уроків
3
перевірок у журналі
4 789

sg.cache

Довгий кеш лише у файлів із відбитком у назві, інакше відвідувач бачить стару версію.

пастки
1
уроків
1
перевірок у журналі
21 574

sg.safari

Те, що ламається лише в Safari: стрибок висоти, скло, вибір телефона за дотиком, а не за шириною.

пастки
4
уроків
12
перевірок у журналі
7 120

sg.files

У викладку не потрапляє зайве: вихідники, секрети, важкі нестиснені 3D-моделі.

пастки
2
уроків
5
перевірок у журналі
23 767

sg.js

Кожен модуль синтаксично цілий. Один зламаний файл вимикає весь сайт.

пастки
1
уроків
2
перевірок у журналі
1 061

sg.i18n

Однакові ключі словників і потрібні літери у шрифті: і, ї, є, ґ.

пастки
1
уроків
4
перевірок у журналі
1 671

sg.seo

Для пошуку: різні заголовки, h1, alt, повні адреси, відкритий robots.txt.

пастки
3
уроків
2
перевірок у журналі
3 508

sg.geo

Для ШІ-пошуку: дані про бізнес повні, розмітка збігається з видимим текстом, llms.txt веде на живі сторінки.

пастки
2
уроків
2
перевірок у журналі
3 508

sg.layout

На всіх ширинах нічого не вилазить, сторінка не порожня, iPad не отримує телефонну верстку.

пастки
4
уроків
10
перевірок у журналі
9 410

sg.console

У консолі браузера немає помилок.

пастки
1
уроків
1
перевірок у журналі
2 390

sg.motion

При «менше руху» нічого не крутиться без кінця.

пастки
1
уроків
1
перевірок у журналі
614

sg.touch

Стрічка гортається пальцем, живий перший екран живий і без курсора.

пастки
2
уроків
4
перевірок у журналі
352

sg.hold

Дія за утриманням показує прогрес і спрацьовує від звичайного дотику.

пастки
1
уроків
1
перевірок у журналі
680

sg.go

Кнопка заявки працює, навіть якщо дані ще не прийшли.

пастки
1
уроків
1
перевірок у журналі
13

sg.nogpu

Без відеокарти немає винятків, сторінка лишається цілою.

Власної пастки немає

пастки
0
уроків
2
перевірок у журналі
213

sg.sticky

Липка панель не вища за вікно й не наїжджає на текст поза собою.

пастки
1
уроків
1
перевірок у журналі
1 476

sg.lang

Перекладено все видиме: вбудовані кадри, SVG, підписи. На англійській немає кирилиці.

пастки
3
уроків
3
перевірок у журналі
664

sg.slow

На повільній мережі немає битих картинок, а персонаж не перекриває керування.

пастки
3
уроків
1
перевірок у журналі
502

sg.webkit

Рушій Safari на iPad і iPhone: скло, помилки політики безпеки, стани скрол-відео.

пастки
3
уроків
6
перевірок у журналі
1 023

sg.media

Відео віддається шматками й без рваної склейки в циклі.

Власної пастки немає

пастки
0
уроків
2
перевірок у журналі
620

sg.lh

Швидкість за Lighthouse на телефоні, зі стисненням як у Cloudflare.

Власної пастки немає

пастки
0
уроків
13
перевірок у журналі
732

sg.a11y

Доступність за WCAG 2.1 AA: клавіатура, контраст, фокус. Вмикається за контрактом сайту.

пастки
1
уроків
1
перевірок у журналі
0

Кульки

Назви справжні, з tests/fixtures.mjs. Торкніться кульки: побачите, що зламано в цій сторінці, і зможете пустити її одну.

Падають: зламані навмисно 42

sg.dist

sg.html

sg.csp

sg.cache

sg.safari

sg.files

sg.js

sg.i18n

sg.seo

sg.geo

sg.layout

sg.console

sg.motion

sg.touch

sg.hold

sg.go

sg.sticky

sg.lang

sg.slow

sg.webkit

sg.a11y

Проходять: схожі на помилку, але законні 21

Ці сторінки ловлять хибну тривогу. Якщо ворота їх зупинять, самоперевірка червона.

Навіщо машина

Помилка стає деталлю

Знайдена помилка на будь-якому сайті не лагодиться мовчки. Вона стає уроком, потім сторінкою-пасткою, потім перевіркою. Уроків уже 94. Пастка живе поруч із перевіркою, щоб перевірка не забула, що мала ловити.

Чисті кульки важать не менше

Ворота, які зупиняють усе, теж зламані. Тому 21 сторінок із 63 законні: стрічка навмисно за екраном, власна назва без перекладу. Вони мусять докотитися.

Порожні лотки справжні

У sg.nogpu, sg.media і sg.lh власної пастки в самоперевірці немає, хоча в журналі вони працювали. Машина цього не ховає: лоток стоїть порожній.

Що тут модель

Рейки, шарніри, скло й удари кульок намальовано для наочності. Справжня самоперевірка запускає кожну пастку лише через її ворота, а не через усі підряд. Маршрути, лотки й лічильники взято з файлів без змін.

Журнал конвеєра станом на 4 листопада 2026 р.

160
викладок
55
проєктів
90 380
перевірок воріт
62
сайтів у портфоліо

Однаково на кожному пристрої

Своя фізика без бібліотек: крок 1/120 секунди, лише додавання, множення, ділення й корінь. Під час збірки та сама машина проганяється на сервері і записує підпис кінцевого стану. Ваш браузер після повного пробігу порівнює свій. Якщо кулька при збірці лягла не в той лоток, сайт не збереться.

підпис збірки для цієї розкладки
2aa4870d
ваш браузер
дочекайтеся кінця пробігу

Сайти, що пройшли ці ворота

У портфоліо 62 сайтів з конвеєра. Кожен можна відкрити й перевірити.

Відкрити портфоліо