- Gumroad mempertimbangkan htmx saat memulai proyek baru bernama Helper.
- Mereka ingin menggunakan htmx untuk menghindari kompleksitas React, tetapi pendapat di dalam tim terpecah.
- Pada awalnya, htmx tampak menjanjikan untuk menambahkan interaksi sederhana.
Keterbatasan htmx
- Intuitivitas dan pengalaman pengembang: Bekerja dengan htmx tidak terasa lebih intuitif dibanding Next.js. Saat mengimplementasikan form yang kompleks dan validasi dinamis, logika sisi server menjadi lebih rumit.
- Keterbatasan UX: htmx pada dasarnya mengambil pendekatan Rails/CRUD sehingga pengalaman pengguna menjadi monoton. Membangun antarmuka drag-and-drop lebih sulit dibandingkan dengan React.
- Dukungan AI dan alat: Next.js lebih ramah terhadap alat AI, sedangkan htmx tidak. Hal ini memengaruhi kecepatan pengembangan dan pemecahan masalah.
- Masalah skalabilitas: Saat proyek menjadi makin kompleks, htmx tidak mampu mengikuti kebutuhan. Ketika menambahkan kolaborasi real-time dan fitur visualisasi data yang kompleks, pengelolaan state menjadi sulit.
- Komunitas dan ekosistem: Ekosistem React/Next.js sudah matang dan menawarkan beragam solusi, sedangkan htmx tidak.
Keputusan akhir: beralih ke React/Next.js
- React/Next.js lebih cocok untuk membangun UX yang kompleks.
- Mereka memanfaatkan keunggulan React dalam fitur drag-and-drop, pengelolaan state yang kompleks, pembuatan form dinamis, kolaborasi real-time, optimasi performa, dan lainnya.
- Mereka beralih ke React untuk mengatasi keterbatasan htmx, dan ini mendukung visi jangka panjang proyek.
- Mereka puas dengan keputusan ini, dan untuk saat ini dapat bergerak lebih cepat, menciptakan pengalaman pengguna yang lebih menarik, serta memanfaatkan alat dan library yang sudah ada.
Pelajaran dari pengalaman
- Mempertimbangkan alternatif yang ringan itu penting, tetapi sama pentingnya untuk memilih teknologi yang bisa berkembang bersama proyek dan mendukung visi jangka panjang.
- Untuk Helper, React dan Next.js terbukti menjadi pilihan tersebut, dan setelah berpindah mereka dapat meningkatkan pengalaman pengguna aplikasi secara signifikan bagi pelanggan inti.
Ringkasan GN⁺
- Pengalaman Gumroad menunjukkan bahwa mempertimbangkan alternatif yang ringan itu penting, tetapi memilih teknologi yang dapat mendukung pertumbuhan proyek dan visi jangka panjang juga sama pentingnya.
- htmx bisa cocok untuk model interaksi yang sederhana atau aplikasi server-rendered yang sudah ada.
- Untuk antarmuka Helper yang kompleks dan berbasis state, React dan Next.js adalah pilihan yang lebih baik.
- Tech stack dapat dievaluasi ulang sesuai kebutuhan, dan penting untuk tetap fleksibel setiap kali teknologi baru muncul.
1 komentar
Komentar Hacker News
CEO Gumroad membagikan pengalamannya mencoba htmx lalu beralih ke NextJS. Ini menjadi informasi yang berguna bagi orang yang sedang mencari pengalaman negatif tentang htmx
Saat membuat formulir yang kompleks, logika sisi server menjadi rumit dan lebih sulit daripada pekerjaan sisi klien di React
Mereka mencoba menjaga frontend tetap ringan dengan htmx, tetapi akhirnya harus memakai library pihak ketiga untuk UI/UX yang kompleks dan manajemen state
Sulit mengimplementasikan antarmuka drag-and-drop dengan htmx, dan pengalaman yang lebih mulus bisa didapat dengan library React
htmx.onLoaddapat dimanfaatkan untuk mencari markup dengan atribut pada konten yang dimuat lalu menghubungkannyaTim tampak lebih terbiasa dengan pengembangan frontend, dan mengalami kesulitan dalam komunikasi dengan backend
Ada pendapat bahwa proses pengembangan dengan Next.js terasa lebih alami
Ada pendapat bahwa menarik melihat HTMX membagikan pengalaman seperti ini, dan ada proyek yang memang tidak cukup ditangani hanya dengan HTMX
Ada pujian terhadap HTMX.org karena meng-host esai seperti ini
Ada kekhawatiran bahwa alat AI bisa membuat adopsi framework atau bahasa pemrograman baru menjadi lebih sulit