[{"data":1,"prerenderedAt":863},["ShallowReactive",2],{"blog-uk-supabase-backup-tools-compared":3,"blog-index-uk":516},{"id":4,"title":5,"body":6,"category":475,"cover":476,"coverAlt":477,"description":478,"draft":479,"extension":480,"faq":481,"image":497,"keywords":498,"meta":504,"navigation":505,"ogTitle":506,"path":507,"published":508,"seo":509,"stem":510,"tldr":511,"updated":508,"__hash__":515},"blog_uk\u002Fblog\u002Fsupabase-backup-tools-compared.md","Інструменти резервного копіювання Supabase, і наш серед них",{"type":7,"value":8,"toc":462},"minimark",[9,13,21,24,29,32,163,166,170,173,210,216,220,223,232,235,239,242,249,255,258,285,290,298,302,305,308,311,319,323,326,329,367,372,375,382,386,389,420,424,444],[10,11,12],"p",{},"Ви шукали інструмент резервного копіювання Supabase з однієї з двох причин. Або\nз’ясували, що ваш проєкт на безкоштовному тарифі й нічого й ніколи нікуди не\nкопіювалося, або ви на платному тарифі, прочитали, як далеко назад сягає його\nвікно, і це не здалося достатнім для застосунку зі справжніми клієнтами\nвсередині.",[10,14,15,16,20],{},"Ось частина, яку ці порівняння роблять неправильно, а написані самими\nінструментами роблять неправильно найдужче: вони впорядковують варіанти за\nможливостями. ",[17,18,19],"strong",{},"Інструмент копіювання це те, за що ви платите, аби покрити\nроботу, яку вже вирішили не робити самі."," Якби ви справді її робили,\nбезкоштовний шлях дає той самий файл.",[10,22,23],{},"Ми продаємо один із чотирьох нижче, тож читайте решту з цим у руках. Для\nчималої кількості застосунків безкоштовний шлях і є правильною відповіддю, а\nрозділ про нього тут найдовший.",[25,26,28],"h2",{"id":27},"який-інструмент-резервного-копіювання-supabase-обрати","Який інструмент резервного копіювання Supabase обрати?",[10,30,31],{},"Обирайте за тим, про яку частину роботи ви хочете перестати думати. Усі чотири\nшляхи роблять копію вашої бази даних. Різнить їх те, скільки з того, що буде\nдалі, лишається вашим.",[33,34,35],"comparison-table",{},[36,37,38,59],"table",{},[39,40,41],"thead",{},[42,43,44,47,50,53,56],"tr",{},[45,46],"th",{},[45,48,49],{},"Сам Supabase",[45,51,52],{},"GitHub Action",[45,54,55],{},"Сервіс копіювання",[45,57,58],{},"Керована опіка",[60,61,62,77,91,104,119,132,146],"tbody",{},[42,63,64,68,71,73,75],{},[65,66,67],"td",{},"Працює за розкладом без вас",[65,69,70],{},"Так",[65,72,70],{},[65,74,70],{},[65,76,70],{},[42,78,79,82,85,87,89],{},[65,80,81],{},"Копія залишає ваш обліковий запис",[65,83,84],{},"Ні",[65,86,70],{},[65,88,70],{},[65,90,70],{},[42,92,93,96,98,100,102],{},[65,94,95],{},"Переживає втрату облікового запису",[65,97,84],{},[65,99,70],{},[65,101,70],{},[65,103,70],{},[42,105,106,109,111,114,117],{},[65,107,108],{},"Ваші завантажені файли всередині",[65,110,84],{},[65,112,113],{},"Друге завдання",[65,115,116],{},"Здебільшого ні",[65,118,70],{},[42,120,121,124,126,128,130],{},[65,122,123],{},"Щось читає копію назад",[65,125,84],{},[65,127,84],{},[65,129,84],{},[65,131,70],{},[42,133,134,137,140,142,144],{},[65,135,136],{},"Відновлення це одна кнопка",[65,138,139],{},"Так, усередині проєкту",[65,141,84],{},[65,143,84],{},[65,145,70],{},[42,147,148,151,154,157,160],{},[65,149,150],{},"Вартість",[65,152,153],{},"Лише платні тарифи",[65,155,156],{},"Безкоштовно",[65,158,159],{},"Безкоштовний тариф, далі платний",[65,161,162],{},"Підписка",[10,164,165],{},"Затінена колонка наша, а рядки з четвертого по шостий це те, що вона продає.\nТримайте це на увазі в усьому, що нижче.",[25,167,169],{"id":168},"за-що-ви-насправді-платите","За що ви насправді платите",[10,171,172],{},"Щоб резервна копія чогось вартувала, має статися чотири речі, і кожен інструмент\nрезервного копіювання Supabase тут робить якісь із них.",[174,175,176,188,194,200],"ol",{},[177,178,179,182,183,187],"li",{},[17,180,181],{},"Зняти копію."," За це на цій сторінці ніхто грошей не бере. ",[184,185,186],"code",{},"pg_dump"," іде в\nкомплекті з Postgres, а CLI Supabase його загортає.",[177,189,190,193],{},[17,191,192],{},"Віднести її туди, куди оригінал не забере її з собою."," Копія всередині\nоблікового запису, який вона захищає, рятує вас того дня, коли ви поламали\nвласні дані. Того дня, коли ви втратите доступ, вона стоїть за тими самими\nдверима.",[177,195,196,199],{},[17,197,198],{},"Прочитати її назад."," Дамп, записаний тоді, коли з’єднання обірвалося,\nвиглядає точнісінько як добрий, аж доки ви не спробуєте ним скористатися.",[177,201,202,205,206,209],{},[17,203,204],{},"Покласти її назад."," У найгірший день життя вашого застосунку, у тому\nстані, у якому ви того дня будете, з тим, що вам випадково відомо про ",[184,207,208],{},"psql",".",[211,212],"diagram",{"alt":213,"caption":214,"src":215},"Чотири пронумеровані панелі. Перша: база даних зі стрілкою у файл. Друга: файл, що виходить за пунктирну межу. Третя: лупа над файлом і галочка. Четверта: стрілка, що несе файл назад у базу даних.","Чотири кроки, з яких кожен шлях на цій сторінці бере свій шматок. Більшість інструментів продає вам два середні.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Ffour-jobs-1600x560.png",[25,217,219],{"id":218},"чи-потрібен-інструмент-якщо-я-вже-на-платному-тарифі-supabase","Чи потрібен інструмент, якщо я вже на платному тарифі Supabase?",[10,221,222],{},"Для звичайної катастрофи ні. Supabase знімає щоденні копії на платних тарифах, і\nвідновити одну з них це кілька кліків у панелі, а це найшвидший шлях назад після\nміграції, що виконалася двічі.",[10,224,225,226,231],{},"Чого це не покриває, так це самого облікового запису. Кожна копія, яку знімає\nSupabase, живе всередині проєкту, який вона захищає, тож невдале списання,\nпризупинений проєкт чи доступ, який ви не можете відновити, ставлять копії за\nті самі двері, що й річ, заради якої вони існували.\n",[227,228,230],"a",{"href":229},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","На якому ви тарифі й наскільки далеко сягає його вікно","\nперевіряється приблизно за дві хвилини.",[10,233,234],{},"Тож увімкніть їх, а тоді окремо вирішіть, чи одна копія в одному місці це те\nмісце, де ви хочете спинитися.",[25,236,238],{"id":237},"коли-github-action-виграє-в-будь-якої-оплати","Коли GitHub Action виграє в будь-якої оплати",[10,240,241],{},"Коли ваш застосунок і так живе в репозиторії GitHub, ви можете відредагувати\nфайл YAML без жаху, а ваша база невелика. У такому разі безкоштовний шлях це\nсправжня відповідь. Він робить той самий дамп, що й платний сервіс, за тим самим\nрозкладом, і ніхто вам нічого не виставляє.",[10,243,244,245,248],{},"Саме цей шлях Supabase описує сам. Файл робочого процесу в ",[184,246,247],{},".github\u002Fworkflows","\nтричі викликає CLI Supabase і вивантажує ваші ролі, вашу схему та ваші дані\nокремими файлами, за розкладом cron опівночі, а тоді записує результати назад у\nрепозиторій. Їхня сторінка несе одне попередження і несе його двічі: ніколи не\nробіть копії своїх даних у публічний репозиторій.",[10,250,251,252,254],{},"Це також шлях, який лагодить те, що вбиває ручний варіант. ",[184,253,186],{}," на вашому\nноутбуці має дату того разу, коли ви востаннє про це подумали, а день, коли він\nзнадобиться, ніколи не буває днем, коли ви про це думали. Запланований процес\nпрацює незалежно від того, згадали ви чи ні, і файл лягає на сервери іншої\nкомпанії, ніж та, що тримає вашу базу.",[10,256,257],{},"Чотири речі, які він лишає вам:",[259,260,261,267,273,279],"ul",{},[177,262,263,266],{},[17,264,265],{},"Дампи громадяться в репозиторії",", а це місце, зроблене для коду. Двійкова\nісторія, що росте, незручна в роботі, і якщо туди колись потрапить справжній\nсекрет, дістати його назад означає переписати історію.",[177,268,269,272],{},[17,270,271],{},"Ваш рядок підключення лежить у CI."," Це доступ із повним правом запису до\nвашої бази, збережений у системі, яка ще й виконує код із pull request.",[177,274,275,278],{},[17,276,277],{},"Ніхто не читає копію назад."," Зелений запуск означає, що завдання\nзавершилося без помилки, а це менше твердження, ніж те, що файл відновлюється.",[177,280,281,284],{},[17,282,283],{},"Завантажені файли потребують другого завдання."," Дамп містить рядок, який\nвказує на кожен файл. Самі файли живуть у Storage і виходять окремо, на\nкожному шляху тут.",[211,286],{"alt":287,"caption":288,"src":289},"Завершене завдання, позначене зеленою галочкою. Від нього відходить лінія і роздвоюється до двох однакових панелей файлів. Верхній файл має заповнений кожен рядок. Нижній обривається після двох рядків, а решта це порожні пунктирні контури.","Обидва вийшли із запуску, що завершився без помилки. Ніщо в запуску не каже, який із них у вас.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fgreen-run-short-file-1600x740.png",[10,291,292,293,297],{},"Якщо ви можете жити з цими чотирма, припиняйте читати тут і ",[227,294,296],{"href":295},"\u002Fblog\u002Fsupabase-backup-github-action","йдіть це\nналаштовувати",", з рядком підключення, до\nякого GitHub може дістатися, і розкладом, який може оплатити ваш ліміт egress.\nВоно нічого не коштує, а файл, який виходить, той самий, що пишуть платні шляхи.",[25,299,301],{"id":300},"що-додає-платний-сервіс-копіювання","Що додає платний сервіс копіювання",[10,303,304],{},"Він знімає з вас обслуговування. Невеликий сервіс під’єднується до вашої бази,\nпрацює за розкладом, який ви оберете, кладе файл у сховище, що вже ваше, і\nставить перед усім цим екран, який каже, коли запуск не вдався.",[10,306,307],{},"Supabackup це той, кого шукають на ім’я. Він бере ваш рядок підключення,\nвивантажує дампи в обліковий запис Google Drive, який ви під’єднуєте, і тримає\nзадану їх кількість, перш ніж видалити найстаріші. Його ж сторінка цін описує\nбезкоштовний тариф із тижневим розкладом і платний із щоденним; читайте\nпоточну ціну там, а не тут, бо вона їхня і міняти її їм.",[10,309,310],{},"Що це дає порівняно з файлом робочого процесу, так це річ, яка не псується.\nНіякого YAML, жодного репозиторію, що набивається дампами, жодного секрету в CI,\nі панель, яка каже вам, що останній запуск не вдався, замість листа, який ви\nнавчилися пропускати.",[10,312,313,314,318],{},"Чого це не змінює, так це другої половини роботи. Копія це ваша база, файл це\nдамп, і того дня, коли він знадобиться, програвати його будете ви. Перевірте, чи\nсервіс, який ви обрали, покриває також Storage, бо чимала частина цієї категорії\nце сама лише база.\n",[227,315,317],{"href":316},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Відновлення дампа має власні кроки",",\nі їх варто прочитати до того, як вони знадобляться.",[25,320,322],{"id":321},"що-додає-керована-опіка-і-за-що-ви-платите","Що додає керована опіка і за що ви платите",[10,324,325],{},"Вона додає ті дві частини, які інші три шляхи лишають вам: перевірку та\nвідновлення.",[10,327,328],{},"Це і є Reeve Care, і резервні копії це один його рядок.",[259,330,331,337,343,349,355,361],{},[177,332,333,336],{},[17,334,335],{},"Кілька копій на день",", за розкладом, який задає ваш тариф, і нічого, що вам\nтреба пам’ятати запустити.",[177,338,339,342],{},[17,340,341],{},"Зберігаються поза вашим обліковим записом Supabase",", зашифровані, тож\nпризупинений проєкт чи доступ, який ви не відновите, лишають копії там, де\nвони є.",[177,344,345,348],{},[17,346,347],{},"Прочитані назад, перш ніж зарахуватися."," Кожну копію відкривають і\nперелічують проти того, що в неї увійшло, і саме тому дата у вашій панелі це\nдата останньої перевіреної копії, а не останньої спроби.",[177,350,351,354],{},[17,352,353],{},"Ваші завантажені файли поряд із вашими рядками",", щойно ви під’єднаєте\nдоступ до Storage, і повертаються вони разом.",[177,356,357,360],{},[17,358,359],{},"Більш ніж одна точка відновлення."," Скільки саме, залежить від тарифу, а\nнайстаріші відходять у міру появи нових.",[177,362,363,366],{},[17,364,365],{},"Покласти назад це одна кнопка",", і спершу знімається копія теперішнього\nстану, перш ніж щось буде замінено.",[211,368],{"alt":369,"caption":370,"src":371},"Три пронумеровані смуги поряд зі знаком Reeve Care. Перша: обліковий запис Supabase із базою даних і завантаженим зображенням, знак повтору над стрілкою, що виходить, і копія назовні з замком, лупою та галочкою. Друга: ряд із семи збережених копій, найстаріша намальована пунктиром, а найновіша виділена. Третя: стрілка, що несе збережену копію назад в обліковий запис, із картки з кнопкою.","Що робить підписка, поки ви про це не думаєте. База даних і завантажені файли їдуть разом, в обидва боки.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcare-in-one-frame-1600x700.png",[10,373,374],{},"Платите ви за доступність. Ви можете запустити відновлення о будь-якій годині, з\nбудь-якої ночі, яку ваш тариф ще тримає, не чекаючи, доки з’явиться вільний\nвечір. Кожна копія шифрується, перш ніж полишити ваш проєкт, і такою лишається.\nCare Max додає пріоритетну підтримку і когось, хто допоможе застосувати\nвиправлення.",[10,376,377,378,209],{},"Як копія полишає Supabase, яка перевірка йде слідом і яка кнопка кладе її назад,\nнамальовано на ",[227,379,381],{"href":380},"\u002Fsupabase-backups","сторінці резервних копій Supabase",[25,383,385],{"id":384},"як-обрати-приблизно-за-хвилину","Як обрати приблизно за хвилину",[10,387,388],{},"Чотири гілки, і більшість опиняється в перших двох.",[259,390,391,397,408,414],{},[177,392,393,396],{},[17,394,395],{},"Безкоштовний тариф, і редагувати файл YAML вас не лякає."," GitHub Action.\nБезкоштовна, повна і ваша.",[177,398,399,402,403,407],{},[17,400,401],{},"Безкоштовний тариф, і таки лякає."," Невеликий сервіс копіювання або\n",[227,404,406],{"href":405},"\u002Fblog\u002Fback-up-supabase-free-tier","копія, зроблена руками з панелі",", доки ви\nне будете готові до чогось запланованого.",[177,409,410,413],{},[17,411,412],{},"Платний тариф, і ви хочете копію поза обліковим записом."," Будь-що з двох,\nна додачу до того, що Supabase уже знімає.",[177,415,416,419],{},[17,417,418],{},"Справжні клієнти, завантажені файли й нікого, хто запускатиме відновлення\nпід тиском."," Керована.",[25,421,423],{"id":422},"що-зробити-цього-тижня","Що зробити цього тижня",[425,426,427],"key-takeaways",{},[259,428,429,432,435,438,441],{},[177,430,431],{},"Увімкніть те, що ваш тариф Supabase уже містить. Це не коштує нічого додатково і це найшвидший шлях назад після власних помилок.",[177,433,434],{},"Оберіть один шлях із цієї сторінки, що кладе копію поза ваш обліковий запис Supabase, і налаштуйте його сьогодні.",[177,436,437],{},"Хоч що ви обрали, відновіть із нього один раз у проєкт на викид. Доки цього не зробите, у вас на руках файл невідомої якості.",[177,439,440],{},"Копіюйте файли зі Storage окремим завданням. Жоден шлях тут не містить їх сам собою.",[177,442,443],{},"Запишіть, куди лягають копії і який доступ до них дістає. Рядка в README вашого проєкту досить, і саме цю нотатку ви шукатимете опівночі.",[10,445,446,447,451,452,456,457,461],{},"Якщо у вас колись спорожніла таблиця з причини, якої ніхто не міг пояснити,\nпрочитайте спершу\n",[227,448,450],{"href":449},"\u002Fblog\u002Fversion-history-is-not-a-backup","що насправді відновлює відкат",", а тоді\n",[227,453,455],{"href":454},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","три способи зробити копію бази даних Supabase","\nпро те, що копія містить і що лишає позаду. А якщо ви радше побачите, що ще\nвідкрито у вашому застосунку, перш ніж вирішувати, куди витрачати,\n",[227,458,460],{"href":459},"\u002Fsecurity-scanner","безкоштовне сканування"," читає ваш живий сайт приблизно за\n20 секунд.",{"title":463,"searchDepth":464,"depth":464,"links":465},"",3,[466,468,469,470,471,472,473,474],{"id":27,"depth":467,"text":28},2,{"id":168,"depth":467,"text":169},{"id":218,"depth":467,"text":219},{"id":237,"depth":467,"text":238},{"id":300,"depth":467,"text":301},{"id":321,"depth":467,"text":322},{"id":384,"depth":467,"text":385},{"id":422,"depth":467,"text":423},"Backups","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcover-1200x630.png","База даних поряд із чотирма збереженими копіями в ряд, де третя з чотирьох піднята над рештою.","Чотири види інструментів резервного копіювання Supabase, що копіює кожен і коли безкоштовна GitHub Action виграє в будь-якої оплати, нашої теж.",false,"md",[482,485,488,491,494],{"q":483,"a":484},"Який інструмент резервного копіювання Supabase найкращий?","Однієї відповіді немає, бо чотири шляхи покривають різні частини однієї роботи. Власні копії Supabase вмикаються найшвидше і живуть усередині облікового запису, який захищають. GitHub Action безкоштовна й повна, і лишає перевірку та відновлення на вас. Невеликий сервіс копіювання знімає з вас обслуговування. Керований сервіс додає перевірку, ваші завантажені файли та відновлення, яке може запустити хтось інший. Обирайте за тим, яку з цих частин ви хочете перестати тримати.",{"q":486,"a":487},"Чи є безкоштовний інструмент резервного копіювання Supabase?","Так, і не один. CLI Supabase вивантажує вашу базу у файл на вашій же машині й не коштує нічого. GitHub Action, яка запускає ту саму CLI за розкладом, теж не коштує нічого, доки репозиторій, у який вона пише, приватний. Кілька платних сервісів мають ще й безкоштовний тариф, зазвичай одне завдання з тижневим розкладом. Чого не містить жоден безкоштовний шлях, так це когось, хто перевірить, чи файл відкривається.",{"q":489,"a":490},"Чи можна робити копії Supabase через GitHub Action?","Можна, і Supabase сам описує цей робочий процес. Він тричі викликає CLI, щоб окремо вивантажити ваші ролі, вашу схему та ваші дані, за розкладом cron опівночі, і записує файли назад у репозиторій. Їхня сторінка несе одне попередження і несе його двічі: ніколи не робіть копії своїх даних у публічний репозиторій. Варто одразу вирішити, чи взагалі місце дедалі більшій купі дампів у репозиторії з кодом, чи той самий процес має вивантажувати їх кудись інде.",{"q":492,"a":493},"Чи включають інструменти резервного копіювання Supabase файли зі Storage?","Деякі так, а багато ні, тож з’ясуйте це, перш ніж припускати. Дамп бази містить рядок із записом, де лежав кожен файл, і нічого від самого файлу, і саме так відновлення завершується чисто й лишає застосунок із поламаними зображеннями. Хоч який шлях ви оберете, перевірте, чи входять до нього завантажені файли, а якщо ні, копіюйте їх окремим завданням.",{"q":495,"a":496},"На що дивитися, обираючи інструмент резервного копіювання Supabase?","Чотири питання, саме в такому порядку. Чи копія залишає ваш обліковий запис Supabase, чи лежить усередині того, що вона захищає? Чи хтось читає копію назад, чи зелений запуск уже вважається успіхом? Чи входять до неї ваші завантажені файли? І хто запускає відновлення того дня, коли воно знадобиться? Ціна стоїть останньою, а не першою, бо шляхи, що не коштують нічого, справді добрі в першій половині цього переліку.","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",[499,500,501,502,503],"інструмент резервного копіювання supabase","supabackup","автоматична резервна копія supabase","сервіс резервного копіювання supabase","порівняння інструментів бекапу supabase",{},true,"Інструменти резервного копіювання Supabase","\u002Fblog\u002Fsupabase-backup-tools-compared","2026-09-01",{"title":5,"description":478},"blog\u002Fsupabase-backup-tools-compared",[512,513,514],"Інструмент резервного копіювання Supabase вартий грошей тоді, коли підводить саме ваша пам’ять. Кожен шлях на цій сторінці робить той самий файл.","Їх чотири: власні копії Supabase, запланована GitHub Action, невеликий сервіс копіювання та керована опіка. Вони різняться тим, скільки роботи лишається на вас.","Жоден із них нічого не вартий, доки хтось не прочитав копію назад, і саме цього рядка бракує в кожному переліку можливостей.","xtQvjEP2LxfNbLkKfFeLPSYKs0JtP7Px6pebZejkKls",[517,524,530,536,542,548,554,560,566,572,578,584,590,596,601,607,612,618,624,630,636,642,648,654,660,666,672,678,684,690,696,702,708,714,720,726,732,738,744,750,756,757,763,768,774,780,786,792,798,803,809,815,821,827,832,838,843,849,853,858],{"path":518,"title":519,"description":520,"published":521,"category":522,"image":523,"draft":479},"\u002Fblog\u002Fbase44-security-scan","Сканування безпеки Base44: те, що бачить лише воно","Сканування безпеки Base44 перевіряє сім видів проблем зсередини. Ось половина, яку читає тільки воно, і половина, на яку воно ніколи не дивиться.","2026-10-10","Основи безпеки","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":525,"title":526,"description":527,"published":528,"category":522,"image":529,"draft":479},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Ваш API-ключ витік. Порядок дій","API-ключ витік, і ви не знаєте, що робити першим. Не кожен ключ у вашому фронтенді є витоком, а порядок важить більше за швидкість.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":531,"title":532,"description":533,"published":534,"category":522,"image":535,"draft":479},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" без вимкнення RLS","\"Infinite recursion detected in policy for relation\" означає, що ваша policy запитала таблицю, яку вона захищає. Ось як розірвати коло.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":537,"title":538,"description":539,"published":540,"category":522,"image":541,"draft":479},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" у Supabase, і хибне виправлення","\"No API key found in request\" означає, що запит дійшов до Supabase без ключа. Більшість відповідей натомість вказують на правила вашої бази.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":543,"title":544,"description":545,"published":546,"category":522,"image":547,"draft":479},"\u002Fblog\u002Fis-base44-safe","Чи безпечний Base44? Дані 5 442 застосунків","Чи безпечний Base44? Ми прогнали дев’ять перевірок на 5 442 робочих застосунках Base44. Майже всі отримали B з причин, яких власник ніколи не обирав.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":549,"title":550,"description":551,"published":552,"category":522,"image":553,"draft":479},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","Сховати ключ API: перенесіть його в Supabase Edge Function","Сховати ключ API означає прибрати його з браузера, а Supabase Edge Function це найменше місце, куди його покласти. Два кроки поруч важать більше.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":555,"title":556,"description":557,"published":558,"category":522,"image":559,"draft":479},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Чи відкритий ваш файл .env? Дванадцять шляхів для перевірки","Чи відкритий ваш файл .env на вашому власному вебсервері? Дванадцять адрес скажуть це за хвилину, а влучання означає, що все в ньому вже публічне.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":561,"title":562,"description":563,"published":564,"category":522,"image":565,"draft":479},"\u002Fblog\u002Fis-v0-safe","Безпека v0: усі 1 790 просканованих застосунків v0 отримали A","Безпека v0 на 1 790 живих застосунках v0: усі отримали A. Лише 17 згадували базу даних, і саме це здебільшого вимірює оцінка A.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":567,"title":568,"description":569,"published":570,"category":522,"image":571,"draft":479},"\u002Fblog\u002Fis-bolt-safe","Чи безпечний Bolt? Що показали 1 123 застосунки Bolt","Чи безпечний Bolt? Ми прогнали 1 123 живі застосунки Bolt через дев’ять перевірок. Хостинг був чистим. Знахідки: ключі й відкриті таблиці в самих застосунках.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":573,"title":574,"description":575,"published":576,"category":522,"image":577,"draft":479},"\u002Fblog\u002Fis-supabase-down-or-your-app","Supabase не працює чи проблема у вашому застосунку? Як розрізнити","Supabase не працює чи зламався ваш застосунок? Пауза, повна база й ваша власна помилка виглядають однаково. Чотири перевірки їх розрізняють.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":579,"title":580,"description":581,"published":582,"category":522,"image":583,"draft":479},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Чи шифрує Supabase мої дані? Так. Ось від чого це захищає","Чи шифрує Supabase дані? Так: AES-256 у стані спокою, TLS під час передавання, SOC 2 та ISO 27001. Що покриває кожне і який витік не зупиняє жодне.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":585,"title":586,"description":587,"published":588,"category":522,"image":589,"draft":479},"\u002Fblog\u002Fsupabase-free-plan-limits","Ліміти безкоштовного тарифу Supabase і що стається на кожному","Ліміти безкоштовного тарифу Supabase: 500 МБ бази, 5 ГБ egress і жодних резервних копій. Що стається на кожній межі і що змінює Pro за $25.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":591,"title":592,"description":593,"published":594,"category":475,"image":595,"draft":479},"\u002Fblog\u002Ftest-your-supabase-backup","Перевірте резервну копію Supabase до того, як вона знадобиться","Як перевірити резервну копію Supabase: відновити в тестовий проєкт, порахувати рядки, увійти й знайти рядок, якого бракує обрізаному файлу.","2026-09-28","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":295,"title":597,"description":598,"published":599,"category":475,"image":600,"draft":479},"Безкоштовна резервна копія Supabase через GitHub Action і підступ","Резервна копія Supabase через GitHub Action безкоштовна й годиться багатьом застосункам. Робочий процес, потрібний рядок підключення та egress.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":602,"title":603,"description":604,"published":605,"category":475,"image":606,"draft":479},"\u002Fblog\u002Fdownload-your-supabase-backup","Чому ви не можете завантажити резервну копію Supabase","Завантажити резервну копію Supabase на сучасному проєкті не вийде: щоденна копія там фізична. Як це перевірити і як тримати власну копію.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":608,"title":609,"description":610,"published":605,"category":522,"image":611,"draft":479},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": бракує GRANT","З 30 жовтня нова таблиця в Supabase відповідає \"permission denied for table\", доки ви не дасте доступ. Лист показує лише половину виправлення.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":613,"title":614,"description":615,"published":616,"category":522,"image":617,"draft":479},"\u002Fblog\u002Fopen-api-endpoint-exposed","Чи є відкритий API-ендпоінт проблемою безпеки? Читайте JSON","Ваше сканування позначило відкритий API-ендпоінт. Чи це важливо, залежить від того, що повернулося, і більшість знайдених належали платформі.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":619,"title":620,"description":621,"published":622,"category":522,"image":623,"draft":479},"\u002Fblog\u002Flovable-security-scan","Сканування безпеки Lovable: чого воно не доведе","Сканування безпеки Lovable: що перевіряють Quick scan і Deep scan, коли запускається кожне, і єдине, чого не доведе жодне сканування зсередини.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":625,"title":626,"description":627,"published":628,"category":475,"image":629,"draft":479},"\u002Fblog\u002Fsupabase-backup-auth-users","Чому у вашому дампі Supabase немає користувачів","Запустіть supabase db dump окремо і отримаєте форму вашої бази та жодного її рядка, без схеми auth, у якій живуть ваші користувачі.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":631,"title":632,"description":633,"published":634,"category":522,"image":635,"draft":479},"\u002Fblog\u002Fdomain-and-certificate-expiry","Домен закінчився, сайт лежить: що буде далі","Ваш домен закінчився і сайт лежить. Ось який годинник уже пішов, чому прострочений сертифікат це менша з двох бід, і як перевірити обидва.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":637,"title":638,"description":639,"published":640,"category":522,"image":641,"draft":479},"\u002Fblog\u002Fis-lovable-safe","Чи безпечний Lovable? Що показали 18 554 застосунки Lovable","Чи безпечний Lovable? Ми прогнали 18 554 живі застосунки Lovable через дев’ять перевірок. Платформа виявилася найчистішою з п’яти. Знахідки були в застосунках.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":643,"title":644,"description":645,"published":646,"category":522,"image":647,"draft":479},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Чек-лист безпеки для vibe coding, у девʼяти перевірках","Чек-лист безпеки для vibe coding із девʼяти пунктів, кожен з яких будь-хто може перевірити у вашому живому застосунку ззовні, і кожен має тест на один рядок.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":649,"title":650,"description":651,"published":652,"category":522,"image":653,"draft":479},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Секретний ключ Stripe у фронтенді може рухати гроші","Секретний ключ Stripe, відкритий у вашому фронтенді, може повертати кошти, списувати й читати кожну картку клієнта. А ключ pk_live_ там і має бути.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":655,"title":656,"description":657,"published":658,"category":522,"image":659,"draft":479},"\u002Fblog\u002Fvite-and-next-public-env-vars","Змінні оточення Vite відкриті: префікс означає опублікувати це","Змінні оточення Vite відкриті у вашому застосунку, бо так просив префікс. VITE_ і NEXT_PUBLIC_ означають опублікувати це, а ШІ, який їх додав, не знав ціни.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":661,"title":662,"description":663,"published":664,"category":522,"image":665,"draft":479},"\u002Fblog\u002Fbase44-source-maps","Безпека Base44: що позначає скан і що з цього виправляти вам","Безпека Base44 на 5 438 просканованих застосунках: три знахідки майже на кожному належать платформі, source map є бейджем Base44, а ваша частина коротка.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":667,"title":668,"description":669,"published":670,"category":522,"image":671,"draft":479},"\u002Fblog\u002Fis-cursor-ai-safe","Чи безпечний Cursor AI? Редактор, код і опублікований застосунок","Чи безпечний Cursor AI? Три запитання в одному пошуку: що Cursor зберігає, у чому помиляється його код і чи відкритий застосунок, який ви опублікували.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":673,"title":674,"description":675,"published":676,"category":522,"image":677,"draft":479},"\u002Fblog\u002Fis-replit-safe","Чи безпечний Replit? Що ми знайшли в 3 042 живих застосунках Replit","Чи безпечний Replit? Ми прогнали 3 042 живі застосунки Replit через дев’ять зовнішніх перевірок. Знахідки були в опублікованому застосунку, а не в хостингу.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":679,"title":680,"description":681,"published":682,"category":475,"image":683,"draft":479},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: у копії бази даних немає жодного файлу","Supabase storage backup це окрема робота. Копії бази даних зберігають список ваших файлів і жодного з них, тож після відновлення кожне завантаження зламане.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":685,"title":686,"description":687,"published":688,"category":475,"image":689,"draft":479},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Point-in-time recovery у Supabase: ціна та межі","Point-in-time recovery у Supabase відмотує базу на будь-яку секунду за останній тиждень. Коштує $100 на місяць понад Pro і покриває лише базу даних.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":691,"title":692,"description":693,"published":694,"category":475,"image":695,"draft":479},"\u002Fblog\u002Fsupabase-project-paused-recover","Проєкт Supabase на паузі? Ваші дані нікуди не зникли","Supabase поставив ваш проєкт на паузу після тижня без активності. Нічого не видалено, кнопка Restore стоїть поруч із назвою, і у вас є рік, щоб натиснути.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":697,"title":698,"description":699,"published":700,"category":522,"image":701,"draft":479},"\u002Fblog\u002Fsafest-ai-app-builder","Який білдер застосунків з ШІ найбезпечніший? 30 998 тестів","Який білдер застосунків з ШІ найбезпечніший? Ми просканували 30 998 живих застосунків з Lovable, Base44, Replit, v0 і Bolt. Оцінку вирішує не білдер.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":703,"title":704,"description":705,"published":706,"category":522,"image":707,"draft":479},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Увімкніть Row Level Security на кожній таблиці Supabase і перевірте","Row Level Security у Supabase без політики закриває таблицю повністю. Політика без увімкненого перемикача не робить нічого. Ось SQL, і ось перевірка.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":709,"title":710,"description":711,"published":712,"category":522,"image":713,"draft":479},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": чого не бачить попередження","Supabase позначає \"RLS disabled in public\" як помилку. Про політику читання, яка лишає вашу таблицю так само відкритою, він не каже нічого.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":715,"title":716,"description":717,"published":718,"category":522,"image":719,"draft":479},"\u002Fblog\u002Frotate-supabase-service-role-key","Як замінити злитий ключ service_role у Supabase","Supabase каже спершу закрити витік. Інші посібники кажуть міняти негайно. Що правильно, залежить від того, куди саме потрапив ваш ключ service_role.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":721,"title":722,"description":723,"published":724,"category":522,"image":725,"draft":479},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Сканери безпеки для vibe coding у порівнянні, наш теж","Найкращий сканер безпеки для vibe coding залежить від трьох питань, на які не відповідає жоден перелік функцій. Десять інструментів і ціни.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":727,"title":728,"description":729,"published":730,"category":522,"image":731,"draft":479},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: п’ять перевірок, які зробите самі","Supabase security checker читає ваш опублікований застосунок, а не налаштування проєкту. Ось п’ять перевірок і як виконати кожну самостійно.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":733,"title":734,"description":735,"published":736,"category":522,"image":737,"draft":479},"\u002Fblog\u002Fvibe-coding-security-scanner","Сканер безпеки для vibe coding: чого не бачить скан URL","Сканер безпеки для vibe coding читає ваш робочий застосунок ззовні. Що це охоплює, чотири речі, яких він не бачить, і як читати результат.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":739,"title":740,"description":741,"published":742,"category":522,"image":743,"draft":479},"\u002Fblog\u002Fmissing-security-headers","Відсутні заголовки безпеки: коли це справді важливо","Відсутні заголовки безпеки трапляються в наших звітах найчастіше. Від чого вони захищають і коли це найменш терміновий рядок вашого звіту.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":745,"title":746,"description":747,"published":748,"category":522,"image":749,"draft":479},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Ваш ключ API OpenAI відкритий у фронтенді. Замініть його.","Ключ API OpenAI, відкритий у фронтенді, не можна прив'язати до домену. Замініть його сьогодні, перенесіть виклик на свій сервер і обмежте витрати.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":751,"title":752,"description":753,"published":754,"category":522,"image":755,"draft":479},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Ключ API у фронтенді: що насправді віддають 30 998 застосунків","Ключ API, відкритий у вашому фронтенді, зазвичай є ключем Google Maps. Ми просканували 30 998 vibe-coded застосунків і порахували, що витікає насправді.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":507,"title":5,"description":478,"published":508,"category":475,"image":497,"draft":479},{"path":758,"title":759,"description":760,"published":761,"category":522,"image":762,"draft":479},"\u002Fblog\u002Freplit-secrets-explained","Як користуватися секретами в Replit і що все одно публікується","Як користуватися секретами в Replit: додати, прочитати і усунути дві причини undefined. А ще ключі, які цей інструмент не здатен зберегти в таємниці.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":405,"title":764,"description":765,"published":766,"category":475,"image":767,"draft":479},"Резервні копії на безкоштовному тарифі Supabase без терміналу","На безкоштовному тарифі Supabase резервних копій немає: копію робите ви. Як зробити її з панелі та що втрачає шлях через CSV.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":769,"title":770,"description":771,"published":772,"category":522,"image":773,"draft":479},"\u002Fblog\u002Fis-supabase-secure","Чи безпечний Supabase? Так. Ваш проєкт це інше питання","Чи безпечний Supabase? Платформа проходить аудити, шифрує дані й тримає пентести. Їхня документація каже, де це закінчується і починаються ваші налаштування.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":775,"title":776,"description":777,"published":778,"category":522,"image":779,"draft":479},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Де знайти API-ключі Supabase: anon, service_role і URL","URL проєкту, ключ anon і ключ service_role лежать на одній сторінці панелі. Ось де вона, і яке з чотирьох значень має бути у вашому застосунку.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":781,"title":782,"description":783,"published":784,"category":522,"image":785,"draft":479},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy в Supabase. Що далі?","\"New row violates row-level security policy\" означає, що Supabase відмовив у записі. Швидке виправлення знову відкриває таблицю для всіх.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":787,"title":788,"description":789,"published":790,"category":522,"image":791,"draft":479},"\u002Fblog\u002Fcors-wildcard-security-risk","Чи є вайлдкард CORS ризиком для безпеки? Майже ніколи.","Чи є вайлдкард CORS ризиком для безпеки? Зазвичай це типове налаштування вашого білдера, і воно не видає нічого, що ваш сервер і так віддавав кожному.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":793,"title":794,"description":795,"published":796,"category":475,"image":797,"draft":479},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Branching у Supabase це не бекап. Він іде тільки вперед.","Чому branching у Supabase це не бекап: гілка стартує без ваших даних, а мердж переносить саму лише схему. Для чого він потрібен і що брати замість нього.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":316,"title":799,"description":800,"published":801,"category":475,"image":802,"draft":479},"Як відновити резервну копію Supabase, і що ламається потім","Як відновити резервну копію Supabase з панелі або з файлу дампа, що саме замінює відновлення і чому ваш застосунок може лишитися зламаним після нього.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":804,"title":805,"description":806,"published":807,"category":522,"image":808,"draft":479},"\u002Fblog\u002Fsupabase-storage-bucket-public","Ваш бакет Supabase Storage публічний. Чи це проблема?","Публічний бакет Supabase Storage означає, що той, хто має URL файлу, може його відкрити. Він не означає, що хтось може переглянути список вмісту.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":810,"title":811,"description":812,"published":813,"category":522,"image":814,"draft":479},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Чи є проблемою ключ API Google у вашому браузері?","Ключ API Google у відкритому коді сторінки наш сканер знаходить найчастіше, і зазвичай усе гаразд. Вирішує це одне безкоштовне налаштування.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":816,"title":817,"description":818,"published":819,"category":475,"image":820,"draft":479},"\u002Fblog\u002Fai-agent-deleted-my-database","ШІ-агент видалив мої дані в Supabase. Що можна відновити?","ШІ-агент видалив дані з вашої бази. Те, що ви зможете відновити, вирішилося раніше, а наступні хвилини вирішують, скільки з цього вціліє.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":822,"title":823,"description":824,"published":825,"category":522,"image":826,"draft":479},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Чи може будь-хто прочитати вашу базу Supabase? 3 680 застосунків","Чи може будь-хто прочитати вашу базу даних Supabase без входу? Ми просканували 30 998 живих застосунків, зроблених ШІ-білдерами, і виміряли, як часто так.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":828,"title":829,"description":830,"published":825,"category":522,"image":831,"draft":479},"\u002Fblog\u002Fsource-maps-exposed-in-production","Відкриті source maps: ваш застосунок публікує свій вихідний код","Відкрита source map дає будь-кому прочитати оригінальний код вашого застосунку, разом із коментарями. Перевірка за 30 секунд, і що важить насправді.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":833,"title":834,"description":835,"published":836,"category":522,"image":837,"draft":479},"\u002Fblog\u002Fsupabase-new-api-keys","Нові API-ключі Supabase: який із них безпечний у застосунку?","Supabase замінив anon і service_role публічними та секретними ключами. Який із них має бути у вашому застосунку, а який не має бути ніколи?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":229,"title":839,"description":840,"published":841,"category":475,"image":842,"draft":479},"Чи робить Supabase резервні копії моєї бази? Залежить від тарифу.","Чи робить Supabase резервні копії вашої бази даних? На платних тарифах щодня, на безкоштовному жодної. Як дізнатися, що у вас насправді є.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":844,"title":845,"description":846,"published":847,"category":522,"image":848,"draft":479},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Supabase Row Level Security увімкнено. Таблиця досі публічна.","Увімкнути Supabase Row Level Security не означає захистити таблицю. Захищають політики, а та, що полагодила застосунок, часто впускає всіх.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":449,"title":850,"description":851,"published":847,"category":475,"image":852,"draft":479},"Історія версій не є резервною копією. Вона не поверне таблицю.","Lovable і Bolt ведуть історію версій вашого коду. Ваша база даних працює як окремий сервіс, тож відкат назад не поверне ваші дані.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":454,"title":854,"description":855,"published":856,"category":475,"image":857,"draft":479},"Три способи зробити резервну копію бази Supabase, і чого бракує","Панель, pg_dump і керований сервіс. Що насправді зберігає кожен спосіб, що тихо лишає осторонь і який із них переживе втрату акаунта.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":859,"title":860,"description":861,"published":856,"category":522,"image":862,"draft":479},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Які API-ключі безпечні у браузері, а які ні","Ваш ключ anon у Supabase створений, щоб бути публічним. Ключ service_role для цього не створений, і він ігнорує всі правила, які ви задали. Як їх розрізнити.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618975718]