Останні статті
Думки про розробку, технології та найкращі практики
Стабільність sitemap: чому lastmod ніколи не має бути new Date()
Поширена помилка у Next.js sitemap: встановлення lastmod на поточну дату при кожному білді. Google бачить кожну сторінку як «оновлену» при кожному деплої, що розмиває пріоритет сканування. Ось виправлення.
Деплой Next.js на Vercel vs Fly vs Railway: реальні цифри з 3 клієнтських проєктів
Я деплоїв продакшн Next.js застосунки на Vercel, Fly.io і Railway. Ось реальні витрати, час холодних стартів, досвід деплою і компроміси з реальних проєктів — не синтетичні бенчмарки.
Міграція з Tailwind 3 на Tailwind 4: шлях за 90 хвилин
Я мігрував Next.js проєкт із 40 компонентів із Tailwind 3 на Tailwind 4 за 90 хвилин. Ось покрокова інструкція, що зламалось, що пропустив codemod, і один підводний камінь, який коштував мені 20 хвилин.
Dependabot для сольного розробника: групований конфіг, який я реально шипаю
Dependabot без конфігурації надсилає 30 PR на тиждень і перетворюється на шум, який ти ігноруєш. Ось групований конфіг, що надсилає 2–3 PR на тиждень із значущими оновленнями — setup, який я використовую на кожному клієнтському проєкті.
Progressive enhancement в епоху RSC: що працює, що — ні
Server Components змінили, які патерни progressive enhancement взагалі реальні. Форми — краще, ніж будь-коли. Клієнтська інтерактивність потребує більше думання. Ось що я виніс зі shipped RSC-застосунків на реальних юзерах.
Кукі-банери по-правильному (і за законом) — мінімум для Словаччини/ЄС
Більшість кукі-банерів або нелегальні (попередньо обрані чекбокси, немає кнопки відмови), або надмірні (ентерпрайз-платформи згоди для сайту в 5 сторінок). Ось мінімальний легальний сетап для малих сайтів у ЄС.
A/B-тестування на малотрафіковому сайті: коли працює, коли карго-культ
У більшості маленьких сайтів недостатньо трафіку, щоб A/B-тести давали реальні результати. Ось математика, коли це працює, що робити замість, і як не обдурити себе статистикою.
Оптимізація зображень у Next.js 16: що змінилося, за чим тягнутися
Обробка зображень у Next.js значно еволюціонувала. Ось поточний стан next/image, коли його використовувати, коли пропускати, і оптимізації, які реально рухають Lighthouse.
Генерація OG-зображень у Next.js 16 без безсонних ночей
Динамічні OG-зображення роблять посилання професійними в Twitter та Slack. Ось сетап, який працює в продакшні без сюрпризів — і підходи, від яких я відмовився.
Schema.org для сервісного бізнесу: JSON-LD, який має бути в кожному портфоліо
Більшість портфоліо розробників шиплять нуль структурованих даних. Ось 4 блоки JSON-LD, які допомагають Google зрозуміти сервісний бізнес — з копіпаст-кодом для Next.js.
Postgres vs DynamoDB vs SQLite для нового SaaS: чесний дефолт
Кожному новому SaaS потрібна база даних. У Postgres, DynamoDB та SQLite у кожного своя ніша. Ось коли обирати кожну — на основі проєктів, які я реально шипив.
Server Actions у продакшні: 4 речі, які я більше не повторю
Server Actions спрощують мутації в Next.js. Але після шипінгу на трьох клієнтських проєктах я зібрав чотири патерни, які виглядали нормально в розробці й ламалися в продакшні.
Після запуску: 30-денний план стабілізації, який варто вимагати від розробника
Перші 30 днів після запуску — період, коли спливає більшість проблем, яких можна було уникнути. Ось план по тижнях, який я запускаю на кожному клієнтському проєкті — і що попросити у розробника, якщо він не пропонує подібного.
App Router vs Pages Router у 2026: ще актуальне питання?
App Router в Next.js стабільний вже понад два роки. Pages Router досі працює. Якщо починаєш новий проєкт або підтримуєш існуючий — ось чесний стан справ у 2026.
Фіча, від якої ми відмовили клієнта — і чому він потім подякував
Клієнт хотів real-time спільне редагування в MVP. Ми сказали ні. Через шість місяців після запуску він сказав, що це було найкраще спільне рішення. Чому.
23 пункти передзапускового чекліста, який я проганяю перед кожним клієнтським запуском
Кожен клієнтський проєкт отримує цей чекліст перед запуском. 23 пункти по безпеці, продуктивності, SEO, моніторингу та юридичних питаннях. Більшість займають 5 хвилин. Разом запобігають 90% післязапускових пожеж.
Вибір CMS для Next.js-сайту: Sanity, Payload чи чистий MDX?
Я шипив Next.js-проєкти з усіма трьома. Коли кожен з них — правильний вибір, що ламається на масштабі, і чому я за замовчуванням беру чистий MDX для більшості solo-dev сайтів.
Коли Lighthouse CI впав на 20 балів — 8 годин на пошук
Оцінка продуктивності впала з 96 до 76 за ніч. Ні змін коду, ні нових залежностей. Причина: комбінація затримки Google Fonts з edge-сервера та зображення, що не було lazy-loaded.
Як вести щотижневі демо з розробником, щоб ніщо не здивувало на запуску
Щотижневе демо — найефективніший інструмент для утримання MVP на курсі. Точний формат, який я використовую з кожним клієнтом: що показувати, що питати, які червоні прапорці відстежувати.
GDPR для невеликого SaaS: 5-годинний сетап, якого достатньо
Не потрібен юридичний аудит за €10K, щоб бути GDPR-комплаєнтним. Мінімально життєздатний сетап, який я реалізую для кожного EU-орієнтованого SaaS: що робити, що пропустити, що реально важливо.
vercel.json, що мовчки зламав мій сайтмап на місяць
Одне правило редиректу в vercel.json змусило сайтмап повертати HTML замість XML. Google перестав індексувати нові сторінки на 4 тижні. Як я знайшов і зневадив.
Технічне SEO, яке кожен розробник має шипити за замовчуванням (і яке більшість пропускає)
12-пунктний чекліст технічного SEO, який я проганяю на кожному Next.js-проєкті. Більшість розробників пропускають мінімум 5 з них. Кожен пункт — менше 30 хвилин на реалізацію.
Типізовані змінні оточення в Next.js без t3-env
40-рядковий сетап для повністю типізованих, валідованих змінних оточення в Next.js. Нуль залежностей, рантайм-валідація при старті та IntelliSense скрізь.
Чому мій Stripe тест-режим пройшов, а продакшн зламався
Все працювало в Stripe test mode. Потім ми вийшли в прод — і платежі мовчки зависли. Коренева причина: комбінація підпису вебхуків, idempotency keys та поля метаданих, яке тест-режим ігнорує.
Патерни лендінгів, що реально рухають конверсію для B2B SaaS
Я побудував 12+ SaaS-лендінгів. Ці 7 патернів стабільно піднімають конверсію — не тому що хитрі, а тому що прибирають тертя саме в тих місцях, де відвідувачі вагаються.
Налаштування Sentry, що ловить корисні помилки (а не шум)
Мій продакшн-конфіг Sentry для Next.js: фільтрація гідраційного спаму, групування за причиною та алерти на те, що реально важливо. З реальними прикладами конфігу.
QR check-in на масштабі: 12K+ сканувань без єдиного збою
Як я побудував систему QR check-in, що обслуговує площадки на 3,000 місць з офлайн-підтримкою, JWT-підписом квитків і часом сканування до 200мс. Архітектура, код і продакшн-числа.
next-intl vs next-i18next: вартість міграції, яку я реально заплатив
Я мігрував продакшн Next.js сайт з next-i18next на next-intl. Чому, скільки зайняло, що зламалося і чи було воно того варте.
Чому ваш Upwork MVP застряг (і що робити замість цього)
Модель найму Upwork ламається для MVP. Чому це трапляється, патерн за кожним застряглим проєктом, який я рятував, та альтернатива, що реально випускає.
Real-time WebSocket патерни для тикетингу та чату: продакшн-плейбук
Патерни з двох продакшн-систем: тикетинг-платформа з 12K одночасних виборів місць та командний чат з індикаторами присутності. Що працює, що ні, і архітектура за обома.
Vercel vs Cloudflare vs self-hosted Next.js: таблиця вартості та DX у 2026
Реальні витрати з 3 клієнтських деплоїв. Де Vercel вартий своїх грошей, де Cloudflare економить, і коли self-hosting має сенс. Цифри, не думки.
Що випускати в MVP, а що урізати — з 5 реальними прикладами
Найскладніше в скоупінгу MVP — не збірка, а рішення, що не збирати. П'ять реальних проєктів, п'ять списків урізань і фреймворк, який я використовую для рішень.
Баг, що проявився лише на iPhone SE
Чекаут, що працював на кожному пристрої, окрім 4-дюймового екрана. Як тач-таргет 44px, фіксований футер та адресна строка Safari склалися в баг, який ніхто не міг відтворити в офісі.
Supabase vs Railway vs Neon: цінові пороги і де кожен починає кусатися
Три варіанти хостингу Postgres, на яких я відвантажував у продакшн. Де кожен дешевший, де дорожчає, і вартість міграції, про яку ніхто не каже.
Нативний застосунок чи мобільний веб: дерево рішень для фаундера
Не технологічний спір — бізнес-рішення. Коли натив вартий своїх грошей, коли веб-застосунку достатньо, і 5 запитань, що роблять відповідь очевидною.
Червоні прапорці при наймі розробника для стартапу
Сімнадцять тривожних сигналів на дзвінках, у портфоліо та договорах — ті, що засновники зазвичай помічають заднім числом і шкодують, що не розгледіли раніше.
Індекс у Postgres, на пошук якого пішло 3 дні
Запит дашборду, що мав відпрацьовувати за 40ms, займав 6 секунд. Фікс — одна команда CREATE INDEX. Знайти, яка саме, зайняло три дні.
Offline-first React Native: як ми зберегли вибір місць плавним у потязі на 3G
Архітектура, що зробила пікер на 12K місць миттєвим при 0 смужках сигналу. Синхронізація стану, оптимістичні записи, черга, що переживає kill застосунку, і крайові випадки, про які ніхто не попереджає.
Як правильно відвантажити i18n у Next.js: роутинг, SEO і граблі RSC
Помилки i18n, які проходять код-ревʼю і ламаються у продакшні — петлі middleware, canonical-теги, пастки hreflang і крайовий випадок серіалізації RSC, що мовчки зʼїдає переклади.
Три врятовані проєкти в цифрах: у що реально обійшовся «дешевий розробник»
Три реальні проєкти, які прийшли до мене зламаними. Що пішло не так, скільки коштувало полагодити, і математика, що показує, чому «дешевий» варіант виявився найдорожчим.
Я видалив rate limiting із контактної форми. Ось чому.
Rate limiting — рефлекс. На реальній портфоліо-формі він нічого не вирішив, додав залежність від Redis і зламав легітимні відправки. Чесна математика, коли його пропускати.
Stripe vs Lemon Squeezy vs Paddle: реальні трейдофи з відвантаження трьох чекаутів
Різниця в податках, цінах та інтеграціях, яка спливає тільки після перших 100 платячих клієнтів — і режими відмови, унікальні для кожного.
Що реально купують €12K: порядковий розклад вартості реального MVP
Не гіпотетика. Реальний проєкт, реальні статті витрат, реальні години. Куди йдуть гроші, коли ви наймаєте solo full-stack розробника для MVP з нуля.
Бриф засновника: що надіслати розробнику, щоб не втратити 8 тижнів
Шаблон односторінкового брифу, який економить засновникам тижні неузгодженої роботи. Що включити, що залишити за рамками, і три питання, важливіші за будь-який Figma-файл.
React Native vs Flutter для стартапу з двох засновників: відповідь без священної війни
Обидва відвантажують. Обидва нормальні. Реальні фактори рішення — це найм, покриття вебом і поточні навички команди, а не порівняння фреймворків, яке ти знайдеш на Reddit.
Від Figma до 8K встановлень: як ми відвантажили React Native-застосунок E7 Shop
Нативний iOS + Android застосунок-компаньйон для івент-тикетингу. 60fps вибір місць, офлайн QR-гаманець, рейтинг 4.8★. 10 тижнів, React Native + Expo.
Як описати MVP так, щоб він реально вийшов за 12 тижнів
Помилки в описі, що перетворюють 12-тижневий проєкт на 6-місячний, і письмові артефакти, які тримають проєкт на рейках із першого тижня.
Вебхуки Stripe у продакшні: 6 режимів відмови, про які ніхто не попереджає
Патерни відмов, які спливають тільки після перших 1000 оплачених подій — баги підписів, шторми ретраїв, мовчазні 200-ки, і фікс для кожного.
Архітектура квиткової платформи на 12K квитків за подію: всередині E7
Повний стек івент-тикетингу — інтерактивні карти залів, Stripe-чекаут, WebSocket у реальному часі, QR-чекін. 12 тижнів від нуля до продакшену.
Next.js vs Remix у 2026: порівняння, яке реально має значення зараз
Срач 2023 року закінчено. Після злиття Remix у React Router 7 і стабілізації Next.js RSC чесні відмінності менші, ніж думає інтернет — але вони все одно не ті, які потрібні більшості засновників.
Як я вибив Lighthouse 98 на тримовному сайті на Next.js
Оптимізації, які реально зрушили бали, дві, на які я витратив час дарма, і те, про що більшість Lighthouse-туторіалів тихо брешуть.
Як ми перебудували Etalon Translation за 6 тижнів: +34% конверсії та Lighthouse 98
WordPress-сайт агентства → Next.js 15. Три локалі, MDX-блог, 0.8s завантаження. Повна історія: що вирізали, що здивувало, реальні цифри.
Соло full-stack розробник vs агенція vs фрилансер: чесне порівняння
Ціна, швидкість, ризики і відповідний формат для трьох варіантів, між якими обирає кожен засновник. Де кожен виграє, а де спалює бюджет.
Фіксована ціна vs погодинна: чому я беру за віхами
У кожному погодинному рахунку схований другий рахунок. Аргументи за фіксовану ціну, коли погодинна реально виграє, і як продавити розробника на чесну фіксовану ціну.
Скільки насправді коштує кастомний SaaS MVP у 2026-му
Порядковий розбір реального MVP за €15K. Без «залежить від задач», без націнки агенції, без туману — реальні цифри за 10-тижневим проєктом.
Чотирирядковий спам-фільтр, що замінив reCAPTCHA на моїй контактній формі
Honeypot + time-floor + ліміти розміру. Без стороннього скрипта, без виноски про приватність, без галочки. Два місяці роботи і нуль спаму в інбоксі.
Server Components: трейдоф, який вкусив
Коротка історія про межі серіалізації, іконки в props і як я дебажив помилку Next.js без стектрейсу.
Hello, world — чому я знову пишу
Навіщо цей блог: короткі нотатки з реальних проєктів, речі, які хотілося б знати раніше, і трейдофи, що рідко потрапляють у туторіали.