Praėjusiais metais pas mane kreipėsi žmogus su sakiniu, kurį dabar girdžiu vis dažniau: „Aplikaciją jau turiu, ji veikia, reikia tik paskutinio štricho.“ Atsidariau jo ekraną – ir tikrai, veikė. Gražus interfeisas, mygtukai spaudžiami, duomenys atsiranda. Viskas sukurta per kelias dienas su Lovable, beveik be vienos parašytos kodo eilutės. Problema buvo ta, kad „paskutinis štrichas“ iš tikrųjų buvo viskas, kas skiria demo nuo produkto. Ir to „viso“ buvo daugiau nei viso ankstesnio darbo.
Šitas reiškinys jau turi pavadinimą – vibe coding. Šiame straipsnyje paaiškinsiu, kas tai yra, kodėl jis genialus prototipui ir pavojingas produktui, ko konkrečiai vibe-coded aplikacijai trūksta, kada jo visiškai pakanka (taip, kartais tikrai pakanka), ir kaip iš tokio prototipo padaryti realų, produkcijoje veikiantį produktą.
Kas yra vibe coding
Vibe coding – tai programavimo būdas, kai aplikaciją kuri ne rašydamas kodą, o aprašydamas natūralia kalba AI įrankiui, ko nori. „Padaryk man užduočių sąrašo aplikaciją su prisijungimu ir tamsiu režimu“ – ir po kelių sekundžių turi veikiantį ekraną. Tau nepatinka spalva, prašai pakeisti. Trūksta mygtuko, prašai pridėti. Tu nerašai kodo eilutė po eilutės – vairuoji pagal pojūtį: prašai, žiūri į rezultatą, prašai pataisyti.
Įrankiai, kurie tai daro, jau gerai žinomi: Lovable ir Bolt generuoja visą aplikaciją, v0 – interfeisą, Cursor ir ChatGPT rašo kodą pagal pokalbį. Tai tikrai įspūdinga technologija ir aš jos nemenkinu – pats kasdien naudoju AI įrankius savo darbe. Klausimas niekada nebuvo „ar AI gali rašyti kodą“. Klausimas yra „ar tas, ką jis parašė, atlaikys realų pasaulį“.
Nes vibe coding turi vieną nematomą savybę: jis optimizuotas tam, kad atrodytų, jog veikia. AI generuoja kodą, kuris praeina akivaizdų testą – tu paspaudi mygtuką ir kažkas nutinka. Bet „veikia mano ekrane“ ir „veikia produkcijoje realiems naudotojams“ yra du visiškai skirtingi dalykai, o tarp jų slypi būtent tas darbas, kurio AI nepadaro savaime.
Kodėl jis nuostabus prototipui ir pavojingas produktui
Prototipo užduotis viena – įrodyti idėją. Jam pakanka veikti tau, vieną kartą, laiminguoju keliu (taip vadinu scenarijų, kai naudotojas viską daro teisingai ir niekas ne"lūžta"). Jei nori parodyti investuotojui, kaip atrodys tavo paslauga, arba pats sau patikrinti, ar idėja apskritai turi prasmę – vibe coding čia neprilygstamas. Tai, kam anksčiau reikėjo savaitės ir kelių tūkstančių eurų, dabar padaroma per popietę. Tai realus, didžiulis pliusas.
Produkto užduotis visai kita. Produktas turi veikti ne tau, o nepažįstamiems žmonėms. Su blogu internetu. Su klaidingai įvestais duomenimis. Su žmogumi, kuris bando tave apgauti. Naktį, kai tu miegi. Po pusės metų, kai pasikeitė biblioteka. Su tūkstančiu naudotojų vienu metu, ne su vienu. Štai kur vibe-coded prototipas pradeda byrėti – ir byra ne ten, kur matosi, o ten, kur nesimato, kol nepasidaro vėlu.
Pavojingiausia vibe coding iliuzija
Kai aplikacija atrodo 90 % baigta, intuicija sako, kad liko 10 % darbo. Realybėje yra atvirkščiai: matoma dalis (interfeisas, mygtukai, ekranai) yra ta lengvoji, kurią AI padaro gerai. O nematoma dalis – saugumas, duomenys, kraštiniai atvejai, deploy – yra ir sunkiausia, ir brangiausia. Tą sunkųjį 30 % aš atskirai aprašiau straipsnyje „Pradėjai kurti aplikaciją su AI ir įstrigai? Ką daryti toliau“.
7 dalykai, kurių vibe-coded aplikacija neturi
Kai paimu į rankas vibe-coded projektą, beveik visada trūksta tų pačių septynių dalykų. Ne todėl, kad AI „blogas“ – tiesiog jis generuoja tai, ko prašai, o šitų dalykų niekas neprašo, nes apie juos net nežinai, kol jie netampa problema.
| Ko trūksta | Kodėl tai svarbu produkcijoje |
|---|---|
| 1. Automatiniai testai | Be testų kiekvienas pakeitimas yra azartas. Pataisai vieną vietą – nematomai sulūžta kita. Vibe-coded kode testų beveik niekada nėra, todėl projektas darosi vis trapesnis, kuo daugiau jį liečia. |
| 2. Klaidų valdymas | Kas nutinka, kai nutrūksta internetas, serveris neatsako arba naudotojas įveda šiukšlę? Prototipe – baltas ekranas arba krašas. Produkte turi būti aiškus pranešimas, atsarginis kelias ir tylus klaidos užfiksavimas. |
| 3. Saugumas | Atviri API raktai pačiame kode, neapsaugota duomenų bazė, kur bet kas gali pasiimti svetimus duomenis, jokio įvedimo validavimo. Tai dažniausia ir pavojingiausia vibe-coded spraga – ją išnaudoja per minutes. |
| 4. Duomenų migracijos | Kai pridedi naują lauką ar pakeiti struktūrą, jau turimi naudotojų duomenys turi „persikraustyti“ be praradimų. Vibe prototipe duomenų schema keičiama trinant ir kuriant iš naujo – produkcijoje tai reikštų ištrintus klientus. |
| 5. Monitoringas | Produkcijoje turi sužinoti apie problemą anksčiau už naudotoją. Be klaidų sekimo ir logų tu nematai, kad pusė žmonių negali prisijungti – sužinai tik tada, kai jie nustoja grįžti. |
| 6. Mastelis | Kodas, kuris dirba su vienu naudotoju, gali subyrėti su šimtu. Neoptimizuotos užklausos, jokio talpyklavimo, viskas vienoje gijoje – prototipui nesvarbu, produktui lemtinga pirmą sėkmingą dieną. |
| 7. Priežiūra | Bibliotekos sensta, atsiranda saugumo spragos, keičiasi mokėjimų ir prisijungimo taisyklės. Produktas reikalauja nuolatinio prižiūrėjimo. Vibe-coded kodas, kurio niekas nesupranta, tampa nepataisomu po pirmo rimto gedimo. |
Atkreipk dėmesį: nė vieno iš šių septynių dalykų naudotojas nemato, kol viskas gerai. Visi jie pasimato tą vieną blogą dieną – ir būtent dėl jų produktą statyti brangiau ir lėčiau nei prototipą. Tai ne „lakas“ pabaigai, tai pamatas.
Kada vibe coding tikrai pakanka
Dabar – svarbiausia ir sąžiningiausia šio straipsnio dalis. Vibe coding nėra „blogai“. Yra daug atvejų, kai jis ne tik pakanka, bet ir yra protingiausias pasirinkimas. Jei tu pataikai į vieną iš jų – nesamdyk manęs, taupyk pinigus ir kurk pats.
Čia vibe coding tikrai užtenka
- Vidinis įrankis kelioms žmonėms. Skaičiuoklė, lentelė, paprasta sistema, kurią naudoja tavo komanda. Jei nelaiko svetimų duomenų ir nepriima pinigų – statyk su AI ir nesuk galvos.
- Demo investuotojui ar klientui. Reikia parodyti, kaip atrodys idėja. Niekam nesvarbu, kas po kapotu, jei tikslas – įtikinti, ne aptarnauti.
- Idėjos vizualizacija sau. Nori pamatyti, ar tavo sumanymas apskritai turi prasmę, prieš investuojant rimtus pinigus. Vibe prototipas atsako į šitą klausimą pigiausiai.
- Asmeninis projektas. Hobis, asmeninis dienoraštis, įrankis sau. Jei sulūš – sulūš tau vienam, ir tu tai ištversi.
Bendra taisyklė paprasta: jei aplikacija nelaiko svetimų duomenų ir nepriima pinigų, vibe coding tau greičiausiai užtenka.
Kada vibe coding nebepakanka
O dabar kita pusė. Yra riba, už kurios „atrodo, kad veikia“ tampa rizika, kuri kainuoja kur kas daugiau nei sutaupei statydamas. Ją peržengi tą akimirką, kai aplikaciją pradeda naudoti žmonės, kurių tu nepažįsti, arba kai per ją juda pinigai.
| Vibe coding pakanka | Reikia profesionalaus perstatymo |
|---|---|
| Naudoji tik tu arba siauras patikimas ratas | Naudoja nepažįstami, realūs klientai |
| Jokių pinigų sistemoje | Mokėjimai, prenumeratos, atsiskaitymai |
| Duomenys nesvarbūs arba vieši | Asmens duomenys, GDPR, klientų privatumas |
| Sulūžimas nekainuoja nieko | Prastova reiškia prarastus klientus ar reputaciją |
| Gyvuoja kelias savaites | Turi veikti ir būti prižiūrimas metų metus |
Vos tik atsiranda realūs klientai ar mokėjimai, kiekvienas iš tų septynių trūkstamų dalykų virsta atsakomybe. Neapsaugota duomenų bazė su tavo klientais – jau ne techninė smulkmena, o GDPR pažeidimas. Mokėjimai be klaidų valdymo – pinigai, kurie dingsta tarp tavęs ir banko. Štai kodėl čia jau nebe vibe coding klausimas, o produkto klausimas.
Kaip iš vibe prototipo padaryti produktą
Gera žinia: vibe prototipas dažnai nėra iššvaistytas darbas – jis yra puikus startas. Tu jau apsisprendei, ką aplikacija daro, kaip atrodo, kokia logika. Tai vertingiausia ir sunkiausiai užrašoma specifikacijos dalis, ir ji jau padaryta. Lieka uždaryti tą sunkųjį 30 %, dėl kurio prototipas nėra produktas.
Kai į mane kreipiasi su vibe-coded projektu, pirmiausia peržiūriu repo ir nusprendžiu vieną dalyką: tęsti ant esamo kodo ar perstatyti švariai. Sprendimą lemia ne kodo kiekis, o jo struktūra. Jei logika ir duomenų modelis sveiki, tęsiu ant jų ir pridedu trūkstamą sluoksnį. Jei kodas chaotiškas, su atvirais raktais ir nesuvaldomu state – švarus perstatymas išeina greičiau ir pigiau nei lopymas. Plačiau apie tai, kas nutinka, kai AI kodas pradeda griūti ir „taisomas“ griūva dar labiau, rašau atskirame straipsnyje „Lovable, Bolt, v0, Cursor – ką daryti, kai AI kodas sulūžta“.
Kelias nuo prototipo iki produkcijos
- Auditas. Peržiūriu, kas tikrai veikia, o kas tik atrodo. Surandu saugumo spragas ir kritines vietas.
- Tvirtas pamatas. Saugi duomenų bazė, normalus prisijungimas, paslėpti raktai, įvedimo validavimas – tai, ant ko galima statyti.
- Sunkusis 30 %. Mokėjimai, integracijos, klaidų valdymas, kraštiniai atvejai. Lietuvoje čia dažnai prisideda vietinės integracijos (Paysera, Smart-ID, e-sąskaita), kurių AI nepajungs.
- Saugiklis. Testai, monitoringas ir logai, kad apie problemą sužinotum tu, ne tavo klientas.
- Deploy ir priežiūra. Tikras domenas, tikras hostingas, atsarginės kopijos ir aiškus susitarimas, kas prižiūrės toliau.
Mano siūlymas niekada nėra „sutvarkysiu tavo kodą“. Jis yra „pastatysiu, kad veiktų ir uždirbtų“. Skirtumas esminis: kodo tvarkymas yra kosmetika, o produkto pastatymas reiškia, kad tavo klientai gali ramiai naudotis, mokėti ir grįžti, o tu gali ramiai miegoti.
Realūs skaičiai
Konkrečiai apie kainą, nes vis tiek to klausi. Jei vibe prototipas jau turi logiką ir ekranus, švarus perstatymas iki produkcijos – su autentifikacija, saugumu, deploy ir bazinėmis integracijomis – paprastai kainuoja nuo 3 000 iki 8 000 EUR. Sudėtingesni produktai su mokėjimais, vietinėmis integracijomis ir admin panele – nuo 8 000 EUR ir daugiau. Terminai dažniausiai 2–6 savaitės, priklausomai nuo to, kiek prototipas iš tikrųjų pasiekė.
Tai gali skambėti kaip nemažai už „beveik baigtą“ projektą. Bet prisimink lentelę su septyniais trūkstamais dalykais – tu nemokėsi už lakavimą, mokėsi už tą pamatą, be kurio aplikacija nėra produktas, o tik jo nuotrauka.
Turi vibe-coded prototipą, kurį nori paversti realiu produktu?
Peržiūrėsiu tavo Lovable, Bolt, v0 ar Cursor projektą ir atvirai pasakysiu, ar verta tęsti ant esamo kodo, ar pigiau perstatyti švariai – su konkrečia kaina ir terminu. Pirma konsultacija nemokama.
Aptarti mano projektąDažniausiai užduodami klausimai
Kas yra vibe coding?
Vibe coding – tai programavimo būdas, kai aplikaciją kuri natūralia kalba aprašydamas AI įrankiui (Lovable, Bolt, v0, Cursor, ChatGPT), ko nori, o jis generuoja kodą. Tu nerašai kodo eilutė po eilutės – vairuoji „pagal pojūtį“: prašai, žiūri į rezultatą, prašai pataisyti. Tai puikiai tinka greitam prototipui, bet sugeneruotas kodas dažnai neturi to, ko reikia produkcijai – testų, klaidų valdymo, saugumo.
Kuo prototipas skiriasi nuo produkto?
Prototipas turi įrodyti idėją – pakanka, kad jis veikia tavo ekrane laiminguoju keliu. Produktas turi veikti produkcijoje, su realiais naudotojais, blogu internetu, klaidingais įvedimais ir piktavaliais. Skirtumą sudaro testai, klaidų valdymas, saugumas, duomenų migracijos, monitoringas, mastelis ir priežiūra – būtent tai, ko vibe-coded prototipas dažniausiai neturi.
Ar galima vibe-coded prototipą paleisti į produkciją?
Techniškai paleisti gali, bet realiems klientams ar mokėjimams to nepatariu. Vibe prototipe paprastai trūksta saugumo (atviri API raktai, neapsaugota duomenų bazė), klaidų valdymo ir monitoringo. Pirmas piktavalis arba pirmas netikėtas duomuo lengvai jį parverčia. Prieš paleidimą reikia žmogaus, kuris uždaro tą sunkųjį 30 % – saugumą, duomenis, deploy ir kraštinius atvejus.
Kada vibe coding tikrai pakanka?
Vibe coding pakanka, kai aplikacija nelaiko svetimų duomenų ir nepriima pinigų: vidiniam įrankiui kelioms žmonėms, demo investuotojui, idėjos vizualizacijai, asmeniniam projektui. Jei tave naudoja tik tu pats arba siauras patikimas ratas, vibe-coded sprendimas sutaupo daug laiko ir pinigų – tokiu atveju tikrai nesiūlysiu samdyti developer'io.
Kiek kainuoja iš vibe prototipo padaryti realų produktą?
Priklauso nuo to, kiek prototipas pasiekė. Jei logika ir ekranai jau yra, švarus perstatymas iki produkcijos su autentifikacija, saugumu, deploy ir bazinėmis integracijomis paprastai kainuoja nuo 3 000–8 000 EUR. Sudėtingesni produktai su mokėjimais, vietinėmis integracijomis ir admin panele – nuo 8 000 EUR ir daugiau. Sunkiausia ir brangiausia dalis visada yra tas paskutinis 30 %, ne pradžia.
Ar verta tęsti ant vibe-coded kodo, ar perrašyti iš nulio?
Sprendimą lemia ne kodo kiekis, o jo struktūra. Jei prototipo logika ir duomenų modelis sveiki, dažnai galiu tęsti ant jų ir tik pridėti trūkstamą produkcijos sluoksnį. Jei kodas yra chaotiškas, su atvirais raktais ir nesuvaldomu state, švarus perstatymas išeina greičiau ir pigiau nei lopymas. Sprendžiu peržiūrėjęs repo – ir visada renkuosi tą kelią, kuris tave pigiau nuveda iki veikiančio, prižiūrimo produkto.