- Saat membuat aplikasi manajemen setlist (setlist.rocks) untuk band, penulis kembali menemukan kesenangan mengembangkan dengan Ruby on Rails setelah sekian lama
- Rails 8 terbaru dimodernisasi sambil tetap mempertahankan struktur MVC tradisional, dengan frontend “no-build” berbasis Hotwire (Stimulus·Turbo) serta Solid Cache/Queue/Cable
- SQLite telah dioptimalkan hingga cukup layak untuk layanan produksi hanya dengan konfigurasi bawaan, dan alat deployment Kamal mempermudah deployment tanpa downtime berbasis container
- Berkat filosofi Rails “Convention over Configuration” dan ekosistem gem yang kaya, implementasi dari ide ke prototipe bisa dilakukan dengan cepat
- Popularitas Ruby dan Rails memang menurun dibanding dulu, tetapi keduanya tetap menghadirkan kesenangan membangun sebagai framework OSS yang matang dan konsisten
Proyek sampingan dan kembali ke Rails
- Untuk mengelola setlist dan catatan lagu band, penulis mengembangkan web app sendiri, mencari cara yang lebih efisien daripada spreadsheet atau chat yang ada
- Dalam proses pengembangan, penulis kembali merasakan kesederhanaan dan produktivitas Rails, dan menyebut bahwa dibanding ekosistem web modern yang kompleks, Rails memberi “kesenangan murni dalam membangun”
- Ruby tetap dinilai sebagai bahasa dengan sintaks alami dan daya ekspresif yang memudahkan menerjemahkan gagasan ke dalam kode
- Menurut survei Stack Overflow 2025, popularitas Ruby dan Rails menurun, tetapi untuk proyek pribadi keduanya masih tetap disukai
Perubahan di Rails 8 dan frontend
- Rails 8 tetap mempertahankan struktur MVC yang ada, sambil menyediakan integrasi frontend berbasis Hotwire (Stimulus·Turbo)
- Turbo mencegat klik tautan dan submit form untuk menghadirkan responsivitas setara SPA
- Stimulus menambahkan perilaku JS hanya pada bagian yang diperlukan sehingga UI interaktif bisa dibangun dengan penulisan JavaScript seminimal mungkin
- Dengan hadirnya Importmap, library JS bisa dimuat langsung dari CDN tanpa Webpack atau npm
- Penulis menggunakan alat AI untuk menghasilkan UI, tetapi juga mengungkap kegelisahan antara kreasi dan sisi artistik dari kode
Workflow pengembangan dan produktivitas
- Dengan filosofi Rails “Convention over Configuration”, model, routing, controller, dan view bisa disusun dengan cepat
- Sebagai contoh, artikel ini memperagakan proses membuat model
Tag, mengotomatisasi RESTful routing, dan menangani respons JSON
- Template ERB dan live reload memungkinkan prototyping cepat
- Ekosistem gem yang kaya memudahkan integrasi berbagai fitur seperti CSV, PDF, dan lainnya
Peningkatan backend: seri Solid* dan SQLite
- Solid Cache/Queue/Cable kini disertakan secara bawaan di Rails 8 sehingga cache, job queue, dan WebSocket bisa ditangani tanpa Redis
- Solid Cache menggunakan caching berbasis DB untuk menghemat RAM dan menyederhanakan arsitektur
- Solid Queue mengelola background job berbasis DB, dan cukup dijalankan dengan pengaturan
SOLID_QUEUE_IN_PUMA=1
- Solid Cable adalah adapter Action Cable berbasis DB untuk mendukung fitur real-time
- SQLite kini memiliki optimasi default seperti mode WAL dan sinkronisasi NORMAL melalui pengaturan
pragmas: di database.yml
- Tanpa server DB terpisah pun, SQLite tetap praktis digunakan pada lingkungan produksi skala kecil
Otomatisasi deployment dan Kamal
- Sambil menyinggung kerumitan deployment lama berbasis Capistrano dan Ansible, penulis memperkenalkan Kamal sebagai alat deployment bawaan Rails 8
- Proses build container → push → deployment ke server → health check → pergantian tanpa downtime diotomatisasi
- kamal-proxy menangani perpindahan traffic dan pemrosesan SSL
- File
.kamal/secrets mendukung pengelolaan secret yang aman berbasis environment variable
- Dengan integrasi GitLab CI, deployment bisa dilakukan hanya dengan
git push, menghidupkan kembali kesederhanaan Heroku di masa lalu
Autentikasi dan fitur lain
- Rails 8 menyediakan auth generator bawaan sehingga sistem autentikasi yang lebih sederhana daripada Devise bisa dibangun
- Devise tetap berguna berkat fitur dan dokumentasinya yang kaya, tetapi kesederhanaan autentikasi bawaan Rails juga dinilai menarik
Kondisi ekosistem Rails saat ini dan keberlanjutannya
- Meskipun popularitas Ruby dan Rails menurun, layanan besar seperti Shopify·Basecamp·SoundCloud·GitHub masih terus menggunakannya
- Banyak gem kini berada pada tahap pemeliharaan, tetapi Rails tetap menjaga siklus rilis tahunan yang konsisten
- Rails dinilai sebagai “framework yang mungkin tidak banyak menarik developer baru, tetapi tetap menyenangkan untuk dipakai membangun”
Kesimpulan
- Rails mungkin berjarak dari tren terbaru, tetapi ditekankan sebagai alat yang mengembalikan kesenangan dan kesederhanaan dalam membangun
- Alih-alih mengejar popularitas, penulis menekankan kesenangan membuat dan kreativitas, lalu menutup dengan pesan untuk “mencoba Rails sekali lagi”
4 komentar
Kalau soal Rails, yang saya ingat bukan "configuration over convention" melainkan "convention over configuration"...
> most of the web frameworks I’d (...) memerlukan boilerplate XML yang tak ada habisnya dan konfigurasi lainnya untuk merangkai semuanya. Rails membuang semua itu dan memperkenalkan konsep “convention over configuration”
Tampaknya LLM mengeluarkan hasil persis mengikuti urutan input tanpa mengubah susunan kata. Di teks aslinya sudah benar.
LLM juga bisa salah soal hal seperti ini. Sudah saya perbaiki. Terima kasih.
Opini Hacker News
Saya sangat menyukai Rails, tetapi setelah pernah bekerja di codebase besar tanpa tipe statis, rasanya sulit kembali ke Rails selain untuk proyek pribadi
Codebase besar tanpa tipe adalah mimpi buruk untuk dipelihara, bahkan dengan IDE kuat seperti RubyMine
Saya penasaran sejauh mana Sorbet sudah berkembang belakangan ini, terutama kecocokannya dengan RoR
Ia mengikuti filosofi Rails dengan baik, sambil membuat pembelajaran Rust terasa lebih mudah
Layak dicoba saat akhir pekan
Kita harus menyalin data produksi yang sebenarnya ke lokal atau SSH ke server lalu memeriksa state lewat REPL
Debugging di IDE adalah pengalaman seperti neraka
Saya benar-benar mencintai Ruby, tetapi setelah mengalami debugging langsung, jadi sulit
Sekarang tidak ada alasan kuat untuk sengaja memilih Ruby atau Python
Python mungkin akan bertahan sedikit lebih lama di bidang ML, tetapi pada akhirnya sepertinya akan menghilang
Saya juga senang ada yang mengungkapkan pemikiran seperti ini secara terbuka
Akhir-akhir ini saya lelah dengan arsitektur microservices yang berlebihan
Pada malam hari saya mengerjakan proyek yang sekadar menyelesaikan masalah tanpa struktur yang tidak perlu
Dulu saya banyak berurusan dengan struktur PHP, tetapi baik Rails maupun PHP pada akhirnya hanyalah alat pemecah masalah
Rasanya seperti semua berjalan “di dalam kotak”, seperti pengembangan desktop IDE zaman dulu
Lepas dari kerepotan mengelola komponen kompleks dalam web development, saya merasa mendapatkan kembali kesederhanaan yang berfokus pada produktivitas
Selain itu, senang sekali tidak perlu memakai TypeScript. Menurut saya TypeScript itu bertele-tele dan penuh boilerplate yang tidak perlu
Kami telah terus menjalankan aplikasi Rails di produksi sejak 2007
Rahasia umur panjang Rails bukan pada usianya, melainkan pada stabilitas dan kepraktisannya
Klaim bahwa memakai JavaScript di backend membuat efisiensi lebih tinggi sudah terbantahkan
Sebagian besar perubahan tech stack terjadi karena optimasi CV atau kecemasan terhadap tren, bukan karena kebutuhan engineering yang nyata
Rails diam-diam terus menjalankan bisnis sungguhan
Tak ada yang benar-benar mengira 3,1 juta paket di NPM memberi lebih banyak fungsi daripada 190 ribu paket di RubyGems
Kami sedang bermigrasi ke Inertia + Vue.js, dan kombinasi ini sangat kuat sampai-sampai hampir tidak perlu mengubah backend
Kenaikan produktivitasnya bahkan menutupi sulitnya perekrutan
Semakin banyak pengguna, semakin sehat ekosistemnya
Namun RubyGems juga punya banyak paket lama, jadi menurut saya sulit membandingkannya secara sederhana
Filosofi “batteries included” pada RoR atau Django itu bagus, tetapi pemeliharaan proyek lama memakan banyak waktu
Untuk memperbarui proyek berusia 5–6 tahun, pengelolaan dependensi menjadi beban besar
Karena itu belakangan ini saya lebih suka memakai framework sederhana dengan Go atau bahkan tanpa framework sama sekali
Kalau hanya memakai library yang benar-benar perlu, pemeliharaannya mudah
Selain patch keamanan, saya mempertanyakan kenapa harus repot memperbarui
Dalam satu setengah tahun terakhir saya menaikkan 5 versi mayor, dan tetap relatif sederhana
Jika disusun dengan hati-hati sejak awal, hampir tidak perlu banyak disentuh untuk waktu lama
Menurut saya pengalaman upgrade sering diremehkan
Next.js berubah total pada tiap versi mayor, tetapi Rails jauh lebih stabil karena siklus deprecation-nya lambat dan bertahap
Saat produk terus dirilis, stabilitas antarmuka jauh lebih penting daripada paradigma terbaru
Peralihan Next.js dari pages ke app router pada dasarnya adalah perubahan setara replatforming total
Sebaliknya, Rails punya jalur upgrade yang terdokumentasi dan siklus deprecation yang bisa diprediksi
Pengelolaan versi Ruby juga hampir menghilangkan masalah ketidakcocokan environment berkat rbenv/asdf
Saya sudah lebih dari 10 tahun memakai Rails untuk segala hal, dari DevOps sampai solo web developer, dan jika mengulang saya tetap akan memilih yang sama
Rails adalah framework yang rapi dan produktif dengan semuanya sudah tersedia
Di survei Stack Overflow pun masih masuk “Top 5 stack yang ingin dipakai di proyek berikutnya”
Hampir tidak perlu memikirkan pengaturan infrastruktur, dan deployment juga sederhana
Pada akhirnya yang penting bukan pandangan orang lain, melainkan memakai alat yang cocok untuk diri sendiri
Ia muncul satu tahun lebih awal daripada Django
Tautan survei
Dulu saya menganggap Ruby/Rails adalah solusi paling optimal untuk kebanyakan masalah, dan sekarang pun saya masih merasa begitu
Saya belum pernah memakai Rails, tetapi saya paham dengan kekacauan lingkungan web development saat ini
Karena itu saya memilih Elixir dan Phoenix dengan melihat ke masa depan
Saya pasti akan mencobanya di proyek berikutnya
Saya penasaran apa yang membuat Elixir begitu menarik, dan hal apa yang sebaiknya diperhatikan saat pertama kali mempelajarinya
Sepuluh tahun lalu saya membangun frontend streaming untuk sebuah perusahaan penyiaran besar di Swedia dengan Rails
Di Heroku kami menangani lebih dari 1 juta koneksi bersamaan, dan semuanya berjalan sangat baik
Setelah itu saya pindah ke bidang lain seperti infrastruktur streaming, API, AI/ML, tetapi bukan karena Rails gagal, melainkan karena sifat masalahnya berubah
Rails cocok untuk masalah yang berpusat pada model data dan business logic, sedangkan untuk masalah yang berpusat pada concurrency atau infrastruktur, bahasa lain lebih cocok
Ruby masih terasa sebagai bahasa yang indah dan ekspresif, dan saya sangat merindukannya
Tetapi saya merasa sulit untuk sepenuhnya menghapus bias pribadi terhadap bahasa yang kita sukai
Saya penasaran bahasa apa yang dipakai untuk proyek berikutnya
Bagi mereka yang menyayangkan ketiadaan tipe statis, ada solusi hebat seperti Sorbet
Kita bisa menikmati produktivitas Ruby, tipe statis, dan integrasi LSP sekaligus
Berkat Shopify, dukungan Sorbet di Rails juga sangat baik
Saya sangat menyukai ekosistem ini sampai sekarang pun masih ingin bekerja dengan Rails
Berkat kemajuan alat AI, saya merasa kini batasnya hanya sebesar imajinasi kita
Berdasarkan itu saya membuat agen e-commerce yang memantau toko 24 jam dan mengirim notifikasi Slack
Jika mengerjakan proyek terkait AI, selzee.com/openclaw layak sekali untuk dilihat