Produkt stworzony z AI: jak bezpiecznie wprowadzać zmiany
MarkdownJak bezpiecznie zmieniać produkt po premierze: git, rollback, środowisko testowe, sekrety, hosting i kopie zapasowe. Sześć promptów do pracy z agentem AI.
Przeczytaj cały artykuł
Więcej o pracy z modelami znajdziesz w dokumentacji Ailoot.
Dlaczego najdroższa praca zaczyna się po premierze?
Najważniejsze
Tworzenie produktu z AI to mniejsza część pracy. Z każdego dolara zainwestowanego w rozwój z AI zaledwie 18 centów trafia do gotowego produktu, a 44 centy idą na naprawianie błędów popełnionych przez samo AI. Wszystko to dzieje się po premierze. Większość pieniędzy i nerwów pochłania utrzymanie, a nie budowanie.
Zbudowałeś aplikację w jeden wieczór, opublikowałeś link i wysłałeś go znajomym. Działa. Tydzień później pojawia się pierwszy prawdziwy użytkownik, klika coś w niewłaściwy sposób i połowa funkcji przestaje działać. Prosisz Claude’a o naprawę — naprawia jedną rzecz, a psuje inną. Brzmi znajomo?
I właśnie wtedy pojawia się główne pytanie: co zrobić po uruchomieniu produktu, gdy minie euforia związana z pierwszym działającym prototypem, a ty nadal musisz jakoś go utrzymywać? Można to nazwać vibe codingiem dla dorosłych. Budowanie daje ekscytację i szybkość. Utrzymanie wymaga chłodnej głowy: rozumiesz, co zmieniasz, i trzymasz wszystko pod kontrolą. Większość osób ponosi porażkę w tej drugiej części, bo nikt ich do niej nie przygotowuje.
Jedno badanie branżowe przeanalizowało ponad milion zmian w kodzie wprowadzonych przez 2,444 zespoły i obliczyło, na co naprawdę idą pieniądze wydawane na rozwój z AI. Oto obraz sytuacji:
| Dokąd trafia dolar | Kwota | Co to oznacza w praktyce |
|---|---|---|
| Trafił do produktu | 18 centów | Funkcje, które rzeczywiście działały dla użytkowników |
| Naprawianie błędów AI | 44 centy | Poprawianie tego, co AI już napisało, żeby się nie rozsypało |
| Ponowna praca | 27 centów | Przepisywanie kodu AI, który nie realizował zadania |
| Przegląd | 11 centów | Zrozumienie kodu i szukanie błędów |
Więcej o tych liczbach wyjaśnia artykuł „Ukryty koszt vibe codingu”. Tam pytanie brzmiało: za co płacisz? Tutaj chodzi o coś innego: 44 centy z każdego dolara idą na naprawę błędów — cały ten artykuł dotyczy tego, jak nie dopuścić do wzrostu tego udziału. Praca nad jego kontrolowaniem nazywa się utrzymaniem.
Różnica między osobą, która uprawia vibe coding po dorosłemu, a osobą, która tylko niańczy sieć neuronową, ujawnia się po premierze. U pierwszej baza kodu rośnie, wprowadzane są ulepszenia, a nic się nie psuje. Miesiąc później produkt drugiej osoby zamienia się w przeciekający mechanizm, którego boi się dotknąć. Dalej wyjaśnię, jak znaleźć się w pierwszej grupie.
Co się naprawdę psuje: 5 katastrof po premierze
Najważniejsze
Produkty stworzone z AI psują się z powodu krótkiej, powtarzającej się listy problemów: wyciekają klucze i bazy danych, AI usuwa produkcyjną bazę danych, a nieznajomi obciążają klientów opłatami. Każdej katastrofie można zapobiec jednym działaniem.
Oto publiczne analizy rzeczywistych produktów zbudowanych z AI, z liczbami i datami. Pomyśl o nich jak o mapie pola minowego — każda mina wybuchła już u kogoś, a sposób jej ominięcia jest znany.
| Co się stało | Jak dokładnie | Co by temu zapobiegło |
|---|---|---|
| Wyciekło 1,5 miliona kluczy | Publiczny klucz do bazy danych znajdował się w kodzie strony, a dostęp do bazy był otwarty bez hasła | Włącz row-level security (RLS) dla każdej tabeli |
| Ujawniono 170 aplikacji | Aplikacje łączyły się z bazą danych bezpośrednio z przeglądarki za pomocą publicznego klucza, bez żadnych reguł dostępu | Przed sprzedażą sprawdź uprawnienia dostępu do bazy i nie ufaj ustawieniom domyślnym |
| AI usunęło produkcyjną bazę danych | Agent otrzymał dostęp do produkcyjnej bazy danych i ją usunął pomimo zakazu | Fizycznie odizoluj produkcyjną bazę danych od środowiska agenta |
| Klucze płatności w przeglądarce: $87,500 | Klucze systemu płatności trafiły do kodu strony; ktoś je znalazł, a 175 klientów obciążono opłatami | Przechowuj sekrety wyłącznie na serwerze, nigdy w przeglądarce |
| Ujawniono 72,000 zdjęć i dokumentów | Magazyn plików nie miał hasła, więc każdy, kto miał link, mógł pobrać selfie i dokumenty tożsamości | Domyślnie wymagaj uwierzytelniania przy dostępie do magazynu plików |
Wszystkie pięć przypadków ma tę samą przyczynę. Domyślnie AI sprawia, że coś działa teraz, a nie bezpiecznie za miesiąc pod obciążeniem. Podczas pracy na własnym komputerze nie widać różnicy. Staje się oczywista dopiero wtedy, gdy pojawia się pierwszy nieznajomy o złych zamiarach.
Problemem nie jest to, że kod nie powstaje ręcznie — wiele osób tak pracuje. Problemem jest brak pytania: „Czy baza danych jest zabezpieczona?”. Dalej pokażę prompt, który zada to pytanie za ciebie.
Pierwszą siatką bezpieczeństwa jest git i powrót do „wczorajszego stanu”
Najważniejsze
Główną siatką bezpieczeństwa po premierze jest możliwość cofnięcia każdej zmiany. Tworzą ją dwie warstwy: git jako trwała historia projektu i lokalne migawki Claude Code, które pozwalają szybko „cofnąć ostatnią rzecz”. Prywatne repozytorium i plik z sekretami na liście ignorowanych to minimum, zanim pozwolisz innym korzystać z produktu.
Gdy Claude coś zepsuje, potrzebujesz przycisku „przywróć stan z wczoraj”. Technicznie ten przycisk nazywa się git i jest prostszy, niż się wydaje.
Trzy terminy, które powinien znać nieprogramista:
- Repozytorium — folder projektu zapisany w chmurze (zwykle na GitHubie). Kopia całego kodu, która nie znajduje się wyłącznie na twoim komputerze.
- Commit — punkt powrotu. W praktyce mówisz kodowi: „zapisz ten stan”. Każdy commit to znacznik, do którego możesz wrócić.
- Deploy — wdrożenie. Kod był lokalnie, na twoim komputerze, i działał tylko u ciebie. Wdrożenie wysyła go na zewnętrzny serwer, żeby działał dla wszystkich.
Jeśli masz aktualne punkty w postaci commitów, możesz cofnąć każdą awarię jednym zdaniem. Dosłownie.
Prompt: Przywróć działającą wersję
Coś zepsułem — wczoraj wszystko działało, a dziś już nie. Znajdź najnowszy commit, w którym wszystko było w porządku, pokaż mi, co się od tego czasu zmieniło, i przywróć projekt do tamtego stanu.
Dwie zasady, które należy od razu wprowadzić, zanim produkt zobaczą inni:
- Repozytorium musi być prywatne. Nie publiczne. W przeciwnym razie każdy może odczytać twój kod i wszystko, co się w nim znajduje.
- Dodaj plik z sekretami do listy ignorowanych. Klucze, hasła i dane dostępowe do bazy przechowuj w osobnym pliku (zwykle
.env), który nigdy nie trafia do repozytorium. Dodaj wiersz z.envdo.gitignore, a sekrety pozostaną u ciebie.
Osobny poradnik opisuje bezpieczne cofanie zmian w Claude Code: Jak cofnąć zmiany w Claude Code. Bez punktów powrotu idziesz po linie bez siatki bezpieczeństwa i prędzej czy później spadniesz.
Co cofa /rewind, a czego nie?
Najważniejsze
Claude Code ma polecenie /rewind — przed każdą edycją tworzy migawkę i cofa kod oraz rozmowę do wybranego punktu. Cofa jednak tylko pliki zmienione przez samego Claude’a. Nie cofa zainstalowanych pakietów, wysyłania plików do chmury, zmian w bazie danych ani wywołań usług zewnętrznych. Git to trwała historia, a /rewind to szybkie lokalne „cofnij”.
Claude Code tworzy migawkę stanu przed każdą wprowadzoną przez siebie zmianą. Polecenie /rewind (lub dwukrotne naciśnięcie Esc) cofa zarówno pliki, jak i rozmowę do wybranego punktu. To przydatne: jeśli pięć minut temu zepsułeś funkcję, możesz cofnąć się o pięć minut.
Jest jednak pułapka, przez którą początkujący tracą dane. /rewind nie cofa wszystkiego:
Co cofa /rewind | Czego NIE cofa |
|---|---|
| Edycje plików wykonane przez Claude’a | Instalowanie pakietów (npm install) |
| Rozmowę w tej sesji | Wysyłanie kodu do chmury (git push) |
| Lokalny stan projektu | Zmiany w bazie danych |
| - | Wywołania usług zewnętrznych i płatności |
Anthropic wyjaśnia to wprost: migawki są lokalnym przyciskiem „cofnij”, a git to trwała historia. Migawki uzupełniają kontrolę wersji, ale jej nie zastępują.
Migawki to lokalne „cofnij”, a Git to trwała historia. Migawki uzupełniają pełną kontrolę wersji, ale jej nie zastępują.
Praktyczny wniosek dla nieprogramisty: /rewind uratuje cię przed sytuacją „Claude właśnie zepsuł funkcję”. Jeśli jednak zdążył usunąć wiersz z bazy danych albo wysłać kod do chmury, przywrócić go mogą tylko git i kopia zapasowa bazy. Zachowaj więc obie warstwy: migawki do szybkiego cofania zmian, commity do trwałej historii projektu.
Jak wprowadzać ulepszenia, nie psując tego, co już działa?
Najważniejsze
Głównym zagrożeniem przy wprowadzaniu ulepszeń jest dryf logiczny: prosisz AI o naprawę jednej rzeczy, a ono po cichu zmienia sąsiednią logikę, ponieważ vibe coding jest niedeterministyczny. Zabezpieczeniem jest złota zasada: nie wdrażaj kodu, którego nie potrafisz wyjaśnić innej osobie. Wprowadzaj małe zmiany, każdą zapisuj jako commit i zawsze dokładnie sprawdzaj, co się zmieniło.
Co druga osoba wpada w tę pętlę. Prosisz AI o naprawę małego błędu. Proponuje rozsądną zmianę. Ta zmiana psuje coś innego. Prosisz o naprawę nowego problemu, a pojawiają się dwa kolejne. I tak dalej.
Pętla pojawia się, ponieważ vibe coding jest niedeterministyczny. Ten sam prompt może za każdym razem wygenerować inny kod. Dlatego każda edycja może po cichu zmienić sąsiednią logikę: próg rabatu przesuwa się z 10 do 12 procent albo zmienia się działanie reguły walidacji — bez żadnej kontroli z twojej strony i bez choćby jednego ostrzeżenia. Nazywa się to dryfem logicznym i po cichu uszkadza dokładnie te elementy, które przynoszą pieniądze: ceny, dostęp i płatności.
Przed takim dryfem chroni jedna zasada, na tyle prosta, że można ją powiesić na ścianie: nie zatwierdzaj kodu, którego nie potrafiłbyś wyjaśnić innej osobie słowo w słowo.
W praktyce można z tego zrobić gotową instrukcję, której użyjesz przed każdą zmianą działającego kodu. Dzięki niej AI wykonuje małe kroki i pokazuje dokładnie, co się zmieniło.
Prompt: Zaplanuj bezpieczną zmianę
Zanim zmienisz kod, wykonaj te czynności:
Zapisz obecny działający stan jako osobny punkt powrotu (commit).
Opisz dokładnie słowami, co planujesz zmienić i w których plikach.
Wprowadź możliwie najmniejszą zmianę — tylko taką, która rozwiązuje moje zadanie, bez niczego więcej.
Pokaż mi, co się zmieniło, i wyjaśnij każdą zmianę tak, żebym mógł ją wytłumaczyć innej osobie.
Nie ruszaj cen, uprawnień dostępu ani logiki płatności, chyba że o to poproszę.
Kolejna zasada, która oszczędza tygodnie, to dyscyplina w trzymaniu się zakresu zadania. Jeden problem, jedna zmiana, szybka realizacja. Nie proś AI, by w jednym promptcie przepisało połowę projektu. Zdarza się, że profesjonalni programiści zaczynają budować całego Ubera, choć potrzebowali tylko jednego przycisku — i ciągną to miesiącami. Nie musisz tak robić.
Wszystko, co opisuję, opiera się na jednej rzeczy: zarządzaniu kontekstem. Żeby AI nie psuło sąsiedniej logiki, musi pamiętać zasady projektu.
Jak sprawdzić zmianę przed jej opublikowaniem?
Najważniejsze
Zanim wdrożysz zmianę dla prawdziwych użytkowników, sprawdź kluczowe scenariusze: płatność, rejestrację, dostęp i ceny. Najlepiej przeprowadzić końcową kontrolę na testowej kopii środowiska produkcyjnego (w narzędziach deweloperskich nazywanej staging). Kolejność jest następująca: budujesz w środowisku deweloperskim, sprawdzasz na kopii testowej, wdrażasz na produkcję. Każde wydanie niesie ryzyko; kopia testowa je eliminuje.
Między „działa na moim komputerze” a „działa dla wszystkich” jest etap pośredni, który początkujący pomijają: kopia testowa. To osobna migawka środowiska produkcyjnego, na której sprawdzasz zmianę, zanim zobaczą ją prawdziwi ludzie. Cykl pracy wygląda tak:
- Tworzysz i samodzielnie sprawdzasz zmianę (development).
- Wdrażasz ją na staging — kopię środowiska produkcyjnego bez prawdziwych użytkowników.
- Uruchamiasz kluczowe scenariusze i upewniasz się, że nic się nie zmieniło.
- Dopiero teraz wdrażasz ją na produkcję.
Po premierze ma to znaczenie, ponieważ każde wydanie niesie ryzyko. Niewielka zmiana kodu może zepsuć logowanie do konta. Brak jednego ustawienia może wyłączyć cały produkt. Staging wykrywa takie problemy bez konsekwencji; na produkcji tracisz klientów.
Żeby uniknąć ręcznego sprawdzania wszystkiego za każdym razem, daj AI prompt, by porównało działanie nowej wersji ze starą w kluczowych obszarach.
Prompt: Test regresji przed wydaniem
Zamierzam wdrożyć zmianę. Przejdź po kolei przez najważniejsze scenariusze działania produktu i sprawdź, czy każdy z nich nadal działa tak jak wcześniej:
Rejestracja i logowanie nowego użytkownika.
Płatność i przyznanie dostępu po płatności.
Uprawnienia dostępu — zwykły użytkownik nie może zobaczyć cudzych danych ani panelu administracyjnego.
Kluczowe wartości logiki biznesowej (ceny, rabaty, limity) nie uległy zmianie.
Jeśli cokolwiek działa inaczej niż w poprzedniej wersji, zatrzymaj się i pokaż mi dokładnie, co się zmieniło.
Gdzie są twoje sekrety? Największa luka początkujących
Najważniejsze
Najczęstszy i najdroższy błąd po premierze to sekrety w kodzie strony. Klucze do bazy danych, systemu płatności i usług zewnętrznych powinny znajdować się wyłącznie na serwerze, w zmiennych środowiskowych, nigdy w przeglądarce. Ta luka kosztowała już jeden produkt 1,5 miliona ujawnionych kluczy, a klientów jednego z założycieli — łącznie $87,500 obciążeń.
Dokładniej wyjaśnię największą minę, bo to ona unieruchamia więcej produktów niż jakikolwiek inny problem. Gdy AI pisze kod, najłatwiej umieścić klucz tam, gdzie od razu zadziała — bezpośrednio w kodzie strony otwieranej w przeglądarce. Podczas programowania nie zauważysz różnicy. Jednak każdy może odczytać wszystko, co trafia do przeglądarki, otwierając narzędzia deweloperskie.
Założyciel, którego klientów obciążono kwotą $87,500, powiedział później, że można było temu zapobiec jednym promptem. Opłaty ostatecznie cofnięto, ale bezzwrotne prowizje i utrata spokoju pozostały. Oto ten prompt.
Prompt: Sprawdź, gdzie przechowywane są moje sekrety
Sprawdź cały projekt i upewnij się, że żaden tajny klucz nie trafia do przeglądarki:
Znajdź wszystkie klucze do bazy danych, systemu płatności i usług zewnętrznych.
Upewnij się, że każdy z nich jest przechowywany wyłącznie na serwerze, w zmiennych środowiskowych, a nie w kodzie strony.
Sprawdź historię projektu — czy któryś klucz nie trafił tam wcześniej przez przypadek?
Pokaż mi listę wszystkich miejsc, w których znaleziono sekrety, i napisz, co należy zrobić w każdym przypadku.
Kolejna pobliska mina to sprawdzanie uprawnień dostępu wyłącznie po stronie przeglądarki. Jeśli produkt decyduje w kodzie strony, czy „pokazać panel administracyjny”, każdy może obejść tę decyzję. Uprawnienia dostępu należy zawsze sprawdzać na serwerze. Baza danych musi zwracać dane tylko osobom uprawnionym — do tego służy row-level security (RLS), które trzeba włączyć dla każdej tabeli.
Zanim zaczniesz sprzedawać dostęp lub wpuszczać innych użytkowników, przeprowadź ogólny audyt bezpieczeństwa produktu.
Prompt: Przeprowadź audyt projektu po premierze
Przejrzyj projekt jak osoba atakująca i znajdź luki w zabezpieczeniach:
Czy jakiekolwiek tajne klucze są zapisane w kodzie wysyłanym do przeglądarki albo w historii projektu?
Czy w każdej tabeli bazy danych włączono zabezpieczenia na poziomie wierszy (RLS) i czy uprawnienia dostępu są sprawdzane na serwerze, a nie tylko w przeglądarce?
Czy skonfigurowano automatyczną kopię zapasową bazy danych i czy kiedykolwiek sprawdziłem, czy da się ją odtworzyć?
Czy produkcyjna baza danych jest odizolowana od środowiska, w którym działa agent AI?
Przy każdym punkcie powiedz, czy wszystko jest w porządku, czy dokładnie co trzeba naprawić.
Osobny, obszerny poradnik opisuje bezpieczeństwo vibe codingu: Jak zabezpieczyć aplikację stworzoną metodą vibe codingu. Zasada jest prosta: wszystko, co AI robi domyślnie, traktuj jako niezabezpieczone, dopóki nie sprawdzisz, że jest inaczej.
Gdzie hostować produkt: kolejne szczeble hostingu
Najważniejsze
Miejsce, w którym działa produkt, zależy od tego, kto z niego korzysta. Bezpłatny hosting sprawdzi się przy testach i małych projektach bez danych osobowych. W przypadku produktu z bazą danych i prawdziwymi użytkownikami wybierz platformę, na której wdrożysz go jednym poleceniem. Własny serwer to następny krok przy dużym obciążeniu. Nie zaczynaj od czegoś skomplikowanego.
Nie musisz od razu wynajmować własnego serwera i ręcznie go konfigurować — na początku to skomplikowane zadanie, które pochłonie twój czas. Wraz z rozwojem produktu możesz wchodzić po kolejnych szczeblach:
- Bezpłatny hosting (na przykład Vercel) — dla siebie, do testów i małych projektów. Sprawdzi się, jeśli platforma jest dostępna dla twoich odbiorców i nie przechowujesz danych osobowych.
- Platforma z wdrożeniem jednym poleceniem (Railway) — gdy masz backend i bazę danych. Wdrażasz produkt jednym poleceniem, bez konfiguracji serwera. Próg wejścia jest minimalny.
- Własny serwer dedykowany — gdy obciążenie jest duże i potrzebujesz pełnej kontroli. Przenieś się na niego później, gdy osiągniesz limit platformy.
Dla nieprogramisty, który właśnie uruchomił produkt, najłatwiejszą opcją jest platforma umożliwiająca wdrożenie jednym poleceniem, bez ręcznej konfiguracji serwera. Na własny serwer możesz przenieść się później. Jeśli chcesz przejść tę ścieżkę na konkretnym przykładzie, zobacz poradnik wdrażania projektu stworzonego metodą vibe codingu na własny serwer z Coolify.
Kiedy rozdzielić aplikację, bazę danych i kopie zapasowe?
Najważniejsze
Gdy produkt jest mały, aplikacja i baza danych mogą działać na tej samej maszynie. Pora je rozdzielić, gdy obciążenie szczytowe utrzymuje się powyżej 70–80 procent albo baza danych i aplikacja zaczynają wzajemnie spowalniać swoje działanie. Kopie zapasowe twórz zgodnie z zasadą 3-2-1: trzy kopie, na dwóch rodzajach nośników, z jedną poza lokalizacją. Kopie muszą powstawać automatycznie, a nie „kiedy sobie przypomnę”.
Trzech rzeczy nie należy trzymać w jednym koszyku: aplikacji, bazy danych i kopii zapasowych. Gdy użytkowników jest niewielu, wszystko może działać razem i to jest w porządku. Istnieje jednak wyraźny sygnał, że pora je rozdzielić.
- Umieść aplikację i bazę danych na różnych maszynach. Sygnałem jest sytuacja, w której przy szczytowym obciążeniu wykorzystanie procesora i pamięci utrzymuje się powyżej 70–80 procent, żądania zwalniają, a aplikacja i baza danych konkurują o te same zasoby. Po rozdzieleniu możesz wzmocnić bazę danych bez ingerencji w aplikację i odwrotnie.
- Stosuj zasadę kopii zapasowych 3-2-1. Trzy kopie danych, na dwóch różnych rodzajach nośników, z jedną poza lokalizacją. Chroni to przed awarią sprzętu i ransomware. Najważniejsze, by kopie zapasowe tworzyły się automatycznie.
Częstotliwość tworzenia kopii zależy od tego, jak kosztowna byłaby utrata danych z kilku godzin. Jeśli utrata godziny zapisów płatności w internetowej usłudze subskrypcyjnej jest niedopuszczalna, kopie muszą powstawać częściej niż co godzinę albo potrzebne są sprawdzone logi transakcji i odzyskiwanie do punktu w czasie (PITR). Dobierz interwał do maksymalnej akceptowalnej utraty danych i osobno sprawdź czas przywrócenia usługi. Blogowi wystarczy jedna dziennie. Logika jest prosta: określ, ile danych możesz stracić, i odpowiednio skonfiguruj kopie zapasowe.
Prompt: Czy pora rozdzielić serwery?
Pomóż mi zdecydować, czy pora przenieść mój produkt na poważniejszą infrastrukturę. Sprawdź każdy punkt i zadaj mi pytania:
Jak obciążone są procesor i pamięć w szczycie — czy ich użycie utrzymuje się powyżej 70–80 procent?
Czy baza danych i aplikacja działają na tej samej maszynie, czy na różnych?
Czy skonfigurowano automatyczne kopie zapasowe bazy danych i czy sprawdziłem odtwarzanie z kopii?
Czy istnieje osobna kopia środowiska (staging) do sprawdzania zmian przed wdrożeniem?
Na podstawie wyników przedstaw jasną rekomendację: co zostawić bez zmian, co rozdzielić w pierwszej kolejności i dlaczego.
Jest jeszcze kwestia wyboru między bazą zarządzaną a własną. Dla małego zespołu zarządzana baza prawie zawsze będzie lepsza: własna jest tańsza pod względem sprzętu, ale pochłania godziny na utrzymanie. Jeśli działasz sam, a twój produkt nie jest infrastrukturą, te godziny kosztują więcej niż różnica w cenie serwera.
Jak zautomatyzować utrzymanie?
Najważniejsze
Utrzymanie nie musi być ręczne. Dwa narzędzia monitorujące wystarczą na początek: jedno sprawdza, czy strona działa, a drugie wykrywa błędy wewnątrz produktu. Możesz też ustawić agenta AI, który rano zrobi obchód — przeczyta zgłoszenia użytkowników, znajdzie usterki i przyniesie gotową do wdrożenia poprawkę. Jednak wysyłki poczty i operacje masowe należy wykonywać partiami, a nie na całej bazie danych naraz.
Ręczne utrzymanie jest wyczerpujące. Możesz zdjąć część obowiązków z własnych barków na dwa sposoby: monitoringiem i agentem patrolującym.
Monitoring obejmuje dwa różne narzędzia do dwóch różnych zadań:
- „Czy strona działa?” — monitor dostępności (na przykład UptimeRobot). Co kilka minut sprawdza produkt i wysyła alert, gdy przestaje działać. Jest dostępny bezpłatny plan.
- „Co dokładnie się zepsuło?” — narzędzie do śledzenia błędów (na przykład Sentry). Zbiera błędy z aplikacji i pokazuje, gdzie oraz dlaczego coś nie zadziałało.
Pierwsze narzędzie wykrywa, że produkt przestał działać. Drugie pokazuje, która funkcja zawiodła i dlaczego. Razem odpowiadają na pytanie: „Czy dowiem się o awarii, zanim klient napisze do pomocy technicznej?”.
Drugim poziomem automatyzacji jest agent patrolujący. Wyobraź sobie biuro nieruchomości: o siódmej rano agent AI czyta wiadomości na stronie, zauważa, że formularz rezerwacji nie działa, znajduje przyczynę w kodzie i przynosi gotową poprawkę z wyjaśnieniem. Sprawdzasz ją i mówisz „tak” — wtedy zostaje wdrożona. Kolejność ma znaczenie: najpierw rozwiąż problem użytkownika (przyznaj dostęp, przeproś), a dopiero potem zbadaj przyczynę i pieniądze.
Uwaga
Nie wykonuj operacji masowych na całej bazie danych naraz. Wyślij wiadomość do wszystkich jednocześnie, a serwer będzie przeciążony i połowa wiadomości trafi do spamu. Właściwe podejście to wysyłanie partiami: 100–1,000 dziennie, rozłożone na kilka godzin. Dotyczy to każdej bazy klientów: sklepu, kliniki czy usługi.
Jest jeszcze jedna zasada dotycząca dostępu AI do produkcyjnej bazy danych: przyznaj mu konto tylko do odczytu i ukryj dane osobowe za warstwą pośredniczącą, tak aby agent widział „imię” zamiast prawdziwego imienia i nazwiska. Wtedy nawet jeśli popełni błąd, fizycznie nie będzie w stanie usunąć ani uszkodzić danych produkcyjnych. Incydent z tabeli powyżej, w którym agent wyczyścił produkcyjną bazę danych, pokazuje dokładnie, do czego prowadzi brak tego ograniczenia. Poradnik Co zrobić, gdy AI usunęło twoją bazę danych wyjaśnia, jak postąpić, gdy katastrofa już nastąpiła.
Kiedy pora zamknąć produkt?
Najważniejsze
Nie każdy produkt warto utrzymywać — niektóre należy zamknąć. Daj pomysłowi dwa tygodnie na udowodnienie swojej wartości, a jako twardy limit przyjmij trzy miesiące. Jeśli nie wypali, zamknij produkt bez względu na to, jak bardzo żal ci zainwestowanego wysiłku. Produktu nie zabija kiepski kod, lecz to, że ludzie przestają go używać. Każdy ma cmentarz niedokończonych projektów — to normalne.
Najbardziej niedocenianą częścią utrzymania jest wiedza, kiedy przestać się nim zajmować. Każdy, kto dużo buduje, ma cmentarz projektów: stworzył coś, trochę przy tym dłubał, a potem porzucił. To normalne i nie oznacza porażki. Porażką jest ciągnąć przez wiele miesięcy coś, czego nikt nie używa, tylko dlatego, że żal czasu włożonego w projekt.
Oto progi, które pomogą podjąć decyzję:
- Dwa tygodnie — wystarczająco dużo, by sprawdzić, czy pomysł działa. Jeśli pierwsi prawdziwi użytkownicy wracają, działaj dalej. Cisza też jest odpowiedzią.
- Trzy miesiące — twardy limit. Jeśli po trzech miesiącach produkt nie wypalił, zamknij go. Przy szybkości vibe codingu poświęcanie sześciu miesięcy na testowanie jednego pomysłu trwa zbyt długo.
Zamknięcie projektu jest psychologicznie trudne, więc potraktuj je jak decyzję, a nie uczucie. Rezygnacja z projektu, w który zainwestowałeś, przypomina zwolnienie pracownika, który nie potrafi wykonywać swojej pracy: to nieprzyjemne, ale dalsze zatrudnianie go kosztuje więcej niż rozstanie.
Utrzymanie to praca, dzięki której produkt pozostaje dostępny i użyteczny dla ludzi. Wszystko inne — git, kopie zapasowe, monitoring — to tylko narzędzia pomagające doprowadzić do momentu, w którym produkt zaczyna pracować dla ciebie każdego dnia.
Zbudowanie produktu z AI w jeden wieczór to połowa pracy. Utrzymywanie go przy życiu i zapewnianie mu bezpieczeństwa w miarę rozwoju — to właśnie oznacza vibe coding dla dorosłych.
Następny krok — Ailoot.
Więcej szczegółów
Pytania i odpowiedzi
Jak często tworzyć kopie usługi z płatnościami?
Dobierz interwał do maksymalnej tolerowanej utraty danych. Jeśli godzina jest niedopuszczalna, twórz kopie częściej niż co godzinę lub zastosuj sprawdzone logi transakcji/PITR; sprawdź też rzeczywisty czas odtworzenia.
Czy monitor dostępności wystarcza do oceny zdrowia produktu?
Nie. Pokazuje odpowiedź witryny, a tracker błędów wykrywa awarie wewnątrz aplikacji. Przed wydaniem sprawdź ważne scenariusze użytkownika na stagingu i potwierdź możliwość odtworzenia kopii.