Lewati ke konten
Chandler Nguyen
AI6 menit baca

Saya Membangun App dengan Nyaris Tanpa Antarmuka. Justru Itu Intinya.

Ulasan terbaik tentang app komedi saya datang dari sebuah meja bersama empat teman dan satu putaran minuman — dan versi pertama saya gagal melewatinya. Jadi saya hapus format leluconnya, lalu saya hapus antarmukanya. Inilah yang dipaksakan oleh app dengan satu gestur, kenapa batas 75 detik sebenarnya soal seberapa lama orang duduk di meja, dan bagian yang tidak nyaman bagi siapa pun yang pekerjaan sehari-harinya adalah metrik atensi.

Ulasan terbaik tentang app komedi saya datang dari sebuah meja bersama empat teman dan satu putaran minuman.

Seseorang berkata, "Ayo ceritakan lelucon." Saya melakukan apa yang semua orang lakukan sekarang: mengambil ponsel, membuka sesuatu, dan mulai menggulir dengan jempol sementara lima percakapan menunggu saya kembali. Itu persis perilaku yang saya bangun Knora untuk dihindari, dan versi pertama saya gagal di ujian yang sama dengan cara yang sama.

Knora adalah app iPhone gratis, tersedia di App Store. Kamu kocok ponselnya, satu sketsa komedi pendek diputar dari awal sampai akhir dengan satu atau dua suara, lalu tidak ada lagi yang bisa dilihat. Tidak ada feed untuk digulir, tidak ada perpustakaan untuk dijelajahi, tidak ada akun untuk dibuat. Seluruh antarmukanya adalah satu gestur. App ini diberi rating 18+ untuk bahasa dan temanya, yang justru jadi inti dari hal ini sekaligus alasan kenapa app ini bukan untuk semua orang di meja.

Saya sampai ke sana dengan menghapus dua hal, dan tidak ada satu pun penghapusan itu yang nyaman. Yang pertama menghapus format yang sudah dipahami pengguna. Yang kedua menghapus sebagian besar app.

Hal pertama yang saya hapus adalah format leluconnya

Knora dimulai sebagai app lelucon "toc-toc". App itu berfungsi, dalam arti menghasilkan lelucon toc-toc sesuai permintaan. Masalahnya, bentuknya justru jadi batas atasnya. Setiap lelucon toc-toc punya kerangka yang sama — pembukaan, "siapa di situ?", dan punchline-nya — dan sebuah model bisa menulis satu yang bagus di dalam kerangka itu tapi tetap saja hanya akan menghasilkan lelucon toc-toc. Strukturnya menentukan seberapa lucu app ini bisa jadi, dan seberapa pun kerasnya kerja pada prompt tidak akan mengalahkan strukturnya.

Jadi saya hapus formatnya. Itu berarti menghapus hal yang orang kenali — hal yang aneh untuk dilakukan pada produk yang baru saja mulai berfungsi.

Yang menggantikannya adalah sekumpulan metode komedi, bukan template. Setiap sketsa dibangun dari tepat satu metode, tidak pernah campuran beberapa: sebuah aturan absurd yang nyata diterapkan pada hal yang sangat kecil, atau cerita yang menyita waktu lalu berbalik, atau sesuatu yang dibuka seperti pujian tapi bukan pujian. Ada empat yang aktif. Generator memilih satu untuk tiap sketsa; app tidak pernah memilih.

Satu perubahan itu berbuat lebih banyak untuk hasilnya daripada semua revisi prompt sebelumnya. Itulah pelajaran tidak nyaman yang pertama: kadang modelnya bukan hambatan sejak awal. Wadahnya yang jadi hambatan.

Hal kedua yang saya hapus adalah antarmukanya

Menghapus layar-layarnya lebih sulit, karena layar adalah cara kamu menunjukkan ke pengguna bahwa kamu sudah membangun sesuatu.

App yang dibuka di sebuah meja bersaing dengan mejanya. Setiap elemen yang saya tambahkan — daftar suara yang bisa dijelajahi, perpustakaan sketsa yang kamu suka, profil kecil — membuat ponsel lebih menarik daripada orang-orang yang memegang minuman. Brief-nya berhenti jadi "bikin app komedi yang bagus" dan berubah jadi "satu gestur, lalu ponselnya turun lagi".

Jadi tidak ada onboarding dan tidak ada login. Kamu bisa memilih suara dan bahasa kalau memang peduli, kalau tidak, seorang pencerita acak dipilih saat pertama kali dibuka dan kamu tidak pernah membuka layar pengaturan sama sekali. Tidak ada personalisasi untuk diatur, yang berarti tidak ada personalisasi yang bisa salah.

App komedi yang hanya bersuara tanpa mikrofon butuh penjelasan, jadi terus terang: app ini tidak pernah mendengarkan. Tidak ada yang perlu diucapkan keras-keras dan tidak ada yang perlu diketik. Sketsanya ditulis di server dan dikirim ke ponsel sebagai audio; ponselnya adalah pengeras suara dengan sensor guncangan yang menempel.

Apa yang sebenarnya dipaksakan oleh "tanpa UI"

Menghapus antarmuka dulu adalah keputusan selera. Di dunia di mana setiap app memperebutkan perhatianmu dengan notifikasi dan layar yang ramai, saya ingin layar hampir-hitam yang dijalankan dengan mengguncang. Tapi keputusan itu membawa serta sekumpulan batasan rekayasa, dan itulah yang layak diuraikan.

Setiap kocokan harus instan. Kalau sebuah sketsa butuh enam detik untuk muncul, mejanya sudah beralih dan ponselnya sudah telungkup lagi. Jadi sketsa ditulis dan disuarakan lebih dulu lalu disajikan dari katalog. Generasi langsung tetap ada, tapi sebagai cadangan dan pengisian ulang — yang menjaga katalog agar tidak basi, bukan jalur yang ditunggu pengguna.

Tanpa penjelajahan berarti tanpa pilihan. Tanpa daftar untuk dipilih, app tidak mengirim gaya maupun pilihan model. Backend memilih satu metode, menulis beberapa draf, dan menyimpan yang terbaik sebelum audio apa pun dibuat. Penilaiannya pindah ke server karena tidak ada tempat di layar untuk menaruhnya.

Satu sketsa dibatasi sekitar tujuh puluh lima detik. Itu bukan batas teknis; itu anggaran sepanjang meja. Cukup lama untuk bercerita, cukup pendek supaya tidak ada seorang pun di meja yang menunggu menit ketiga dari sesuatu yang tidak berhasil.

Kliennya 2.5 MB. Hampir tidak ada apa pun di dalam app, karena hampir tidak ada apa pun yang seharusnya ada di dalam app.

Penulisnya bisa ditukar. Produksi menjalankan Gemini 3.8 Flash, dengan model lain yang menangani moderasi dan pemilihan best-of-N. Mengganti penulis adalah perubahan konfigurasi dan bukan rilis app sama sekali — ini penting ketika model yang kamu pakai diganti setiap beberapa bulan.

Kamu tidak bisa mengotomatiskan selera

Hal paling berguna yang saya pelajari adalah soal evaluasi, dan ini berlaku jauh di luar komedi.

Empat kali terpisah, penilai otomatis memberi nilai tinggi pada hasil yang menurut telinga saya sendiri tidak lucu. Empat kali. Sebuah model bisa memberi tahu apakah strukturnya utuh, apakah metodenya dikenali, apakah balikannya datang di tempat yang tepat. Model tidak bisa memberi tahu apakah balikannya mendarat. Saya terus mencoba membuatnya bisa, dan ia terus menyetujui dirinya sendiri.

Jadi saya bagi masalahnya jadi dua. Pemeriksaan mekanis menjaga hal-hal yang bisa diperiksa secara mekanis: angka yang dikarang, teks sumber yang dihafal, arahan panggung yang bocor di tengah dialog, apa pun yang merendahkan suatu kelompok, tubuh, penyakit, atau kedukaan. Telinga memutuskan semua sisanya, dan saya berhenti mencoba mendelegasikannya.

Kalau kamu merilis fitur AI, pembagian itulah sebagian besar pekerjaannya. Temukan bagian dari kualitas yang benar-benar bisa diverifikasi dan otomatiskan tanpa minta maaf. Lalu jujurlah — pada diri sendiri dan pada siapa pun yang bertanya — bahwa sisanya adalah pertimbangan, dan tidak ada rubrik yang bisa membuatnya bukan pertimbangan.

README proyek ini mengatakannya dengan gamblang, dan saya belum menemukan kalimat yang lebih baik: jangan pernah percaya pada kelulusan otomatis untuk komedi.

Apa yang sengaja saya lepaskan

Dua keputusan yang terlihat seperti kekurangan, dan satu yang memang kekurangan.

Saya tidak bisa melihat bagaimana app ini dipakai. Tanpa SDK analitik, tanpa akun, tanpa data pribadi. Klaim privasinya nyata, dan biayanya juga nyata: saya tidak tahu sketsa mana yang mendarat, suara mana yang dilewati, atau berapa banyak orang yang membukanya dua kali. Saya baru tahu kalau ada yang memberi tahu.

Tidak ada tombol bagikan. Ini taruhan, dan saya bisa saja salah. Membagikan adalah cara app komedi biasanya menyebar, dan saya sengaja tidak membangun mekanismenya. Taruhannya adalah ponselnya dioper dari tangan ke tangan di meja, bukan tautannya yang dioper di grup chat. Kalau ternyata salah, perbaikannya jelas dan mungkin sudah terlambat.

Belum ada ratingnya. App ini baru. Yang satu itu bukan pilihan desain, cuma kurang orang.

Bagian yang tidak nyaman kalau kamu bekerja di media

Pekerjaan sehari-hari saya adalah operasi media. Angka yang saya optimalkan sepanjang karier adalah atensi: waktu di situs, durasi sesi, frekuensi kembali. Knora dibangun supaya ponsel tidak pernah menahan perhatian meja lebih lama daripada sketsanya. Sekali guncang, satu sketsa, lalu ponsel turun lagi — dan kamu bisa mengguncangnya lagi kapan pun meja ingin satu lagi.

Kalau diukur dengan cara saya mengukur media, justru itu bagian yang aneh. Tidak ada feed yang menarikmu kembali, tidak ada sesi untuk diperpanjang, tidak ada apa pun yang dirancang menahanmu melewati leluconnya. Yang ada justru alasan untuk mengambilnya lagi — satu sketsa yang cukup lucu untuk mendapatkan guncangan berikutnya. Setelah itu, ia melepasmu.

Saya tidak berpikir itu membuatnya produk yang lebih baik daripada yang mengejar atensi. Tapi itu jadi pengingat yang berguna bahwa "engagement lebih banyak" adalah pilihan tentang apa yang kamu bangun, bukan hukum alam. Dan pilihan itu jauh lebih mudah diambil di proyek sampingan yang tidak dibayar siapa pun.

Kalau kamu sudah membangun sesuatu yang dirancang mengembalikan atensi, bukan menahannya, saya sungguh ingin mendengar bagaimana kamu memikirkannya — itu bukan ruang desain yang banyak saya tempati di siang hari.

App ini gratis di App Store, dan catatan tentang desainnya ada di sini. Kalau kamu mencobanya dan ada sketsa yang tidak mendarat, beri tahu saya. Seluruh app ini adalah leluconnya.

Salam hangat, Chandler