Перейти до вмісту

Статті / блог

ПолеЗначення
Статус🟢 prod
Поверхніweb
Доступністьбезкоштовно, без акаунта
Власник@Vladbandurin
Останнє підтвердження2026-06-13 · browse (abitly.org/uk/novyny, cms.abitly.org/api/categories) + код:main (abitly-frontend-v2, abitly-strapi)

Статті про вступ (НМТ, стратегія пріоритетів, мотиваційні листи, огляди спеціальностей, події ЗВО) — головний SEO-канал залучення абітурієнтів. Контент повністю керується контент-командою через Strapi; фронтенд — SSR зі стагерованим ISR.

Точка входу: https://abitly.org/uk/novyny (uk) · https://abitly.org/en/news (en). Внутрішній роут — /[locale]/blog; локалізовані шляхи (novyny/news) задає мапа PATHNAMES (next-intl). Лінк «Блог» — у головній навігації сайту.

  1. Головна блогу — «База знань Abitly»: пошук, картки категорій, «Останні публікації».
  2. Пошук (BlogSearch, єдиний CSR-компонент) — client-side фільтр за назвою статті та категорією, результати в dropdown.
  3. Категорія → /blog/{categorySlug} (live-категорії: vstup2026, vstup2025, enrollment-2025, specialities, ivents).
  4. Стаття → /blog/{categorySlug}/{articleSlug} — рендер із content_blocks: TextBlock (Markdown) · TableBlock (JSON) · ImageBlock. Блок, що впав, замінюється i18n-повідомленням (ContentBlockError), не ламаючи сторінку.
  5. Усі статті → /blog/all.
  6. Спецсторінка «Коефіцієнти НМТ» → /blog/category/nmt-coefficients — гібрид: метадані зі Strapi + дані спеціальностей з api-v2.

ISR стагерований проти thundering herd: home 30 хв → all 35 хв → категорія 40 хв → стаття ~2,2 год → nmt-coefficients 3 год.

Мережевий шлях Web → Cloudflare (Authenticated Origin Pulls) → Strapi → Postgres уже намальований — див. data-flows, тут не дублюємо.

ДжерелоЕндпоінт / entityПризначення
StrapiGET /api/articles (+ filters[slug], populate, sort=publishedAt:desc)списки статей, стаття за slug
StrapiGET /api/categories (+ filters[slug])категорії з іконками та статтями
Strapicontent-type articletitle, excerpt, slug, locale, reading_time, cta_text/cta_link, seo, cover_image, content_blocks, author (зарезервовано, не рендериться), category, tags
Strapicontent-type categoryname, slug, description, icon, articles
api-v2specialties (точний ендпоінт — TODO:)дані для гібридної сторінки nmt-coefficients

Strapi-клієнт — окремий axios instance (strapiApiClient, base URL NEXT_PUBLIC_STRAPI_API_URL) без auth-interceptors: контент публічний, REST читається анонімно (перевірено 2026-06-13 на cms.abitly.org/api/categories).

SEO: всі 5 роутів indexed; метадані статті — зі Strapi SEO-полів (meta_title/meta_description/keywords); OG type: article з cover_image 1200×630; окремі news-sitemaps uk-news.xml / en-news.xml (обидва 200 у prod).

Зв’язки з іншими фічами

Section titled “Зв’язки з іншими фічами”
РепоШляхПримітка
abitly-frontend-v2src/app/[locale]/(main)/blog/**роути: home, all, [categorySlug], [articleSlug], nmt-coefficients
abitly-frontend-v2src/components/pages/blog/**UI (ArticleCard, BlogSearch, …) + metadata-генератори
abitly-frontend-v2src/api/strapi/{strapi.api,strapi.queries,strapi.types}.tsaxios-функції, TanStack Query hooks, типи
abitly-frontend-v2src/lib/constants/pages.tsPATHNAMES — локалізація /blog/novyny·/news
abitly-frontend-v2src/app/(sitemaps)/{uk,en}-news.xml/route.tsnews-sitemaps
abitly-frontend-v2docs/domains/blog/домен-доки блогу (overview, api, seo, i18n) — першоджерело деталей
abitly-strapisrc/api/{article,category,tag,author}/content-types + controllers/routes/services
  • Поле author існує в типах і схемі Strapi, але ніде не рендериться (зарезервовано).
  • Пошук — лише client-side по назві статті/категорії, без повнотекстового.
  • Strapi REST відкритий на читання без auth — за дизайном (публічний контент), але враховувати при додаванні нових content-types.
  • URL спецсторінки містить літеральний сегмент category (/novyny/category/nmt-coefficients) — quirk роутингу, не справжня категорія.
  • Контент двомовний (uk/en) через Strapi locale; en-наповнення відстає від uk (TODO: підтвердити покриття).
  • Контент-тулінг поза скоупом картки: внутрішні репо abitly-blog (AI FAQ generator) — див. глосарій.
ДатаПодіяДжерело
2026-05-15актуалізовано домен-доки блогу у фронтенд-репоabitly-frontend-v2 docs/domains/blog/
2026-06-13створено картку; факти звірено browse + код mainPR Wave 1