Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Інтеграція платежів
    Інтеграція WayForPay
    Web3 Гаманець
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкінга Токенів
    Сутності
    Можливості
    Повідомлення
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безпека та відповідність
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Білий лейбл
    Інтеграція Web3
    Реальні приклади
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Web3
    Token launch jurisdictions
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та аналітика
    Оптимізація продуктивності
    Резервне копіювання та відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Архітектура PaymentConductor
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Інтеграція платежів
    Інтеграція WayForPay
    Web3 Гаманець
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкінга Токенів
    Сутності
    Можливості
    Повідомлення
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безпека та відповідність
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Білий лейбл
    Інтеграція Web3
    Реальні приклади
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Web3
    Token launch jurisdictions
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та аналітика
    Оптимізація продуктивності
    Резервне копіювання та відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Архітектура PaymentConductor
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Інтеграція платежів
    Інтеграція WayForPay
    Web3 Гаманець
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкінга Токенів
    Сутності
    Можливості
    Повідомлення
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безпека та відповідність
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Білий лейбл
    Інтеграція Web3
    Реальні приклади
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Web3
    Token launch jurisdictions
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та аналітика
    Оптимізація продуктивності
    Резервне копіювання та відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Архітектура PaymentConductor
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)
    1. Документація
    2. /Функції
    3. /Паттерни Оптимізації Продуктивності

    3 хв прослуховування

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Документація
    2. /Функції
    3. /Паттерни Оптимізації Продуктивності

    3 хв прослуховування

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    1. Документація
    2. /Функції
    3. /Паттерни Оптимізації Продуктивності

    3 хв прослуховування

    Ring Platform Logo

    Завантаження документації...

    Підготовка контенту платформи Ring

    Паттерни Оптимізації Продуктивності

    Ring Platform використовує React 19 cache() для дедуплікації даних у Server Components, шар абстракції бази даних (DatabaseService + адаптери) для роботи з PostgreSQL або Firestore, та Firebase Admin SDK (firebase-service-manager.ts) для кешованих читаннь Firestore у режимі firebase-full.

    Усі приклади коду нижче посилаються на реальні файли кодової бази — lib/services/firebase-service-manager.ts, lib/database/DatabaseService.ts, lib/database/adapters/FirebaseAdapter.ts. Вигадані утиліти (session-storage кеші, кастомний RingApiClient, віртуалізація) не є частиною Ring Platform.

    React 19 Server Components та отримання даних

    Пряме отримання даних у Server Components (рекомендовано)

    Уникайте викликів власних HTTP API з Server Components — App Router Server Components можуть імпортувати сервіси безпосередньо без round-trip запиту.

    React 19 cache() для дедуплікації запитів

    React 19 cache() дедуплікує ідентичні одночасні виклики в межах одного запиту. Ring Platform використовує це у двох місцях:

    1. firebase-service-manager.ts — кешовані читання Firestore (Admin SDK, тільки режим firebase-full):

    2. DatabaseService — кеш сутностей для консистентності read-after-write (TTL 30 секунд):

    Хуки React 19

    Шар абстракції бази даних

    Контракт DatabaseService

    Реальний DatabaseService маршрутизує через BackendSelector до PostgreSQLAdapter або FirebaseAdapter. Його API запитів використовує один об'єктний параметр:

    FirebaseAdapter (Admin SDK — тільки серверна частина)

    Реальний FirebaseAdapter використовує firebase-admin/firestore, а не клієнтський Firebase SDK:

    Ключова відмінність: Приклад у попередній версії документації показував клієнтський getFirestore() з firebase/firestore — це неправильно для серверного адаптера платформи. Реальний адаптер використовує виключно firebase-admin/firestore.

    Стратегія кешування

    РівеньОбластьМеханізмРозташування
    React cache()На запитДедуплікація React 19firebase-service-manager.ts (Firebase) / Server Components
    EntityCacheTTL 30 сIn-memory MapDatabaseService.ts
    HTTP/CDNРівень сторінкиNext.js stale-while-revalidatenext.config.mjs заголовки

    Кешування sessionStorage на сервері не використовується. Кешування на стороні браузера залишається стандартним Web API патернам (не є частиною цієї кодової бази).

    Оптимізація Firebase (FirebaseAdmin SDK)

    Пакетні операції

    firebase-service-manager.ts надає:

    Для ліміту пакетів Firestore у 500 елементів та вимог до складових індексів див. документацію Firestore.

    Відстеження метрик (тільки для налагодження)

    firebase-service-manager.ts включає опціональні метрики для розробки (контролюються FIREBASE_DEBUG_LOGS=true):

    Це інструмент для розробки/налагодження — не система моніторингу продакшну. Він логує в console.log, а не в зовнішній сервіс. Бюджет продуктивності в next.config.mjs не налаштовано.

    Оптимізація збірки

    Поточний next.config.mjs

    Відсутні swcMinify, experimental.optimizeCss та performance — це функції Next.js 12/13. Next.js 16 керує SWC мініфікацією та оптимізацією CSS автоматично.

    Підсумок

    • Реальне кешування: React 19 cache() для дедуплікації запитів, EntityCache для 30-секундної консистентності read-after-write
    • Реальний Firebase адаптер: firebase-admin/firestore (Admin SDK), ніколи не клієнтський firebase/firestore
    • Реальний контракт DatabaseService: findById, query({collection, filters, orderBy, pagination}), transaction
    • Видалено вигадані патерни: SessionStorageCache, RingApiClient, маршрутизація DB_HYBRID_MODE, next.config бюджети продуктивності, фейкові KPI ("95% зниження", "17.0s", "55KB"), trackWebVitals, віртуалізація
    • Бенчмарки продуктивності не відстежуються в цій кодовій базі — результати профілювання належать до CI дашбордів, а не документації

    Режими бекенду

    Змінні середовища

    Автентифікація

    Паттерни Оптимізації Продуктивності

    Ring Platform використовує React 19 cache() для дедуплікації даних у Server Components, шар абстракції бази даних (DatabaseService + адаптери) для роботи з PostgreSQL або Firestore, та Firebase Admin SDK (firebase-service-manager.ts) для кешованих читаннь Firestore у режимі firebase-full.

    Усі приклади коду нижче посилаються на реальні файли кодової бази — lib/services/firebase-service-manager.ts, lib/database/DatabaseService.ts, lib/database/adapters/FirebaseAdapter.ts. Вигадані утиліти (session-storage кеші, кастомний RingApiClient, віртуалізація) не є частиною Ring Platform.

    React 19 Server Components та отримання даних

    Пряме отримання даних у Server Components (рекомендовано)

    Уникайте викликів власних HTTP API з Server Components — App Router Server Components можуть імпортувати сервіси безпосередньо без round-trip запиту.

    React 19 cache() для дедуплікації запитів

    React 19 cache() дедуплікує ідентичні одночасні виклики в межах одного запиту. Ring Platform використовує це у двох місцях:

    1. firebase-service-manager.ts — кешовані читання Firestore (Admin SDK, тільки режим firebase-full):

    2. DatabaseService — кеш сутностей для консистентності read-after-write (TTL 30 секунд):

    Хуки React 19

    Шар абстракції бази даних

    Контракт DatabaseService

    Реальний DatabaseService маршрутизує через BackendSelector до PostgreSQLAdapter або FirebaseAdapter. Його API запитів використовує один об'єктний параметр:

    FirebaseAdapter (Admin SDK — тільки серверна частина)

    Реальний FirebaseAdapter використовує firebase-admin/firestore, а не клієнтський Firebase SDK:

    Ключова відмінність: Приклад у попередній версії документації показував клієнтський getFirestore() з firebase/firestore — це неправильно для серверного адаптера платформи. Реальний адаптер використовує виключно firebase-admin/firestore.

    Стратегія кешування

    РівеньОбластьМеханізмРозташування
    React cache()На запитДедуплікація React 19firebase-service-manager.ts (Firebase) / Server Components
    EntityCacheTTL 30 сIn-memory MapDatabaseService.ts
    HTTP/CDNРівень сторінкиNext.js stale-while-revalidatenext.config.mjs заголовки

    Кешування sessionStorage на сервері не використовується. Кешування на стороні браузера залишається стандартним Web API патернам (не є частиною цієї кодової бази).

    Оптимізація Firebase (FirebaseAdmin SDK)

    Пакетні операції

    firebase-service-manager.ts надає:

    Для ліміту пакетів Firestore у 500 елементів та вимог до складових індексів див. документацію Firestore.

    Відстеження метрик (тільки для налагодження)

    firebase-service-manager.ts включає опціональні метрики для розробки (контролюються FIREBASE_DEBUG_LOGS=true):

    Це інструмент для розробки/налагодження — не система моніторингу продакшну. Він логує в console.log, а не в зовнішній сервіс. Бюджет продуктивності в next.config.mjs не налаштовано.

    Оптимізація збірки

    Поточний next.config.mjs

    Відсутні swcMinify, experimental.optimizeCss та performance — це функції Next.js 12/13. Next.js 16 керує SWC мініфікацією та оптимізацією CSS автоматично.

    Підсумок

    • Реальне кешування: React 19 cache() для дедуплікації запитів, EntityCache для 30-секундної консистентності read-after-write
    • Реальний Firebase адаптер: firebase-admin/firestore (Admin SDK), ніколи не клієнтський firebase/firestore
    • Реальний контракт DatabaseService: findById, query({collection, filters, orderBy, pagination}), transaction
    • Видалено вигадані патерни: SessionStorageCache, RingApiClient, маршрутизація DB_HYBRID_MODE, next.config бюджети продуктивності, фейкові KPI ("95% зниження", "17.0s", "55KB"), trackWebVitals, віртуалізація
    • Бенчмарки продуктивності не відстежуються в цій кодовій базі — результати профілювання належать до CI дашбордів, а не документації

    Режими бекенду

    Змінні середовища

    Автентифікація

    Паттерни Оптимізації Продуктивності

    Ring Platform використовує React 19 cache() для дедуплікації даних у Server Components, шар абстракції бази даних (DatabaseService + адаптери) для роботи з PostgreSQL або Firestore, та Firebase Admin SDK (firebase-service-manager.ts) для кешованих читаннь Firestore у режимі firebase-full.

    Усі приклади коду нижче посилаються на реальні файли кодової бази — lib/services/firebase-service-manager.ts, lib/database/DatabaseService.ts, lib/database/adapters/FirebaseAdapter.ts. Вигадані утиліти (session-storage кеші, кастомний RingApiClient, віртуалізація) не є частиною Ring Platform.

    React 19 Server Components та отримання даних

    Пряме отримання даних у Server Components (рекомендовано)

    Уникайте викликів власних HTTP API з Server Components — App Router Server Components можуть імпортувати сервіси безпосередньо без round-trip запиту.

    React 19 cache() для дедуплікації запитів

    React 19 cache() дедуплікує ідентичні одночасні виклики в межах одного запиту. Ring Platform використовує це у двох місцях:

    1. firebase-service-manager.ts — кешовані читання Firestore (Admin SDK, тільки режим firebase-full):

    2. DatabaseService — кеш сутностей для консистентності read-after-write (TTL 30 секунд):

    Хуки React 19

    Шар абстракції бази даних

    Контракт DatabaseService

    Реальний DatabaseService маршрутизує через BackendSelector до PostgreSQLAdapter або FirebaseAdapter. Його API запитів використовує один об'єктний параметр:

    FirebaseAdapter (Admin SDK — тільки серверна частина)

    Реальний FirebaseAdapter використовує firebase-admin/firestore, а не клієнтський Firebase SDK:

    Ключова відмінність: Приклад у попередній версії документації показував клієнтський getFirestore() з firebase/firestore — це неправильно для серверного адаптера платформи. Реальний адаптер використовує виключно firebase-admin/firestore.

    Стратегія кешування

    РівеньОбластьМеханізмРозташування
    React cache()На запитДедуплікація React 19firebase-service-manager.ts (Firebase) / Server Components
    EntityCacheTTL 30 сIn-memory MapDatabaseService.ts
    HTTP/CDNРівень сторінкиNext.js stale-while-revalidatenext.config.mjs заголовки

    Кешування sessionStorage на сервері не використовується. Кешування на стороні браузера залишається стандартним Web API патернам (не є частиною цієї кодової бази).

    Оптимізація Firebase (FirebaseAdmin SDK)

    Пакетні операції

    firebase-service-manager.ts надає:

    Для ліміту пакетів Firestore у 500 елементів та вимог до складових індексів див. документацію Firestore.

    Відстеження метрик (тільки для налагодження)

    firebase-service-manager.ts включає опціональні метрики для розробки (контролюються FIREBASE_DEBUG_LOGS=true):

    Це інструмент для розробки/налагодження — не система моніторингу продакшну. Він логує в console.log, а не в зовнішній сервіс. Бюджет продуктивності в next.config.mjs не налаштовано.

    Оптимізація збірки

    Поточний next.config.mjs

    Відсутні swcMinify, experimental.optimizeCss та performance — це функції Next.js 12/13. Next.js 16 керує SWC мініфікацією та оптимізацією CSS автоматично.

    Підсумок

    • Реальне кешування: React 19 cache() для дедуплікації запитів, EntityCache для 30-секундної консистентності read-after-write
    • Реальний Firebase адаптер: firebase-admin/firestore (Admin SDK), ніколи не клієнтський firebase/firestore
    • Реальний контракт DatabaseService: findById, query({collection, filters, orderBy, pagination}), transaction
    • Видалено вигадані патерни: SessionStorageCache, RingApiClient, маршрутизація DB_HYBRID_MODE, next.config бюджети продуктивності, фейкові KPI ("95% зниження", "17.0s", "55KB"), trackWebVitals, віртуалізація
    • Бенчмарки продуктивності не відстежуються в цій кодовій базі — результати профілювання належать до CI дашбордів, а не документації

    Режими бекенду

    Змінні середовища

    Автентифікація