Blog / Praktyka
Vibe coding: czy można zbudować profesjonalną aplikację za pomocą AI?
Krótka odpowiedź: prototyp - tak, w jeden wieczór. Aplikacja, przez którą przechodzą cudze dane osobowe i cudze pieniądze - również tak, ale nie w trybie, który dał tej metodzie nazwę. Vibe coding w pierwotnym znaczeniu polega na tym, że nikt nie czyta wygenerowanego kodu. Różnica między tym a poważną pracą z asystentem AI nie leży w narzędziu, tylko w tym, czy ktoś bierze za wynik odpowiedzialność. Poniżej: gdzie ta metoda działa świetnie, gdzie pęka i po czym poznać, że projekt właśnie przekroczył granicę.
01Krótka odpowiedź
Czym jest Vibe coding?
Vibe coding to budowanie oprogramowania przez opisywanie modelowi, co ma powstać, i przyjmowanie wyniku bez czytania kodu. Termin wprowadził w lutym 2025 roku Andrej Karpathy i od początku miał znaczenie dosłowne: człowiek rozmawia z modelem, ogląda efekt w przeglądarce, a kod traktuje jak czarną skrzynkę. W potocznym użyciu nazwa rozlała się na każdą pracę z asystentem AI - również taką, w której inżynier czyta każdą linię i odpowiada za nią. To dwie różne rzeczy o dwóch różnych profilach ryzyka, a mylenie ich jest źródłem większości nieporozumień w tej dyskusji.
Dla osób, które w kilka wieczorów zbudowały działający prototyp i zastanawiają się, czy można na nim postawić firmę - oraz dla tych, które właśnie taki prototyp dostały do rozwijania.
02Rozróżnienie
Vibe coding a praca z asystentem AI
Narzędzie w obu kolumnach bywa dokładnie to samo. Różnica jest w tym, co dzieje się z wynikiem - i to ona decyduje o wszystkim, co dalej.
| Pytanie kontrolne | Vibe coding | Praca z asystentem AI |
|---|---|---|
| Kto czyta wygenerowany kod? | Nikt - to jest definicja tej metody, a nie jej wypaczenie | Człowiek, który podpisuje się pod wynikiem |
| Co się dzieje przy błędzie? | Kolejny prompt w stylu napraw to. Przyczyna zostaje nieznana | Diagnoza, poprawka i test, który nie pozwoli błędowi wrócić |
| Skąd wiadomo, że działa? | Bo klika się w przeglądarce i wygląda poprawnie | Bo przechodzą testy opisujące oczekiwane zachowanie |
| Jak wygląda zmiana po pół roku? | Ryzykownie - nikt nie zna założeń, na których to stoi | Zwyczajnie - założenia są w kodzie, testach i dokumentacji |
| Czy da się to przekazać komuś innemu? | Tylko razem z autorem i jego historią rozmów z modelem | Tak. To najostrzejszy sprawdzian, jaki da się przeprowadzić |
| Kto odpowiada, gdy wyciekną dane? | Właściciel produktu - tyle że bez wiedzy, co się właściwie stało | Ten sam właściciel, ale z osobą zdolną ustalić przyczynę |
03Uczciwie
Gdzie ta metoda naprawdę działa
Nie ma tu ironii. Poniżej zastosowania, w których vibe coding jest po prostu najlepszym dostępnym narzędziem - a angażowanie do nich zespołu byłoby marnowaniem pieniędzy.
- Prototyp do rozmowy
- Klikalna wersja pomysłu, która ma przekonać wspólnika, inwestora albo Was samych, że warto. Żyje tydzień, potem trafia do kosza. Jakość kodu nie ma tu żadnego znaczenia.
- Narzędzie dla jednej osoby
- Skrypt, który raz w miesiącu przerabia plik z księgowości. Jeśli się zepsuje, dowiecie się natychmiast i nikt poza Wami nie ucierpi.
- Jednorazowa operacja na danych
- Przeniesienie treści ze starego serwisu, oczyszczenie eksportu, masowa zmiana formatu. Kod uruchamia się raz i przestaje istnieć.
- Szkic interfejsu
- Szybkie sprawdzenie trzech układów ekranu, zanim ktokolwiek zacznie je projektować na poważnie. Dwa wyrzucacie i to jest cel ćwiczenia.
- Rusztowanie pod właściwy kod
- Powtarzalne fragmenty, konfiguracja, formularze, tłumaczenia. Inżynier i tak to przeczyta, ale nie musiał tego pisać ręcznie.
- Druga opinia przy błędzie
- Model bywa szybszy w postawieniu hipotezy niż człowiek wpatrzony w ten sam plik od godziny. Hipotezę nadal trzeba sprawdzić.
- Wspólny mianownik
- We wszystkich powyższych ryzyko jest ograniczone: albo kod żyje krótko, albo nie dotyka cudzych danych, albo błąd jest natychmiast widoczny. Gdy któryś z tych warunków znika, zmienia się kategoria problemu.
04Ograniczenia
Gdzie ta metoda pęka
Granica nie przebiega tam, gdzie większość ludzi ją stawia - nie przy liczbie linii kodu ani przy stopniu skomplikowania. Przebiega tam, gdzie pojawia się słowo cudze: cudze dane, cudze pieniądze, cudzy czas. Poniżej pięć miejsc, w których widać to najwyraźniej.
Bezpieczeństwo, czyli warstwa, której nie widać w przeglądarce
Aplikacja może wyglądać bez zarzutu i jednocześnie nie sprawdzać uprawnień. Zalogowany to nie to samo co uprawniony: jeśli identyfikator zamówienia w adresie da się podmienić na cudzy, a serwer grzecznie odpowie, to nie jest usterka wizualna, tylko wyciek danych. Podobnie z kluczami do usług zewnętrznych wklejonymi do kodu wysyłanego do przeglądarki, brakiem ograniczenia liczby prób logowania i budowaniem zapytań do bazy przez sklejanie tekstu. Żadnej z tych rzeczy nie zobaczycie, klikając.
Osobna kategoria to biblioteki. Model potrafi dopisać do zależności pakiet, który nie istnieje - a ktoś inny może taki pakiet założyć, licząc dokładnie na to. Sprawdzenie, czy każda zależność jest tym, za co się podaje, zajmuje kilka minut i praktycznie nigdy nie zdarza się w trybie, w którym kodu się nie czyta.
Model danych, czyli decyzja, której się później nie cofa
Ekran da się przerobić w godzinę. Struktura bazy, na której leżą dwa lata zamówień, nie. Model językowy proponuje domyślnie układ obsługujący to, o co poprosiliście teraz - a nie to, o co poprosicie za rok. Kiedy okazuje się, że klient może mieć kilka adresów, faktura kilka walut, a zamówienie historię zmian, poprawka nie polega na dopisaniu kolumny, tylko na migracji danych produkcyjnych. To jest ten moment, w którym prototyp przestaje być tani.
Utrzymanie, czyli koszt, który pojawia się w szóstym miesiącu
Kod, który działa, a którego nikt nie rozumie, jest zobowiązaniem, nie majątkiem. Pierwsze tygodnie są tanie i to jest cała siła tej metody. Rachunek przychodzi wtedy, gdy trzeba zmienić coś w środku: nie ma założeń zapisanych nigdzie poza historią czatu, nie ma testów opisujących, co miało się dziać, i nie ma nikogo, kto potrafi powiedzieć, dlaczego akurat tak.
Dochodzi do tego niedeterminizm. Ta sama prośba zadana dwa razy potrafi dać dwie różne architektury. W prototypie to nie przeszkadza. W systemie rozwijanym przez rok oznacza, że po pięciu takich rundach nie ma jednego wzorca, tylko pięć - i każdy trzeba zrozumieć osobno, zanim się cokolwiek ruszy.
Weryfikacja, czyli wąskie gardło, które się przesunęło
Pisanie kodu przestało być kosztowne. Sprawdzenie, czy ten kod robi to, co trzeba, kosztuje tyle samo co zawsze - i na tym polega cała zmiana. Testy napisane przez ten sam model, na podstawie tego samego nieporozumienia, potwierdzą nieporozumienie. Zielony wynik znaczy wtedy dokładnie tyle, że kod jest zgodny sam ze sobą.
Prawo i dane osobowe
Jeśli aplikacja przetwarza dane klientów, obowiązki nie znikają dlatego, że powstała szybciej. Trzeba wiedzieć, gdzie te dane leżą, jak długo, kto ma do nich dostęp i co się dzieje po żądaniu usunięcia. Osobna kwestia to wklejanie danych produkcyjnych do promptu: to przekazanie ich podmiotowi zewnętrznemu i wymaga świadomej decyzji, a nie odruchu w trakcie debugowania.
Nie znajdziecie tu procentu opisującego, jak często zdarza się każdy z tych problemów. Publikowane badania różnią się metodą i wynikami na tyle, że jedna liczba wprowadzałaby w błąd. Sensowniejsze pytanie brzmi: który z tych pięciu punktów dotyczy Waszego projektu i co się stanie, jeśli zawiedzie.
05Sedno
Co właściwie znaczy: profesjonalna aplikacja
Pytanie z tytułu jest źle postawione, dopóki nie ustalimy tego jednego słowa. Nie chodzi o styl kodu ani o listę technologii.
Chodzi o sześć rzeczy, których użytkownik nigdy nie zobaczy, a które rozstrzygają, czy da się na tym oprzeć firmę. Warto je przeczytać jako listę kontrolną, bo każdą da się sprawdzić w konkretnym projekcie w kilkanaście minut.
- Ktoś za to odpowiada
- Jest osoba, która potrafi powiedzieć, dlaczego system działa tak, a nie inaczej, i jest w stanie to zmienić. Bez tego nie ma czego serwisować - jest czarna skrzynka z cudzymi danymi w środku.
- Przetrwa awarię
- Kopie zapasowe, o których wiadomo, że da się je odtworzyć, bo ktoś próbował. Monitoring, który odezwie się wcześniej niż klient. Plan na dzień, w którym usługa zewnętrzna przestaje odpowiadać.
- Jest zabezpieczona po stronie serwera
- Uprawnienia sprawdzane tam, gdzie użytkownik nie sięgnie. Sekrety poza kodem. Ograniczenie liczby prób. To warstwa niewidoczna w przeglądarce i dlatego pomijana najczęściej.
- Da się ją przekazać
- Ktoś, kto jej nie pisał, wprowadza zmianę, nie psując trzech innych rzeczy. Najostrzejszy sprawdzian z całej szóstki i jednocześnie najrzadziej wykonywany przed podpisaniem umowy.
- Zachowanie jest zapisane, nie zapamiętane
- Testy i dokumentacja mówią, co system ma robić. Dzięki temu zmiana za rok jest zwykłą pracą, a nie archeologią prowadzoną na produkcji.
- Jest zgodna z prawem
- Regulamin, polityka prywatności, podstawa przetwarzania danych, obowiązki wobec konsumenta. Ta część nie ma nic wspólnego z kodem i nie powstaje z promptu.
Odpowiedź na pytanie z tytułu brzmi więc: tak, AI może napisać większość kodu profesjonalnej aplikacji - i coraz częściej pisze, również u nas. Nie może natomiast przejąć żadnej z tych sześciu pozycji, bo wszystkie sprowadzają się do tego, że ktoś bierze odpowiedzialność. To nie jest ograniczenie techniczne, które zniknie w kolejnej wersji modelu.
06Plan
Siedem kroków od prototypu do wersji, którą można wypuścić
Zakładamy najczęstszy przypadek: macie działający prototyp zbudowany z AI i chcecie go pokazać prawdziwym użytkownikom. Kolejność jest istotna, bo pierwszy krok potrafi unieważnić potrzebę wykonywania pozostałych.
01
Rozstrzygnijcie, czy to jeszcze prototyp
Trzy pytania: czy trafią tam cudze dane osobowe, czy przez system przechodzą pieniądze, czy ktoś poza Wami straci coś, gdy przestanie działać. Jedno tak wystarczy, żeby przestać traktować rzecz jak eksperyment. Trzy razy nie - zostawcie jak jest i wróćcie do pracy.
EfektOdpowiedź na trzy pytania, zapisana i zaakceptowana przez właściciela produktu
02
Wyjmijcie sekrety z kodu
Klucze do bramki płatniczej, hasła do bazy, tokeny do usług zewnętrznych. Sprawdźcie osobno, czy któryś nie trafił do kodu wysyłanego do przeglądarki - tam jest jawny dla każdego. Wszystko, co już wyciekło, wymaga wymiany, a nie samego przeniesienia w inne miejsce.
EfektLista sekretów: gdzie leżą teraz, gdzie mają leżeć, które trzeba wymienić
03
Sprawdźcie uprawnienia po stronie serwera
Dla każdego adresu zwracającego dane zadajcie jedno pytanie: co się stanie, jeśli podmienię identyfikator na cudzy. Ukryty przycisk nie jest zabezpieczeniem. To najczęstsza i najgroźniejsza luka w aplikacjach powstałych szybko, a jej sprawdzenie nie wymaga żadnego narzędzia.
EfektTabela: zasób, kto ma mieć dostęp, w którym miejscu jest to sprawdzane
04
Zamroźcie model danych świadomie
Przejdźcie strukturę bazy i skonfrontujcie ją z tym, co wiecie o biznesie, a czego nie było w promptach. Zmiana teraz kosztuje godziny. Ta sama zmiana za rok to migracja danych produkcyjnych i przestój w środku sezonu.
EfektSchemat bazy z opisem, co reprezentuje każda tabela i dlaczego tak
05
Opiszcie testami to, co musi działać
Nie całość - ścieżki, których awaria kosztuje: rejestracja, płatność, wysyłka zamówienia. Testy pisze się na podstawie wymagań biznesowych, nigdy na podstawie istniejącego kodu, bo wtedy utrwalają błąd zamiast go łapać.
EfektZestaw testów dla ścieżek krytycznych, uruchamiany automatycznie przy każdej zmianie
06
Ustawcie kopie, monitoring i sposób na wycofanie zmiany
Kopia zapasowa, której nikt nie próbował odtworzyć, nie jest kopią. Do tego powiadomienie o błędach trafiające do człowieka i możliwość cofnięcia wdrożenia w kilka minut. Bez tej trójki każdy problem produkcyjny staje się kryzysem.
EfektOdtworzona kopia testowa z datą próby oraz działające powiadomienia o błędach
07
Zdecydujcie, kto to utrzymuje
Ostatni krok jest organizacyjny, nie techniczny, i pomijany najczęściej. Ktoś musi mieć czas, dostęp i wiedzę, żeby zareagować w środę o siedemnastej. Jeśli tej osoby nie ma, poprzednie sześć kroków zestarzeje się w kilka miesięcy.
EfektWskazana osoba lub podmiot, zakres obowiązków i czas reakcji zapisane na piśmie
07Ostrzeżenia
Cztery rzeczy, które nie działają
Wszystkie cztery widzieliśmy w projektach, które trafiły do nas po fazie szybkiego budowania. Żadna nie rozwiązuje problemu, a dwie środkowe potrafią sytuację pogorszyć.
Naprawianie błędu kolejnym promptem
Prośba w stylu napraw to, bez wcześniejszej diagnozy, daje kod usuwający objaw. Po kilku takich rundach system ma kilka nakładających się obejść tego samego problemu, a pierwotna przyczyna nadal tam siedzi - tylko trudniej ją teraz znaleźć, bo przykryły ją poprawki.
Testy wygenerowane z istniejącego kodu
Test napisany przez model, który patrzy na gotową implementację, opisuje to, co kod robi, a nie to, co miał robić. Jeśli implementacja jest błędna, test tę pomyłkę zatwierdza i zaczyna chronić ją przed poprawieniem. Testy pisze się z wymagań - to jedna z niewielu zasad, przy których naprawdę nie ma skrótu.
Przepisanie wszystkiego od zera, gdy zrobi się nieprzyjemnie
Kuszące, bo drugie podejście zawsze wygląda na czystsze. Problem w tym, że prototyp zawiera setki drobnych decyzji podjętych w kontakcie z rzeczywistością, a połowa z nich nie jest nigdzie zapisana. Przepisanie gubi je po cichu i odtwarza te same błędy, tylko w nowszej składni.
Zakładanie, że kolejna wersja modelu to rozwiąże
Modele rzeczywiście się poprawiają i część problemów z tej listy zniknie. Nie zniknie ta część, która nie jest problemem technicznym: kto odpowiada za dane klientów, kto odbierze telefon przy awarii i kto podpisuje umowę powierzenia przetwarzania. Czekanie nie jest planem.
08Jeśli chcecie to zlecić
Robimy to jako usługę
09Pytania
Najczęstsze pytania o budowanie z AI
Czy da się wypuścić na produkcję aplikację napisaną w całości przez AI?
Tak i dzieje się to codziennie. Pytanie brzmi raczej, czy ktoś ją przedtem przeczytał. Kod wygenerowany i przejrzany przez osobę rozumiejącą konsekwencje jest zwyczajnym kodem - jego pochodzenie przestaje mieć znaczenie. Kod wygenerowany i wypuszczony bez czytania to zakład, w którym stawką są cudze dane, a wygrana jest niewielka: kilka zaoszczędzonych godzin.
Po czym poznać, że prototyp przestał być prototypem?
Po jednym z trzech sygnałów: trafiły do niego cudze dane osobowe, przechodzą przez niego pieniądze albo ktoś poza Wami zaczął na nim polegać w pracy. Każdy z nich osobno wystarczy. Od tego momentu obowiązują te same wymagania co przy każdym innym oprogramowaniu - bez taryfy ulgowej za sposób powstania.
Ile kosztuje doprowadzenie prototypu do wersji produkcyjnej?
Zależy przede wszystkim od dwóch rzeczy: czy model danych da się utrzymać i jak głęboko sięgają braki w warstwie uprawnień. Obie rozstrzyga się na przeglądzie kodu, zwykle w kilka godzin, i dopiero potem da się rozmawiać o kosztach sensownie. Uczciwa wycena przed zajrzeniem do kodu nie istnieje, a każda podana z góry jest zgadywaniem.
Czy mogę wkleić do modelu kod naszej aplikacji?
To zależy od warunków usługi, z której korzystacie, i od tego, czyje dane są w tym kodzie. Fragment logiki bez danych produkcyjnych to inna sytuacja niż zrzut bazy z danymi klientów - ten drugi jest przekazaniem danych osobowych podmiotowi zewnętrznemu i wymaga podstawy prawnej. Decyzję warto podjąć raz, świadomie, i zapisać jako wewnętrzną zasadę, zamiast rozstrzygać ją za każdym razem w pośpiechu.
Do kogo należy kod wygenerowany przez AI?
To pytanie ma dziś więcej niż jedną odpowiedź i różni się między jurysdykcjami, więc potraktujcie poniższe jako wskazanie kierunku, a nie poradę prawną. W praktyce liczą się dwie rzeczy: warunki licencyjne narzędzia, z którego korzystacie, oraz zapis w umowie z wykonawcą przenoszący prawa do całości dostarczonego kodu. Drugi punkt sprawdzajcie zawsze, niezależnie od tego, kto i czym pisał.
Czy AI zabierze pracę programistom?
Zabiera przede wszystkim tę część pracy, która polegała na pisaniu powtarzalnych fragmentów - i dobrze. Rośnie za to udział czynności, których nie da się zlecić modelowi: ustalania, co system ma właściwie robić, rozstrzygania kompromisów, weryfikacji wyniku i brania za niego odpowiedzialności. Wąskim gardłem przestało być pisanie, a stało się sprawdzanie.
10Czytaj dalej
Powiązane strony
Macie prototyp i nie wiecie, czy można go wypuścić?
Podeślijcie repozytorium albo sam opis: co aplikacja robi i czyje dane przetwarza. Odpiszemy, co trzeba zmienić przed pierwszym prawdziwym użytkownikiem, czego da się nie ruszać i w jakiej kolejności to robić.