Щоб відчути, що таке Astro, варто побачити ту невелику революцію, частиною якої він є, – зміну в тому, як люди уявляють собі створення сайтів. Вона відбувалася поступово, і більшість людей так і не помітили, як це сталося. Це гарна історія про те, як робити менше, а отримувати більше.
Старий спосіб: кухня, що готує кожну страву на замовлення
Довгий час сайт працював як кухня в жвавому ресторані. Щоразу, коли відвідувач відкривав сторінку, якийсь комп’ютер мусив зготувати цю сторінку заново – дістати текст зі складу, дістати оформлення, скласти їх докупи і видати готову сторінку за двері. Кожен відвідувач, кожна сторінка – на замовлення, тут і зараз.
Саме так працює WordPress і більшість давніших систем, і саме тому їм потрібно, щоб постійно крутилося кілька важких частин: програма, яка готує, і база даних – той самий склад, де лежать усі тексти й налаштування, чекаючи, доки їх дістануть і зберуть на замовлення.
Це працює. На цьому тримається величезна частина вебу. Але це чимало механізмів, які треба тримати в русі, а все те готування на замовлення забирає час і може дати збій, коли гості приходять юрбою.
Стривайте – а що таке «база даних» і навіщо вона була сайтам?
База даних – це просто впорядкований склад для інформації: ваші дописи, ваші налаштування, ваші коментарі, розкладені по охайних полицях, звідки програма може швидко все дістати.
Сайтам вона була потрібна саме через ту модель «готуємо на замовлення»: якщо кожна сторінка збирається заново тієї миті, коли відвідувач її просить, потрібен живий склад напоготові, щоб видавати складники. База даних була коморою за кухнею.
Тихе усвідомлення, що прийшло кілька років тому, було таким: для багатьох сайтів сторінки майже не відрізняються від відвідувача до відвідувача. Допис у блозі читається однаково для всіх. То навіщо готувати його заново щоразу? Навіщо тримати цілу комору заради страви, яка завжди та сама? Саме з цього питання починається новий спосіб.
Новий спосіб: приготувати раз – і роздавати готове
Ось у чому зміна. Замість готувати кожну сторінку тоді, коли відвідувач попросив, – що, як приготувати всі сторінки лише раз, заздалегідь, і тримати готові тарілки напоготові? Тоді, коли хтось приходить, ви просто подаєте йому готову тарілку. Миттєво. Жодної кухні в роботі, жодної комори, жодного чекання.
Саме це робить генератор статичних сайтів, а Astro – особливо вдалий і сучасний його представник. Ви пишете вміст і робите оформлення; Astro готує один раз, перетворюючи все на прості готові сторінки; а далі ці наперед готові сторінки просто роздаються – однакові й миттєві – усім.
Жодної бази даних, що гуде на тлі. Жодного збирання на замовлення. Значно менше того, що може зламатися, значно менше того, що треба доглядати, – і сторінки, які приходять так швидко, як їх узагалі здатен донести інтернет. (Саме тому такі сайти так гарно поєднуються зі службами на кшталт Cloudflare, які просто тримають копії цих готових сторінок поруч із кожним читачем.)
Різницю не обов’язково приймати на віру – її можна побачити. Перемикайтеся між двома способами нижче, щоразу натискаючи Load the page, і дивіться, скільки всього має статися, перш ніж відвідувач отримає свою сторінку:
rebuilt fresh on every single visit
Старий спосіб працює для одного відвідувача – але кожен новий прихід запускає всю ту подорож наново. Новий спосіб зробив роботу один раз, тож кожен візит – це лише останній короткий стрибок.
«А як же те, що таки змінюється?»
Слушне питання – на сайтах усе ще є поля пошуку, форми коментарів, живі речі. Сучасна відповідь елегантна: замість однієї велетенської кухні, яка робить усе, ви під’єднуєте невеликі спеціалізовані служби, кожна з яких робить одну справу, а між собою вони спілкуються простими наперед узгодженими повідомленнями (такі з’єднання називають API). Ваші сторінки лишаються легкими й наперед готовими; окрема маленька служба відповідає за пошук; ще одна – за коментарі. Кожна частина – власний невеликий застосунок, який можна замінити.
Це різниця між однією величезною машиною, що робить усе (і ламається теж уся разом), і набором простих інструментів, кожен з яких добре робить щось одне. Веб тихо дорослішав саме в цьому напрямку.
Як це пов’язано з Git і сучасним способом роботи
Оскільки сайт на Astro – це, по суті, просто тека звичайних файлів (ваші тексти, ваше оформлення), він ідеально пасує до Git – інструмента, який пам’ятає кожну версію вашої роботи. Увесь ваш сайт стає чимось, для чого можна зробити знімок, що можна переглянути назад у часі й куди можна відкотитися – точно так само, як з будь-яким іншим текстом.
Це геть інший світ, ніж давніший підхід, де ваш вміст жив заплутаним усередині бази даних, яку нелегко ні побачити, ні зберегти по версіях. Тут сайт – це файли; файли лягають у Git; Git дає вам історію, безпеку і свободу експериментувати. Деталі складаються одна до одної так, ніби їх зробили одну для одної, – бо дедалі частіше так воно і є.
Чому це чудовий момент, щоб будувати саме так
Тут стався щасливий збіг у часі. Сучасні помічники зі штучним інтелектом (ШІ) виявилися глибоко обізнаними з інструментами на кшталт Astro – вони дуже добре розуміють його природу: звичайні файли, збірка один раз. Тому будувати сайт у такий спосіб за допомогою ШІ буває напрочуд плавно й зрозуміло: ви бачите кожен файл, розумієте, за що кожен відповідає, змінюєте все прозоро – і можете попросити ШІ пояснити чи підправити будь-яку частину.
Часто це спокійніший і багатший досвід, ніж боротьба з давнішою, важчою системою, – навіть якщо той самий ШІ допомагає. Прості основи дають просту співпрацю. Цей блог зроблено на Astro саме з цих причин.
Отже, одним подихом
Astro – це сучасний спосіб зробити сайт, підготувавши всі його сторінки один раз, заздалегідь, у вигляді простих готових файлів, тож немає бази даних, яку треба тримати запущеною, і нічого важкого не гуде на тлі; результат виходить швидким і простим, природно дружить із Git та з інструментами, які ШІ добре розуміє, і відображає тиху зміну вебу – від готування кожної сторінки на замовлення до того, щоб просто мати їх готовими.