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

Сторінка «Про нас»

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

Маркетингова сторінка-візитівка: розповідає, що Abitly — студентський проєкт для абітурієнтів, показує мотивацію («Що нас рухає?»), цінності та команду (фото, ролі, соцмережі). Головна роль — довіра та E-E-A-T-сигнал для SEO.

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

⚠️ abitly.org/uk/pro-nas теж віддає 200, але це не ця сторінка — це загальний catch-all із заголовком головної (Abitly — Допомога абітурієнтам…). Канонічний URL сторінки — лише /{locale}/about (<link rel="canonical" href="https://abitly.org/uk/about">).

  1. Сервер (page.tsx, server component) викликає getAboutPageData({ locale }) → один запит до Strapi single-type about-page з глибоким populate.
  2. AboutUs.tsx рендерить 6 секцій із типізованих Strapi-пропсів: HeaderSection (header) · AbitlySection (intro + preview-зображення) · MotivationSection (motivation.cards) · ValuesSection (values.cards з іконками) · ParticipantsSection (team.participants — фото, роль, соцмережі) · FooterSection.
  3. Тексти карток/інтро рендеряться через RichText (markdown-to-jsx) — редактор у Strapi пише форматований текст замість старого i18n-розбиття на part1/<b>/part2.
  4. ISR: revalidate = 3600 (сторінка пересобирається не частіше разу на годину).

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

ДжерелоЕндпоінт / entityПризначення
StrapiGET /api/about-page (single-type, locale, deep populate)весь контент тіла сторінки
Strapicontent-type about-page (singleType, draftAndPublish, i18n)компоненти about.header, about.intro, about.motivation, about.values, about.team, about.footer

Тіло сторінки — повністю зі Strapi. SEO-метадані (title/description/OG) — окремий шлях: i18n-ключі meta.about.* через getTranslations, не зі Strapi (тому <title> = «Про проєкт…», а Strapi header.title = «Хто ми?» — це різні поля). Альтернативи uk/en — getAlternates(locale, '/about').

Strapi-клієнт — той самий публічний axios instance, що й Статті (strapiApiClient, без auth-interceptors): single-type читається анонімно (перевірено 2026-06-14 на cms.abitly.org/api/about-page, 200, опубліковано в обох локалях id 14/15).

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

Section titled “Зв’язки з іншими фічами”
РепоШляхПримітка
abitly-frontend-v2src/app/[locale]/(main)/about/page.tsxserver component, ISR revalidate=3600
abitly-frontend-v2src/components/pages/about-us/**AboutUs + 6 секцій, RichText, PersonCard, getAboutPageData
abitly-frontend-v2src/components/pages/about-us/metadata/aboutPageMetadata.tsSEO-метадані з i18n meta.about.*
abitly-frontend-v2src/lib/types/strapi/about-page.tsTS-типи Strapi-відповіді
abitly-frontend-v2src/api/strapi/{strapi.api,strapi.queries}.tsgetAboutPage()getSingle('about-page')
abitly-strapisrc/api/about-page/ + компоненти about.*single-type «AboutPage», i18n + draftAndPublish
  • EN-локаль опублікована, але не перекладена: запис locale=en (id 15) існує і published, проте поля містять український текст (header.title = «Хто ми?», intro/values — українською). Тобто /en/about показує UA-контент. TODO: локалізувати англійський single-type у Strapi.
  • Метадані ≠ тіло: <title>/description/OG беруться з i18n (meta.about.*), а не зі Strapi — зміна контенту в CMS не оновлює SEO-теги. За дизайном, але враховувати при правках.
  • Constraint «Strapi-deploys-first»: фронтенд гейтить порожній single-type (if (!data) … null); якщо локаль не опублікована — секції просто не рендеряться. Будь-яка зміна структури компонентів about.* має спершу викотитись у Strapi, потім у фронт.
  • Застарілий PR #409 (feat/about-page-strapi, 57 комітів позаду main) — дубль уже виконаної міграції; TODO: закрити, щоб не плутати.
ДатаПодіяДжерело
2025-04первинна hardcoded-версія сторінки (i18n + статичний масив команди)PR #59 «Feat/about us»
2026-06-09контент тіла переведено на Strapi single-type about-page; hardcoded-джерела видалено з main; single-type опубліковано (uk+en)abitly-frontend-v2 commit c3939230 + abitly-strapi src/api/about-page/
2026-06-14створено картку; стан звірено curl + код main (Strapi-driven, live)PR Wave 1