[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:site:uk":3,"content:products:uk":22,"content:post:monitoring-for-three:uk":250},{"email":4,"salesEmail":4,"supportEmail":5,"phone":6,"telegram":7,"telegramUrl":8,"whatsappUrl":6,"githubUrl":9,"linkedinUrl":10,"locale":11,"footerAbout":12,"contactPromise":13,"whereBody":14,"officeCity":15,"workHours":16,"budgetRanges":17},"sales@jvdsoft.com","support@jvdsoft.com",null,"@jvdsoft_support","https:\u002F\u002Ft.me\u002Fjvdsoft_support","https:\u002F\u002Fgithub.com\u002FEvgeniyKiryanow","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fyevhenii-kirianov-54b8081ba\u002F","uk","Веб-розробка повного циклу. Київ — працюємо з клієнтами з України, ЄС і США. Власні продукти Qrenza і ShiftPlan тримаємо в продакшені самі.","Пишіть, як вам зручно — відповідаємо протягом робочого дня. По продажах sales, по підтримці продуктів support.","Київ, Україна. Працюємо віддалено з клієнтами з України, ЄС і США. Документи — договір і NDA, оплата на ФОП або юридичну особу.","Київ, Україна","Пн–Пт, 10:00–19:00 (Київ)",[18,19,20,21],"до [сума]","[сума] — [сума]","більше [сума]","ще не знаю",[23,154],{"slug":24,"status":25,"order":26,"siteUrl":27,"logoUrl":28,"heroImageUrl":29,"accentColor":30,"stack":31,"launchedYear":38,"locale":11,"name":39,"tagline":40,"summary":41,"positioning":42,"metaTitle":43,"metaDescription":44,"audience":45,"features":54,"steps":85,"plans":95,"faq":114,"gallery":136},"qrenza","live",0,"https:\u002F\u002Fqrenza.jvdsoft.com","\u002Fmedia\u002Fproducts\u002Fqrenza\u002Flogo.svg","\u002Fmedia\u002Fproducts\u002Fqrenza\u002Fhero.webp","#6366f1",[32,33,34,35,36,37],"Laravel","React","TypeScript","PostgreSQL","Tailwind CSS","Vite",2026,"Qrenza","Цифрова платформа каталогу з QR-меню та замовленнями в реальному часі","Каталог, замовлення й аналітика для будь-якого бізнесу з товарами чи послугами. Клієнт сканує QR-код і бачить меню — без застосунку, без паперу, без очікування.","Qrenza забирає паперове меню й таблиці: категорії, товари, ціни та фото ви ведете в одному місці, а клієнт відкриває каталог із QR-коду на столику, прилавку чи у вітрині. Замовлення з телефона клієнта падає прямо на дашборд, статус проходить три кроки, карта столів показує, де зараз працюють. Підходить ресторанам, кафе, барам, пекарням, магазинам, салонам і студіям — усім, у кого є перелік того, що вони продають.","Qrenza — QR-меню й цифровий каталог для бізнесу","Qrenza — платформа цифрового каталогу: QR-меню, замовлення в реальному часі, карта столів, аналітика, ролі команди та 6 мов. Продукт JVD Soft у продакшені.",[46,47,48,49,50,51,52,53],"Ресторани","Кафе та кав’ярні","Бари та нічні клуби","Пекарні та кондитерські","Магазини та крамниці","Краса та велнес","Салони та студії","Ринки та кіоски",[55,58,61,64,67,70,73,76,79,82],{"title":56,"body":57},"Розумний каталог","Категорії й позиції з фото, цінами, описами та контролем доступності — для меню, каталогу товарів або переліку послуг.",{"title":59,"body":60},"Замовлення в реальному часі","Клієнт замовляє з QR-меню, замовлення з’являється на дашборді миттєво. Три кроки статусу: нове → готується → готово.",{"title":62,"body":63},"Управління столами","Карта столів показує, де є активні замовлення. Замовлення можна переносити між столами і стежити за кожним місцем окремо.",{"title":65,"body":66},"Живий дашборд","Статистика по активних каталогах і щоденних операціях у реальному часі — з будь-якого пристрою.",{"title":68,"body":69},"Аналітика та звіти","Динаміка виручки, топ-товари, рівень скасувань і повна історія замовлень в одному дашборді.",{"title":71,"body":72},"Ролі команди","Власники, адміністратори та персонал з різним рівнем доступу. Уся команда керується з одного місця.",{"title":74,"body":75},"Багатомовність","Шість мов інтерфейсу. Каталог відкривається мовою клієнта — для двомовних і туристичних закладів.",{"title":77,"body":78},"Свій бренд і домен","Логотип, фавікон, кольори, стиль навігації, власний домен, мета-теги та Google Analytics — без плагінів.",{"title":80,"body":81},"Програма лояльності","Вбудовані бали нараховуються автоматично за кожне замовлення — щоб клієнт повертався.",{"title":83,"body":84},"Вбудовування будь-де","Повний каталог вставляється на будь-який сайт як iframe одним рядком коду.",[86,89,92],{"title":87,"body":88},"Створіть акаунт","Реєстрація за секунди, без картки. 14-денний пробний період починається одразу, з повним доступом до всіх функцій.",{"title":90,"body":91},"Побудуйте каталог","Додайте категорії та позиції — товари, страви, послуги. Фото, ціни, описи; порядок змінюється перетягуванням.",{"title":93,"body":94},"Поділіться QR-кодом","Роздрукуйте унікальний QR-код і поставте де завгодно — на столик, прилавок або вітрину. Клієнт сканує й бачить каталог одразу.",[96,104,109],{"name":97,"price":98,"note":99,"features":100,"popular":103},"[Старт]","[сума]","\u002F міс",[101,102,102],"[Обмеження плану]","[Що входить]",false,{"name":105,"price":98,"note":99,"features":106,"popular":108},"[Робочий]",[107,102,102],"[Усе зі «Старту», плюс]",true,{"name":110,"price":98,"note":99,"features":111,"popular":103},"[Команда]",[112,102,113],"[Усе з «Робочого», плюс]","Пріоритетна підтримка",[115,118,121,124,127,130,133],{"q":116,"a":117},"Чи є безкоштовний пробний період?","Так — 14 днів із повним доступом до всіх функцій, без кредитної картки. Пробний період починається одразу після реєстрації.",{"q":119,"a":120},"Чи можна оновлювати каталог у реальному часі?","Так. Зміна ціни, опису чи доступності позиції видна клієнтам одразу — QR-код перепечатувати не потрібно, він завжди веде на актуальний каталог.",{"q":122,"a":123},"Чи потрібно клієнтам завантажувати додаток?","Ні. Каталог відкривається у браузері телефона після сканування QR-коду. Інтерфейс зроблений mobile-first, тому працює на будь-якому пристрої.",{"q":125,"a":126},"Чи можна використовувати власний домен?","Так. Можна підключити свій домен і поставити логотип, фавікон та кольори бренду — каталог виглядатиме як частина вашого сайту.",{"q":128,"a":129},"Для яких бізнесів підходить Qrenza?","Для будь-якого, у кого є перелік товарів або послуг: ресторани, кафе, бари, пекарні, магазини, салони краси, студії, ринки й кіоски.",{"q":131,"a":132},"Чи можна відстежувати замовлення клієнтів?","Так. Кожне замовлення проходить три кроки статусу на дашборді, а карта столів показує, де воно зараз. Уся історія залишається в системі.",{"q":134,"a":135},"Де зберігаються дані?","У нашій інфраструктурі: вхід через email\u002Fпароль або Google OAuth, токен-сесії з підтвердженням email, доступи розділені за ролями.",[137,142,146,150],{"src":138,"alt":139,"width":140,"height":141},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Forders.webp","Дашборд Qrenza із замовленнями в реальному часі та картою столів",1280,588,{"src":143,"alt":144,"width":140,"height":145},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Fmenu.webp","QR-меню Qrenza на телефоні клієнта",572,{"src":147,"alt":148,"width":140,"height":149},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Fsettings.webp","Налаштування закладу в Qrenza: бренд, тема, навігація, SEO",879,{"src":151,"alt":152,"width":140,"height":153},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Ffeatures.webp","Перелік можливостей платформи Qrenza",1020,{"slug":155,"status":25,"order":156,"siteUrl":157,"logoUrl":158,"heroImageUrl":159,"accentColor":160,"stack":161,"launchedYear":38,"locale":11,"name":162,"tagline":163,"summary":164,"positioning":165,"metaTitle":166,"metaDescription":167,"audience":168,"features":169,"steps":200,"plans":210,"faq":217,"gallery":233},"shiftplan",1,"https:\u002F\u002Fshifts.jvdsoft.com","\u002Fmedia\u002Fproducts\u002Fshifts\u002Flogo.svg","\u002Fmedia\u002Fproducts\u002Fshifts\u002Fhero.webp","#f97316",[32,33,34,35,36,37],"ShiftPlan","Графік змін для команд — без таблиць і без «хто сьогодні працює?»","Створюйте, призначайте й публікуйте графік змін за хвилини. Команда отримує сповіщення автоматично, накладки система знаходить сама.","ShiftPlan замінює таблицю в Excel і чат із питаннями «хто сьогодні на зміні». Графік будується на календарі з видами місяць\u002Fтиждень\u002Fдень, зміни можна повторювати за розписом і розфарбовувати кольорами, на одну зміну призначається кілька людей. Щойно графік опубліковано, кожен бачить свої зміни й отримує push-сповіщення про будь-яку зміну; накладки й подвійні бронювання система блокує одразу. Для менеджера — статистика змін і навантаження команди.","ShiftPlan — графік змін і планування роботи команди","ShiftPlan — планування змін для команд: календар, повторювані зміни, кольори, кілька виконавців, сповіщення, аналітика навантаження. Продукт JVD Soft.",[],[170,173,176,179,182,185,188,191,194,197],{"title":171,"body":172},"Візуальний графік","Зміни будуються на чистій календарній дошці з видами місяць, тиждень і день.",{"title":174,"body":175},"Повторювані зміни","Зміна, що повторюється щодня, щотижня, щомісяця або за власним розписом — одним кліком.",{"title":177,"body":178},"Кольори без обмежень","Кольорове кодування змін: необмежені власні кольори або готова палітра.",{"title":180,"body":181},"Керування командою","Кілька виконавців на одну зміну, роботa з ролями й облік того, хто коли працює.",{"title":183,"body":184},"Аналітика й навантаження","Статистика змін, графіки співробітників і розуміння навантаження команди.",{"title":186,"body":187},"Розумні сповіщення","Миттєві push-сповіщення про будь-яку зміну графіка — ніхто не пропустить свою зміну.",{"title":189,"body":190},"Контроль накладок","Система сама знаходить накладки й подвійні бронювання і не дає їх зберегти.",{"title":192,"body":193},"Mobile-first","Адаптивний інтерфейс однаково працює на телефоні, планшеті й десктопі.",{"title":195,"body":196},"Шифрування","Дані шифруються під час передавання і у сховищі — графіки залишаються вашими.",{"title":198,"body":199},"Відповідність і бекапи","GDPR, CCPA і SOC 2, щоденні автоматичні резервні копії з можливістю відновлення.",[201,204,207],{"title":202,"body":203},"Створіть зміни","Побудуйте графік на календарі: додайте зміни, задайте час, призначте людей.",{"title":205,"body":206},"Призначте співробітників","На одну зміну призначається один або кілька людей, кольорове кодування показує все з першого погляду.",{"title":208,"body":209},"Сповістіть команду","Команда одразу отримує сповіщення про свій графік — усі в курсі, завжди.",[211,213,215],{"name":97,"price":98,"note":99,"features":212,"popular":103},[101,102,102],{"name":105,"price":98,"note":99,"features":214,"popular":108},[107,102,102],{"name":110,"price":98,"note":99,"features":216,"popular":103},[112,102,113],[218,221,224,227,230],{"q":219,"a":220},"Скільки коштує почати?","Почати можна безкоштовно й перейти на платний план пізніше — реєстрація не вимагає оплати.",{"q":222,"a":223},"Що буде, якщо дві зміни накладуться?","Система сама знаходить накладки й подвійні бронювання і повідомляє про них одразу, ще до публікації графіка.",{"q":225,"a":226},"Як команда дізнається про зміни в графіку?","Кожен співробітник отримує миттєве push-сповіщення. Оновлення приходять у реальному часі, тому переписка «а хто сьогодні?» зникає.",{"q":228,"a":229},"Чи можна працювати з телефона?","Так. Інтерфейс адаптивний і зроблений mobile-first — на телефоні, планшеті й десктопі однаково.",{"q":231,"a":232},"Наскільки захищені дані графіка?","Дані шифруються під час передавання і у сховищі, сервіс відповідає GDPR, CCPA і SOC 2, резервні копії створюються щодня.",[234,238,242,246],{"src":235,"alt":236,"width":140,"height":237},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Ffeatures.webp","Можливості ShiftPlan: календар, повторювані зміни, кольори, команда",696,{"src":239,"alt":240,"width":140,"height":241},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Fhow.webp","Три кроки роботи в ShiftPlan",476,{"src":243,"alt":244,"width":140,"height":245},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Fwhy.webp","Чому команди обирають ShiftPlan",580,{"src":247,"alt":248,"width":140,"height":249},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Fsecurity.webp","Безпека ShiftPlan: шифрування, відповідність, резервні копії",508,{"slug":251,"category":252,"tags":253,"coverImageUrl":6,"coverImageAlt":258,"readingMinutes":259,"featured":103,"publishedAt":260,"updatedAt":261,"locale":11,"title":262,"excerpt":263,"lead":264,"bodyHtml":265,"metaTitle":266,"metaDescription":267,"takeaways":268,"faq":273,"author":280,"related":286},"monitoring-for-three","devops",[254,255,256,257],"monitoring","alerts","prometheus","uptime","",6,"2026-04-30T09:00:00.000Z","2026-08-28T15:57:52.760Z","Моніторинг для команди з трьох: мінімум, який справді працює","Не потрібен повний стек спостережуваності, щоб перестати дізнаватись про падіння від клієнтів. Чотири сигнали, три канали сповіщень і одне правило, яке рятує від вигорання на алертах.","Мала команда зазвичай має два стани моніторингу: немає нічого, або є дашборд, у який ніхто не дивиться. Обидва означають одне — про падіння ви дізнаєтесь від користувача. Ось мінімум, який змінює це за один день.","\u003Ch2 id=\"signals\">Чотири сигнали, з яких варто почати\u003C\u002Fh2>\u003Cp>Не «зберемо всі метрики», а чотири, які відповідають на питання «чи працює продукт»:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Доступність зовні.\u003C\u002Fstrong> Проба з іншої машини на головну сторінку. Якщо вона не відповідає, решта метрик неважлива.\u003C\u002Fli>\u003Cli>\u003Cstrong>Частка помилок.\u003C\u002Fstrong> Відсоток відповідей 5xx. Не абсолютна кількість — вона росте разом із трафіком.\u003C\u002Fli>\u003Cli>\u003Cstrong>Латентність по перцентилю.\u003C\u002Fstrong> p95, не середнє. Середнє ховає саме тих користувачів, яким погано.\u003C\u002Fli>\u003Cli>\u003Cstrong>Довжина черги.\u003C\u002Fstrong> Якщо фонові задачі накопичуються, лист про заявку прийде завтра, і формально все «працює».\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"probe\">Зовнішня проба — найдешевший сигнал\u003C\u002Fh2>\u003Cp>Внутрішній health-check не бачить впалого nginx, простроченого сертифіката й помилки в DNS. Проба ззовні бачить усе це одразу. Достатньо запиту раз на хвилину з фіксацією коду відповіді й часу.\u003C\u002Fp>\u003Cp>Зберігайте не кожну пробу, а денний підсумок: скільки успішних, скільки повільних, скільки провалених. Тоді 90 днів історії — це 90 рядків на сервіс, а не сотні тисяч, і сторінка статусу будується миттєво.\u003C\u002Fp>\u003Ch2 id=\"incidents\">Інцидент замість потоку алертів\u003C\u002Fh2>\u003Cp>Головна причина, чому алерти перестають читати: одне падіння генерує сорок повідомлень. Лікується моделлю інциденту: коли сервіс уперше перестав відповідати — відкриваємо інцидент і надсилаємо одне сповіщення. Поки він відкритий — мовчимо. Коли відновився — надсилаємо друге.\u003C\u002Fp>\u003Cp>Два повідомлення на подію замість сорока. Це різниця між алертами, які читають, і алертами, для яких зробили окрему папку.\u003C\u002Fp>\u003Cblockquote>\u003Cp>Алерт, на який ніхто не реагує, гірший за відсутність алерту: він створює відчуття, що ви під контролем.\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2 id=\"channels\">Канали\u003C\u002Fh2>\u003Cp>Три штуки, і кожен має свою роль:\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Месенджер\u003C\u002Fstrong> (Telegram, Slack) — те, що треба побачити зараз. Тільки інциденти.\u003C\u002Fli>\u003Cli>\u003Cstrong>Пошта\u003C\u002Fstrong> — те, що можна прочитати ввечері: тижневий підсумок, вичерпані спроби відправки, аномалії.\u003C\u002Fli>\u003Cli>\u003Cstrong>Сторінка статусу\u003C\u002Fstrong> — те, що читає клієнт замість того, щоб писати вам.\u003C\u002Fli>\u003C\u002Fol>\u003Ch2 id=\"metrics\">Метрики й помилки\u003C\u002Fh2>\u003Cp>Prometheus-ендпоїнт у застосунку — це десяток рядків, і він дає латентність, помилки й довжину черги без зовнішніх сервісів. Навіть якщо у вас поки немає Prometheus, ендпоїнт краще додати одразу: коли він знадобиться, це буде найгірший момент щось інтегрувати.\u003C\u002Fp>\u003Cp>Окремо — збір помилок зі стектрейсом. Логи контейнера гортати неможливо, а сортування «однакових помилок за частотою» економить години. Sentry або сумісний із ним самохост — питання бюджету, не архітектури.\u003C\u002Fp>\u003Ch2 id=\"rule\">Одне правило\u003C\u002Fh2>\u003Cp>Кожен алерт має відповідати на питання «що я маю зробити просто зараз». Якщо відповіді немає — це не алерт, а метрика для дашборда. Дотримання цього правила зберігає моніторинг живим довше, ніж будь-який інструмент.\u003C\u002Fp>","Моніторинг для малої команди: мінімум, що справді працює","Чотири сигнали, зовнішня проба, модель інциденту замість потоку алертів, три канали сповіщень і Prometheus-ендпоїнт. Мінімальний моніторинг за один день.",[269,270,271,272],"Зовнішня проба бачить те, чого не бачить внутрішній health-check","Денні підсумки замість кожної проби — 90 днів історії в 90 рядках","Модель інциденту: два повідомлення на подію замість сорока","Алерт без відповіді на «що робити зараз» — це метрика, а не алерт",[274,277],{"q":275,"a":276},"Чи потрібен Prometheus малій команді?","Сам сервер — не обов’язково одразу. Ендпоїнт із метриками варто додати відразу: це десяток рядків, і він знадобиться саме тоді, коли інтегрувати щось буде найгірше.",{"q":278,"a":279},"Як довго зберігати історію статусу?","Денних підсумків за 90 днів вистачає і для сторінки статусу, і для розмови про SLA. Сирі проби зберігати немає сенсу — вони ростуть нескінченно і нічого не додають.",{"slug":281,"name":282,"role":283,"avatarUrl":284,"photoUrl":285},"yevhenii-kirianov","Євгеній","Фронтенд і фулстек, інтерфейси, продуктова розробка","\u002Fmedia\u002Fteam\u002Fyevhenii-avatar.webp","\u002Fmedia\u002Fteam\u002Fyevhenii.webp",[287,298,310],{"slug":288,"category":289,"tags":290,"coverImageUrl":6,"coverImageAlt":258,"readingMinutes":293,"featured":103,"publishedAt":294,"updatedAt":295,"locale":11,"title":296,"excerpt":297},"architecture-small-team","architecture",[289,291,292],"monolith","team",11,"2026-06-24T09:00:00.000Z","2026-08-28T15:57:52.490Z","Архітектура для команди з трьох людей","Мікросервіси коштують команді втричі дорожче, ніж здається на діаграмі. Що обрати, коли розробників троє, а продукт має жити роками: модульний моноліт, спільні контракти й межі, які видно в коді.",{"slug":299,"category":252,"tags":300,"coverImageUrl":6,"coverImageAlt":258,"readingMinutes":305,"featured":108,"publishedAt":306,"updatedAt":307,"locale":11,"title":308,"excerpt":309},"zero-downtime-deploy",[301,302,303,304],"deploy","docker","postgres","ci-cd",9,"2026-07-28T09:00:00.000Z","2026-08-28T15:57:52.378Z","Деплой без простою на одному сервері: що насправді потрібно","Zero-downtime не починається з Kubernetes. Він починається з міграцій, які сумісні зі старим кодом, і з health-check, який каже правду. Розбираємо порядок кроків на звичайному VPS з docker compose.",{"slug":311,"category":312,"tags":313,"coverImageUrl":6,"coverImageAlt":258,"readingMinutes":317,"featured":103,"publishedAt":318,"updatedAt":319,"locale":11,"title":320,"excerpt":321},"website-cost-2026","money",[314,315,316],"budget","estimation","process",7,"2026-07-11T09:00:00.000Z","2026-08-28T15:57:52.399Z","Скільки коштує сайт у 2026 році і чому вилка така широка","Одна й та сама фраза «нам потрібен сайт» означає роботу на тиждень і роботу на три місяці. Розбираємо, з чого складається ціна, які пункти зникають з дешевих пропозицій і що спитати перед підписанням."]