Документація · генерується із застосунку

Кожна сторінка, блок, іконка і слово — в одному місці.

Це не опис «як має бути», а зліпок того, що зібрано: 11 маршрутів, 8 голосів у каталозі, 138 статей словника, 20 токенів, 21 іконок. Значення токенів читаються з живого CSS — перемкніть тему й вони зміняться.

Архітектура

Три частини: сайт, API і база.

apps/web · Next 16

App Router11 маршрутів, усі пререндерені статично
lib/swarm.tsWebGL-рій: 5 200 частинок, шейдери на точках
lib/stage.tsxгід, репліки, дії з бази знань, тости
components/chromeшпиль, drawer, гід, переходи між сторінками
styles/токени + перенесений CSS, сторінкові файли скоупені

apps/api · NestJS 11

modules/voicesкаталог голосів, ціна за моделлю
modules/dictionaryпошук, зведення, stress/check
modules/plansтарифи, пакети кредитів, розрахунок
modules/generationsчерга синтезу, списання кредитів у транзакції
prisma/схема з 9 моделей, міграції, сідер

PostgreSQL 16

Voiceголос, провайдер, тарифна модель, медіа
DictionaryEntryслово, наголос, категорія, помилка
Plan / CreditPackтарифи й пакети
User / Projectакаунт і проєкти
Generation / ApiKeyчерга й ключі з бюджетами
Сторінки й блоки

Що всередині кожного маршруту.

/один скрол із шести сцен6 секцій
1Студія#студія
2Голоси#голоси
3Live#live
4API · MCP#api-mcp
5Ціни#ціни
6Старт#старт
/studioкабінет, вісім розділів8 секцій
1Студія#студія
2Голоси#голоси
3Словник#словник
4Історія#історія
5Live#live
6Ключі#ключі
7Білінг#білінг
8Запис#запис
/dictionaryвідкритий словник наголосів5 секцій
1Пошук#пошук
2Карта наголосів#карта-наголосів
3Типові помилки#типові-помилки
4API#api
5Старт#старт
/cardшерабельна аудіокартка3 секцій
1Картка#картка
2Зробити свою#зробити-свою
3Старт#старт
/pricingтарифи й калькулятор5 секцій
1Тарифи#тарифи
2Калькулятор#калькулятор
3Порівняння#порівняння
4Що входить#що-входить
5Старт#старт
/businessціна за запитом8 секцій
1Для бізнесу#для-бізнесу
2Кому#кому
3Що входить#що-входить
4Як рахуємо#як-рахуємо
5Процес#процес
6Кейси#кейси
7Запит#запит
8Старт#старт
/integrationsREST · MCP · автоматизації · телефонія6 секцій
1Огляд#огляд
2REST API#rest-api
3MCP#mcp
4Автоматизації#автоматизації
5Телефонія#телефонія
6Старт#старт
/actorsмаркетплейс для дикторів7 секцій
1Дикторам#дикторам
2Як це працює#як-це-працює
3Відкриті сесії#відкриті-сесії
4Спробувати запис#спробувати-запис
5QA і вимоги#qa-і-вимоги
6Заробіток#заробіток
7Заявка#заявка
/loginвхід і реєстрація1 секцій
1Вхід#вхід
/legalконспект політики1 секцій
1Конфіденційність#конфіденційність
/docsця сторінка8 секцій
1Карта сайту#карта-сайту
2Архітектура#архітектура
3Сторінки#сторінки
4Іконки#іконки
5Токени#токени
6Гід#гід
7API#api
8Чекліст#чекліст
Іконки

Один набір: 20×20, лінія 1.6, кругла кришка.

Actors20×20
Api20×20
Business20×20
Card20×20
Chevron20×20
Clock20×20
Close20×20
Dictionary20×20
Docs20×20
HandsFree20×20
Home20×20
Mic20×20
MoonSun20×20
Phone20×20
Play20×20
Pricing20×20
Record20×20
Send20×20
Sound20×20
Studio20×20
User20×20
Токени тем

Значення — з живого CSS.

Активна тема: dark. Перемкніть її в меню — таблиця перерахується.

ТокенЗначенняДе застосований
--bgтло сторінки
--inkосновний текст і заголовки
--ink-2другорядний текст
--mutedмітки, підписи, mono-текст
--panelмодалки, попапи, drawer
--panel-2вкладені панелі
--emberакцент: наголоси, кнопки, іскри
--ember-2глибокий вогонь у градієнтах
--ember-3світлий блик
--ember-inkтекст на янтарній кнопці
--bronzeнаголос у логотипі
--bronze-2бронзові мітки у світлій темі
--okуспіх, статус ON
--lineволосяні лінії, межі карток
--line-2активні межі, фокус
--glassскло першого рівня
--glass-2скло другого рівня, hover
--glass-3найщільніше скло
--glowсяйво навколо акценту
--glow-2м'яке сяйво карток
Гід і голос

База знань і голосові команди.

У базі 24 відповідей на 3 мовах. Гід також виконує дії: прокрутити до секції, перемкнути тему чи мову, відкрити панель студії.

Ключі запитуВідповідь
що такехто вищо цеhominгомінHOMIN — студія озвучки з власними українськими голосами. Наголоси — як у словнику, відповідь у розмові — без паузи. Усе, що на цій сторінці, — і є продукт.
коштцінтарифбезкоштскількиБезкоштовно: 10 000 символів на місяць і шість голосів без картки. Pro — $19 за 300 000 символів і редактор наголосів, Business — $99 із HOMIN Live і API. Показую ціни.
1 млнмільйонпорахуйМільйон символів — близько 18 годин аудіо. Окремо це 20 000 кредитів ≈ $100, тож вигідніше Business за $99 із 2 млн у пакеті. Поставив повзунок.
кредитКредити — єдина валюта API і студії: $10 = 2 000 кредитів. Neo — 6 за 1 000 символів, Pro — 20, Live — від 12 за хвилину. Не згорають 12 місяців.
claudecursormcpchatgptагентасистентHOMIN — це MCP-сервер: один рядок у конфігурації Claude Desktop, Claude Code чи Cursor, і ваш асистент уміє озвучувати українською, перевіряти наголоси й обирати голоси. Показую.
конфіг{"mcpServers":{"homin":{"command":"npx","args":["-y","@homin/mcp"],"env":{"HOMIN_API_KEY":"hm_live_…"}}}} — далі асистент бачить інструменти tts.speak, stress.check, voices.list, usage.get.
apisdkopenaiкодінтегрпідключAPI сумісний з OpenAI SDK: baseURL → https://api.homin.ua/v1, модель → homin-pro-1. Решта коду лишається. Під який стек показати?
nodeNode.js: створіть клієнт OpenAI з baseURL https://api.homin.ua/v1 і викличте audio.speech.create з моделлю homin-pro-1. Відкрив приклад.
pythonPython: OpenAI(base_url="https://api.homin.ua/v1") і client.audio.speech.create(model="homin-pro-1", voice="solomiia", input=…). Відкрив приклад.
curlcurl: POST https://api.homin.ua/v1/audio/speech із Bearer-ключем і JSON {model, voice, input} — у відповідь mp3. Відкрив приклад.
n8nzapiermakeвебхукавтоматЄ модулі для n8n, Make і Zapier: «новий текст → аудіо в Drive чи Telegram» збирається за п'ять хвилин. Вебхуки: generation.completed, budget.threshold.
телефонtwiliosipliveколцентрдзвінlivekitpipecatHOMIN Live відповідає потоком — перша фраза за ~300 мс. Підключається до Twilio, SIP/Asterisk, LiveKit і Pipecat. Показати демо дзвінка?
демо дзвінкатак, демоВідкриваю «Розмову»: напишіть репліку клієнта — відповім голосом без паузи. У прототипі це імітація, у продукті — потік.
коштує livelive коштLive рахується за хвилини: від 12 кредитів за хвилину, тобто близько $0,06. У Business входить разом із телефонією й бюджетами API.
голосголосисоломіяостапмирославабогданяриналевШість голосів, записаних у студії з дикторами: Соломія, Остап, Мирослава, Богдан, Ярина, Лев. Права викуплені — комерційне використання без обмежень. Натисніть будь-який.
власнийбрендсвій голосдикторЗаписуємо вашого диктора в Києві або Варшаві — голос стає ексклюзивним. Або диктор записує речення в нашому застосунку й отримує оплату за кожне.
наголоспомилКлацніть на слово в тексті — покажу варіанти, а слово з двома значеннями (за́мок / замо́к) позначу окремо. Виправлення лишиться у словнику проєкту.
englishанглПеремикаю на англійську.
polskiпольськPrzełączam na polski.
мовУкраїнська, англійська, польська — перемикач угорі. Голоси теж трьома мовами, тож один сценарій озвучується для трьох ринків.
світлтемнтемаПеремикаю тему.
акаунтреєстрпочатиспробзареєстрРеєстрація безкоштовна і без картки — приватна бета, доступ протягом кількох днів. Кнопка угорі праворуч.
правакомерцліцензУсі голоси записані з дикторами за договором, права викуплені повністю — реклама, книги, відео й продукти без доплат.
послухатипрограйвідтвориВмикаю.
API

Те, що вже підняв Nest.

Базова адреса http://localhost:4000/v1 у розробці. Каталог у базі — 12 голосів разом зі сторонніми провайдерами.

GET/v1/healthпроцес і доступність бази
GET/v1/voicesкаталог; ?model=neo|pro|live
GET/v1/voices/:slugодин голос
GET/v1/dictionaryпошук за словом
GET/v1/dictionary/statsкількість статей за категоріями
POST/v1/stress/checkрозставляє наголоси, омографи — варіантами
GET/v1/plansтарифи
GET/v1/credit-packsпакети кредитів
GET/v1/quoteрозрахунок як у калькуляторі
POST/v1/audio/speechставить генерацію в чергу, списує кредити
GET/v1/generationsісторія
GET/v1/usageбаланс і витрати
Чекліст

Що перевіряємо перед злиттям.

Зелене — на кожній збірці

  • типізація без помилок: tsc --noEmit у web і api
  • лінт без помилок: правила Next 16 (React Compiler)
  • збірка: 11 маршрутів пререндерені статично
  • дві теми × три ширини (1440 / 900 / 390)
  • жодного запиту до сторонніх хостів у рантаймі — шрифти self-hosted
  • аудіо, портрети й відео — власна статика, без data-URI
Ще не зроблено: автентифікація й ключі, воркер синтезу, словники EN/PL, дані сторінок із API.