Hari pertama dari aplikasi vibe-coded adalah demo terbaik yang pernah Anda berikan. Prompt-nya berhasil, layarnya bersih, database-nya terisi, dan Anda mengunggah tweet dengan rekaman layar. Kami sudah mengalami hari itu berkali-kali. Kami tidak bermaksud mengambil kesenangan itu dari Anda.
Kami di sini untuk membahas hari kedua, karena tidak ada thread peluncuran yang membahasnya. Hari kedua adalah saat pengguna nyata login, melakukan sesuatu yang tidak terpikirkan untuk Anda uji, dan aplikasi Anda menemui celah antara “hasil generate” dan “hasil engineering.”
Seperti apa tampilan hari kedua yang sebenarnya
Jarang dimulai dengan crash. Dimulai dengan hal aneh: formulir yang menerima input sampah, halaman yang rusak untuk satu pengguna tertentu, angka yang salah dengan cara yang tidak bisa direproduksi oleh siapa pun. Anda menempelkan error tersebut ke chat. AI memperbaikinya dengan percaya diri. Perbaikan tersebut merusak hal lainnya.
Selamat datang di permainan whack-a-mole prompt. Karena AI memperbaiki gejala dan bukan akar masalah, setiap patch menumpuk di atas patch sebelumnya, dan basis kode secara diam-diam menjadi apa yang disebut builder sebagai ‘kode Frankenstein’: tambal sulam dari gaya yang saling bertentangan, fungsi duplikat, dan logika kusut di mana query database berada di dalam kode antarmuka. Saat proyek tumbuh melampaui jendela konteks AI, model mulai melupakan keputusan sebelumnya dan mengusulkan kode yang kontradiktif. Anda tidak lagi memelihara aplikasi. Anda sedang bernegosiasi dengannya.
Ada varian yang lebih kejam: kegagalan deploy yang diam-diam. Build hosting Anda gagal karena error kecil, URL live tetap menampilkan versi lama, dan Anda - karena tidak melihat perubahan - memberi tahu AI bahwa perbaikannya “tidak berhasil.” Jadi, AI menghasilkan solusi yang benar-benar berbeda dan lebih kompleks untuk masalah yang sebenarnya sudah teratasi. Beberapa putaran kemudian, Anda memiliki kode v5 yang membengkak, padahal v1-nya sudah baik-baik saja.
Bagian yang tidak bisa Anda lihat
Treadmill debugging setidaknya terlihat. Masalah keamanan tidak terlihat, dan itulah alasan kami bersikap tegas mengenai hal ini untuk build bisnis.
Riset di bidang ini benar-benar tidak nyaman. Kode yang dihasilkan LLM berhasil dikompilasi sekitar 90% dari waktu, tetapi sekitar 45% di antaranya mengandung kerentanan OWASP Top 10 - pemeriksaan login yang bisa dilewati, celah injeksi. Alat AI mengoptimalkan agar demo berjalan lancar, yang menghasilkan jalan pintas yang dapat diprediksi: kontrol akses diimplementasikan di browser di mana pengguna mana pun dapat melewatinya dengan mengedit halaman, izin database dibuka lebar agar tidak ada error saat build, dan kunci API dihardcode ke dalam file karena buildernya tidak tahu apa itu environment variable. File-file tersebut kemudian didorong ke repo GitHub publik, di mana pengumpul kredensial menemukannya sesuai jadwal.
Inilah yang membuat ini menjadi masalah hari kedua secara khusus: aplikasi yang dapat dieksploitasi tetap berjalan sempurna. Tidak ada pesan error untuk “klien A secara teknis dapat membaca catatan klien B.” Anda mengetahuinya dari pengguna, jika Anda beruntung, atau jauh lebih buruk jika tidak. Dan saran standar (“uji saja!”) berbenturan dengan kenyataan: builder non-teknis menguji jalur sukses (happy path), sementara kegagalan terletak pada edge cases - bug konkurensi, alur reset kata sandi yang terlupakan yang tidak pernah dihasilkan AI karena demo tidak membutuhkannya.
Utang pemeliharaan yang tidak pernah dicatat
Kumpulkan mekanika tersebut selama berbulan-bulan dan Anda akan mendapatkan apa yang kami anggap sebagai pinjaman cepat teknis (payday loan of technical debt): perangkat lunak instan sekarang, bunga berbunga kemudian. Setiap jalan pintas yang diambil AI adalah perbaikan di masa depan. Setiap perbaikan berarti beberapa kredit lagi dan sedikit lebih banyak pembengkakan kode. Update platform muncul dan merusak hal-hal yang tidak Anda sentuh - builder jangka panjang pada platform prompt-to-app melaporkan penagihan biaya pemeliharaan bulanan kepada klien hanya untuk menangani regresi dari platform itu sendiri.
Inilah lelucon pahit di pusatnya: vibe coding menjanjikan demokratisasi perangkat lunak, dan untuk aplikasi produksi, ia sebagian besar mendemokratisasi utang teknis. Builder non-teknis akhirnya memegang tepat hal yang mereka gunakan AI untuk hindari - basis kode yang membutuhkan penilaian pengembang - kecuali sekarang hal itu menjadi penopang bisnis mereka, dan mereka tidak bisa membacanya.
Persimpangan yang jujur
Jadi apa yang sebenarnya harus Anda lakukan? Setelah banyak melakukan build dan beberapa luka, kami pikir ini bermuara pada persimpangan dengan dua jalan jujur, dan jalan tengah yang tidak jujur adalah satu-satunya jawaban yang salah.
Jalur satu: belajar memelihara kode. Jika Anda cukup menyukai ini untuk mendalaminya, vibe coding menjadi akselerator yang sah, bukan jebakan. Baca apa yang ditulis agent. Pelajari apa arti RLS sebelum Anda meluncurkan aplikasi yang bergantung padanya. Tingkatkan dari alat prompt-only ke Cursor atau Replit, di mana kode adalah antarmukanya dan Anda dapat membangun penilaian yang nyata. Jalur ini benar-benar hebat - ini hanyalah sebuah jalan, dengan bulan-bulan perjalanan di dalamnya, dan berpura-pura Anda berada di jalur ini sambil mengirimkan kode yang tidak dibaca kepada klien adalah jebakannya.
Jalur dua: letakkan bagian berbahaya pada fondasi yang tidak dihasilkan (generated). Jujurlah bahwa aplikasi Anda adalah alat bisnis - portal klien, pelacak, CRM internal - dan sadarilah bahwa 80% darinya adalah infrastruktur yang paling buruk dihasilkan AI: auth, izin, reset kata sandi, akses data. Bangun kategori tersebut pada platform no-code seperti Softr, di mana infrastrukturnya adalah sistem yang teruji yang Anda konfigurasi secara visual, dan AI Co-Builder tetap memberi Anda kecepatan hari pertama. Saat Anda menginginkan sentuhan kustom, blok vibe-coding-nya membatasi kode yang dihasilkan pada satu komponen saja, sehingga AI dapat mendekorasi rumah tanpa merobohkan atapnya. Hari kedua pada jalur ini adalah pengeditan, bukan penggalian arkeologi - itulah mengapa ia memuncaki peringkat portal klien kami.
Teruskan vibe coding untuk hal-hal menyenangkan dengan bebas - prototipe, mainan, eksperimen akhir pekan adalah hal yang sangat dikuasai oleh alat-alat ini. Cukup putuskan, sebelum pengguna nyata datang, di sisi persimpangan mana Anda berdiri. Hari kedua tidak akan meminta dengan sopan.