Нарешті реліз! Розробка нової безголової CMS (Headless CMS) Том 3
Безголова CMS KuroCMS на Cloudflare офіційно випущена. Огляд переваг: веб-інсталятор без ПК, обмін шаблонами в один клік, переклад через ШІ та просте оновлення через панель управління.
KuroCMS нарешті офіційно випущено! Це абсолютно безкоштовна багатомовна безголова CMS нового покоління, яка забезпечує надшвидку доставку на межі (edge) Cloudflare та просте налаштування зі смартфонів.
У світі існує незліченна кількість платформ CMS. Однак, коли окремі розробники або власники малого бізнесу намагаються отримати «власний домен», «власний дизайн» і «надшвидку швидкість відображення», складність і щомісячні експлуатаційні витрати раптово злітають. Але мета KuroCMS, яку ми обговорювали в томах 1 і 2 цієї серії, нарешті досягнута! Разом з офіційним випуском версії 1.7.0, цей третій запис у щоденнику розробника детально розповість про різні нові функції та її неймовірну привабливість. До речі, цей сайт Kurousagi також повністю замінив Strapi на KuroCMS і вже використовує її в роботі.
Звичайно, все ще є багато можливостей для вдосконалення та виправлення помилок, але ми вирішили випустити її сьогодні, оскільки вона виявилася придатною до використання після двох-трьох днів тестування.
Поєднання «абсолютно безкоштовного» та «безмежної швидкості відображення», створене завдяки Cloudflare Native
Найбільшою архітектурною особливістю KuroCMS є те, що її бекенд та інфраструктура хостингу повністю інтегровані з крайовими обчислювальними середовищами Cloudflare (Workers, D1, KV, R2, Workers Assets).
Традиційні безголові CMS та платформи типу WordPress вимагали щомісячної плати за оренду сервера від кількох сотень до кількох тисяч єн, а також клопоту з керуванням базою даних. Однак KuroCMS розроблена для максимального використання потужного безкоштовного тарифу (Free Tier) Cloudflare. Для стандартної роботи блогу її можна запускати з щомісячною вартістю «рівно 0 єн».
[Орієнтири безкоштовного тарифу Cloudflare]
・Workers (виконання сервера): 100 000 запитів/день
・D1 (база даних SQLite): 5 ГБ пам'яті
・KV (кеш сторінок): 100 000 читань / 10 000 записів на день
・R2 (медіасховище): 10 ГБ пам'яті / 1 000 000 операцій на місяць
Малоймовірно, що ці ліміти будуть перевищені для персональних або малих і середніх сайтів.
Крім того, немає жодних компромісів щодо швидкості відображення. KuroCMS використовує трирівневий надшвидкий механізм кешування. За запитом відповідає найближчий edge (кеш edge), а у разі пропуску кешу дані миттєво повертаються зі сховища KV. Це забезпечує час завантаження сторінки (TTFB) менше 100 мілісекунд з будь-якої точки світу, пропонуючи продуктивність, яка повністю усуває стрес користувача.
Хоча отриманий сайт відображається з надзвичайною швидкістю за допомогою Vanilla JS та Tailwind CSS без будь-яких залежних бібліотек, сама KuroCMS також не використовує жодних фреймворків. Тому немає необхідності керувати версіями фреймворків або робити виправлення для адаптації, а оскільки немає накладних витрат від використання фреймворків, KuroCMS працює неймовірно швидко.
Комп'ютер не потрінен! «Веб-інсталятор», який можна запустити навіть зі смартфона
Безголові CMS зазвичай вимагали роботи з ПК або командним рядком (CLI) від налаштування середовища збірки до експлуатації та розгортання. Однак KuroCMS була розроблена з метою «простого розгортання для кожного без ПК», що призвело до створення спеціального веб-інсталятора.
Користувачі просто переходять на спеціальну сторінку через браузер і прив'язують свій обліковий запис Cloudflare. Ресурси, такі як Workers, D1 і KV, створюються автоматично, запускаючи панель адміністратора KuroCMS. Як тільки перший користувач реєструється як адміністратор (admin), екран ініціалізації (/initialize/) автоматично блокується для забезпечення високої безпеки. Це революційна система, яка дозволяє виконувати всі кроки розгортання та початкового налаштування безпосередньо з екрана смартфона.
«Справжня багатомовна (i18n) модель даних» з вбудованою підтримкою кількох мов
З самого початку розробки KuroCMS проектувалася з урахуванням багатомовності для глобального розповсюдження. На цьому сайті Kurousagi налаштовано відображення загалом 9 мов, включаючи японську, англійську, німецьку, французьку, італійську, іспанську, китайську, корейську та українську. *Будь ласка, використовуйте свій власний хмарний сервіс штучного інтелекту. Особисто я, як зазначалося в попередніх статтях, рекомендую Gemini для ввічливого тону, ChatGPT для дружнього тону та Claude для офіційного тону.
| Код мови | Мова відображення | Структура URL | Особливості |
|---|---|---|---|
| ja | Японська (за замовчуванням) | /path/to/page |
Встановлено як базову мову. Kurousagi пише статті лише японською. |
| en | Англійська | /path/to/page?lang=en |
Конвертація в англійську через REST API за допомогою недорогих хмарних сервісів ШІ, таких як Gemini. |
| zh / ko / de / fr / it / es / uk | Інші мови | /path/to/page?lang={code} |
Попросіть той самий ШІ послідовно перекласти з англійської версії на інші мови. |
Джерело даних чудово організована у відносинах «один до багатьох», де тексти перекладу для кожної мови (заголовок, опис, body-html) прив'язані до єдиного ідентифікатора статті (did) і спільного slug. При перекладі на нову мову ви можете просто вибрати мову зі спадного меню в панелі адміністратора, щоб скопіювати вміст існуючої базової мови одним кліком і почати переклад.
Руйнування бар'єрів дизайну: функція «Template» та спільне використання у спільноті
Що стосується «свободи дизайну», яка є важливою перевагою безголових CMS, KuroCMS також пропонує свою власну унікальну специфікацію. Вона оснащена «API Template», який обробляє спеціальні коди HTML + KuroCMS безпосередньо як шаблони.
Цей механізм шаблонів динамічно або під час статичних збірок розгортає змінні та списки на стороні edge, просто записуючи спеціальні вирази, такі як site.name або #each articles.../each в HTML. Знання складних фреймворків JavaScript не потрібне, що дозволяє створювати свій дизайн за допомогою чистого HTML/CSS/JS.
Крім того, створені шаблони можна поділитися та завантажити з користувачами по всьому світу одним кліком через «Community Template Library». Підключившись безпосередньо до публічної бібліотеки через екран «Вибрати шаблон» панелі адміністратора, ви можете перевірити екрани попереднього перегляду перед інсталяцією та негайно застосувати бажаний дизайн до свого сайту.
[Автоматичне створення мініатюр]
При поширенні вашого розробленого шаблону в спільноті, панель адміністратора тимчасово рендерить HTML в iframe і автоматично фіксує його у форматі JPEG в браузері за допомогою технології html2canvas, автоматично реєструючи його як мініатюру для бібліотеки. Користувачам не потрібно створювати зображення вручну.
Типографічна узгодженість із функцією «Web Font»
Навіть якщо ви розгортаєте чудово розроблений шаблон, якщо шрифти відрізняються залежно від операційної системи смартфона або ПК відвідувача, це може зіпсувати враження від сайту. Для вирішення цієї проблеми KuroCMS оснащена вбудованим керуванням шрифтами Google.
Панель адміністратора має вбудований каталог з 40 ретельно відібраних шрифтів Google. За допомогою двоколонкового інтерфейсу додавання шрифтів для завантаження, зміна пріоритету та налаштування «шрифту за замовчуванням» можна легко керувати перетягуванням. Після того, як шрифт за замовчуванням встановлено, посилання CDN автоматично вставляються в <head> під час публічних збірок, замінюючи специфікації CSS на сторінці шаблону, щоб зробити типографіку всього сайту однаковою та красивою.
Крім того, редактор WYSIWYG панелі адміністратора (KuroEditor) повністю інтегрований із цими налаштуваннями. Оскільки ви можете писати в екрані редагування з тим самим шрифтом, що й на публічному сайті, стрес від того, що написане відрізняється від опублікованого, усувається.
«Build Stream» для візуального відстеження прогресу та автоматичного оновлення
При виконанні «збірки в масштабах сайту» після оновлення великої кількості статей, зазвичай виникає занепокоєння, якщо прогрес не видно. KuroCMS пропонує функцію, яка повертає потік прогресу у форматі NDJSON (Newline Delimited JSON) через API виконання збірки (POST /api/build), відображаючи прогрес у реальному часі на смузі прогресу панелі адміністратора та у візуалізаторі журналів.
Під час збірки функція кешу (page_build_cache) ігнорує незмінені сторінки, мінімізуючи надлишкові записи в KV для максимізації ефективності використання edge.
Декотрий ліміт KV також відображається в панелі керування, щоб дозволити користувачам перевірити можливість оновлення в межах безкоштовного тарифу. Це допомагає їм оцінювати свої щоденні ліміти.
[Оновлення в один клік]
Найбільшою перешкодою для самостійного хостингу безголової CMS з відкритим кодом була досі складність процесу оновлення. KuroCMS має функцію автоматичного оновлення. Вона взаємодіє з офіційним репозиторієм GitHub, сповіщає панель адміністратора, коли доступна нова версія, і просте натискання кнопки «Оновити» автоматично замінює скрипт у Worker на найновішу версію KuroCMS. Жодних команд або операцій Git не потрібно.
Повне порівняння з провідними платформами CMS
Нарешті, ми підсумовуємо порівняння між KuroCMS та провідними існуючими CMS (WordPress та Strapi 5 з самостійним хостингом).
| Порівняльний елемент | KuroCMS | WordPress | Strapi 5 (Самостійний хостинг) |
|---|---|---|---|
| Щомісячна вартість | Завжди безкоштовно (В межах тарифу) | Оренда сервера (від 500 єн) | Хостинг VPS/PaaS (від 1000 єн) |
| Швидкість відображення/відповіді | Надшвидко (доставка через кеш edge) | Залежить від сервера (схильна до уповільнення) | Залежить від конфігурації (існує затримка API) |
| Складність встановлення | Легко з веб-інсталятором | Легко (автоматичне встановлення від хоста) | Важко (налаштування сервера, команди) |
| Багатомовність | Багатомовність. *Можливе керування через ШІ | Потрібен плагін (надзвичайно складне налаштування) | Стандартна підтримка (налаштування важке для новачків) *Насправді, схоже, є баги і використовувати неможливо. Kurousagi також намагався багато разів. |
| Оновлення | В один клік з панелі адміністратора | В один клік з панелі адміністратора | Вимагає виконання команд і ручного розгортання |
| Ліцензія | Kuro License на базі MIT (додано зазначення авторства) | GPL | MIT |
Висновок: На шляху до нового стандарту для персональних і малих сайтів
KuroCMS - це революційний продукт, який поєднує переваги надзвичайної швидкості відображення та свободи дизайну безголової CMS на Cloudflare у спосіб, що відповідає простоті та безкоштовності японських блог-сервісів. З великою увагою до деталей - як-от функція автоматичного оновлення, повнота багатомовної моделі та типове застосування веб-шрифтів - KuroCMS готова стати новим стандартом для майбутніх персональних блогів і малих веб-сайтів.
Якщо ви зацікавлені, відвідайте офіційний сайт інсталятора та відчуйте самі досвід надшвидкого та комфортного блогінгу.