Tentang
Apa yang dikatakan katalog, dan dari mana ia tahu.
2600 tool developer, masing-masing dicantumkan bersama apa yang digantikannya. Selebihnya yang Anda lihat pada sebuah alat berasal dari GitHub, bukan dari orang yang menambahkannya.
Apa yang dinyatakan sebuah entri
Setiap alat adalah file YAML kecil di bawah data/tools/. File itu menyebutkan nama alat, repositori GitHub-nya, kategorinya, alat-alat yang digantikannya beserta tingkat kecocokan untuk masing-masing, dan afiliasi jika ada. Hanya itu yang bisa ditulis oleh kontributor.
Sebuah entri tidak pernah menyatakan bintang, lisensi, versi, atau deskripsi. Skema menolaknya, sehingga pull request tidak bisa menggelembungkan jumlah bintang atau mengklaim rilis yang tidak ada.
Pembaruan setiap malam
Setiap malam, dan setiap kali data katalog berubah di branch utama, refresh membaca setiap repositori yang tercantum dari GitHub API:
- deskripsi, homepage, bahasa, lisensi, bintang, fork, dan topik
- apakah repositori diarsipkan, dan tanggal push terakhirnya
- rilis terbaru, atau tag terbaru jika tidak ada rilis, dan apakah rilis itu bertanda tangan
- lima rilis terakhir yang dipublikasikan, ditampilkan di halaman alat
- para penulis commit di branch default selama 90 hari terakhir, dan yang disimpan hanya jumlahnya
- nama file yang dilampirkan pada rilis terbaru, dibaca untuk mengetahui sistem operasi dan arsitektur yang disebutkannya
- file maintainer yang dijelaskan di bagian terverifikasi
Halaman alat mengubah data ini menjadi gambaran seberapa hidup sebuah proyek, tidak pernah menjadi skor. Usianya dihitung sejak hari repositori dibuat. Frekuensi rilis adalah median jarak antara rilis stabil terbarunya, ditampilkan setelah ada tiga rilis. Kontributor aktif adalah penulis commit yang berbeda di branch default dalam 90 hari terakhir: akun yang namanya berakhiran [bot] tidak dihitung, dan commit yang tidak terhubung ke akun GitHub mana pun dihitung berdasarkan email-nya, yang tidak pernah dipublikasikan. Hanya 500 commit terbaru yang dibaca, sehingga proyek yang lebih sibuk menampilkan batas bawah seperti 40+. Alur kerja squash-merge mencatat satu penulis per pull request, siapa pun yang ikut menulisnya, dan untuk alat yang berada di monorepo, hitungannya mencakup seluruh repositori, dan halaman itu menyebutkannya. Platform hanya ditampilkan jika nama file pada rilis terbaru menyebutkannya, dan tidak ada yang ditebak jika tidak disebutkan, begitu juga untuk alat di monorepo, yang rilis terbarunya bisa jadi milik paket lain.
Jika ada yang berubah, refresh meng-commit katalog baru dan build baru situs ini dirilis. Jika GitHub berhenti mengembalikan repositori dari alat yang tercantum, karena dihapus atau dijadikan privat, refresh tidak memublikasikan apa pun dan gagal, sehingga seseorang akan memeriksanya: sebuah alat hanya keluar dari katalog melalui pull request yang menghapus entrinya.
Setiap refresh juga membandingkan katalog baru dengan yang sebelumnya dan mencatat apa yang berubah: lisensi, nama repositori, pengarsipan, rilis baru, alat yang masuk atau keluar. Halaman apa yang berubah mencantumkannya per hari, dengan feed RSS untuk seluruh katalog, satu untuk setiap alat, dan satu untuk setiap kategori. Perubahan jumlah bintang tidak pernah dihitung.
Di antara dua pembaruan malam, rilis yang baru dipublikasikan memperbarui alatnya dalam hitungan menit jika GitHub App awesome-alternatives terpasang di repositorinya, atau jika repositori itu menjalankan refresh-action di workflow rilisnya.
Tanda
- ✓ bertanda tangan
- Di samping versi terbaru. Tag tersebut memiliki tanda tangan yang diverifikasi GitHub, atau, untuk lightweight tag, commit yang ditunjuknya memiliki tanda tangan itu. Hanya rilis terbaru yang diperiksa.
- Diverifikasi oleh maintainer-nya
- Repositori alat itu sendiri memiliki file
.awesome-alternativesdi root branch default-nya, denganslug:diisi dengan entri ini. Hanya orang dengan akses tulis ke repositori yang bisa menambahkannya, jadi tanda ini berarti para maintainer-nya mendukung entri tersebut. Refresh membaca file ini setiap malam.Tanda ini juga diberikan jika GitHub App awesome-alternatives dipasang di repositori tersebut, karena memasang app di sana membutuhkan hak admin.File itu memberi tanggal verifikasi dari commit terakhirnya, dan entri yang diedit setelah tanggal itu menampilkan “diedit sejak verifikasi” sampai maintainer melakukan commit baru pada file tersebut, cukup dengan komentar # bertanggal.Di setiap daftar, alat yang terverifikasi ditampilkan sebelum alat yang belum terverifikasi dengan tingkat kecocokan yang sama, dan bintang mengurutkan sisanya. Alat itu tidak pernah melewati pengganti yang lebih cocok. - diarsipkan
- Repositori sudah diarsipkan dan tidak lagi menerima perubahan. Alat yang diarsipkan justru yang ingin ditinggalkan orang, jadi alat seperti ini hanya diterima sebagai sesuatu yang digantikan oleh entri lain, tidak pernah sebagai alternatif, dan peringatan tidak ada push tidak diberikan padanya.
- Other
- Ditampilkan sebagai lisensi jika GitHub mendeteksi lisensi tetapi tidak bisa memetakannya ke pengenal SPDX. Jika GitHub tidak mendeteksi lisensi apa pun, alat itu bertuliskan Tidak terdeteksi dan peringatan tidak ada lisensi diberikan padanya.
Tingkat kecocokan
Setiap pengganti memiliki satu tingkat, ditentukan oleh orang yang menambahkan entri.
- Drop-in
- Menerima konfigurasi atau antarmuka alat aslinya tanpa perubahan: Anda cukup menukarnya tanpa menyentuh setup Anda. Meminta drop-in di pencarian hanya akan menampilkan yang seperti ini.
- Pengganti penuh
- Mengerjakan tugas yang sama, dengan caranya sendiri. Bersiaplah memigrasikan konfigurasi Anda.
- Sebagian
- Mengerjakan sebagian tugasnya. Catatan di bawah alat menyebutkan bagian yang mana.
Peringatan
Peringatan tidak pernah menghapus sebuah alat. Peringatan adalah hal yang diperiksa maintainer sebelum menggabungkan pull request, dan hal yang mungkin ingin Anda ketahui sebelum bergantung pada alat tersebut.
- Repositori dipindahkan
- Repositori kini berada di bawah nama atau pemilik lain. GitHub mengalihkan alamat lama, tetapi entrinya perlu diperbarui.
- Tidak ada lisensi terdeteksi
- GitHub tidak mendeteksi lisensi, sehingga ketentuan penggunaan kodenya tidak jelas.
- Tidak ada rilis atau tag
- Repositori tidak memiliki rilis maupun tag, jadi tidak ada versi untuk di-pin.
- Tidak ada push selama setahun
- Tidak ada push selama lebih dari 365 hari. Repositori yang diarsipkan tidak termasuk dalam peringatan ini.
- Lonjakan bintang tidak wajar
- Satu hari yang mendapat 50 bintang atau lebih, dan setidaknya 5 kali laju harian biasa alat tersebut selama sebulan terakhir, serta setidaknya 3% dari bintang yang dimilikinya sehari sebelumnya, sehingga hari baik biasa dari proyek besar tidak dihitung. Bintang yang dibeli datang secara bergelombang, begitu juga peluncuran di Hacker News, itulah sebabnya manusia yang memutuskan. GitHub tidak lagi mencantumkan siapa yang memberi bintang pada repositori, jadi refresh setiap malam menyimpan jumlah bintang per hari dan membandingkan hari-harinya. Diperlukan riwayat seminggu sebelum menilai, artinya sebuah alat baru diperiksa setelah tercantum.
Beberapa masalah justru memblokir pull request: repositori yang privat, fork, diarsipkan tetapi diajukan sebagai alternatif, berusia kurang dari 30 hari, atau sudah tercantum dengan slug lain. Panduan kontributor mencantumkan semua pemeriksaan.
Afiliasi
Siapa pun yang memelihara, mengerjakan, atau dibayar oleh sebuah alat wajib menyatakannya di entri alat itu. Mencantumkan proyek Anda sendiri dipersilakan, tidak menyatakannya bisa menjadi alasan penghapusan. Jika sebuah entri memiliki afiliasi, halaman alat menampilkannya apa adanya.
Cara kerja pencarian
Kueri Anda pertama-tama dibaca sebagai kata kunci: nama alat yang digantikan oleh alat lain, bahasa dan lisensi di katalog, dan "drop in". Jika tidak ada alat yang ingin diganti disebutkan, model embedding multibahasa kecil yang berjalan di server pencarian membandingkan kueri dengan deskripsi setiap alat, sehingga kueri yang ditulis dalam bahasa apa pun yang didukung situs ini menemukan alat yang sama dengan versi bahasa Inggrisnya, meskipun deskripsinya sendiri tetap dalam bahasa Inggris, sebagaimana dikembalikan GitHub. Jika ada satu alat yang ingin diganti yang jelas menonjol, alat itu yang dipilih; jika tidak, hasil diurutkan berdasarkan kedekatannya dengan kueri. Hanya jika kedua langkah itu tidak menemukan alat yang ingin diganti, dan server memiliki kuncinya, teks kueri dikirim ke Jev, sebuah layanan eksternal, untuk dibaca. Hasil pembacaannya di-cache di server selama satu hari. Halaman privasi menjelaskan apa yang dikirim dan apa yang disimpan.
Beberapa kata menjadi filter, dalam setiap bahasa yang didukung situs ini. "Open source" hanya menampilkan alat yang lisensinya terbuka. "Aktif dikelola" menyingkirkan alat yang diarsipkan dan yang tidak menerima push selama 365 hari. "Self-hosted" hanya menampilkan alat dari kategori layanan yang Anda jalankan sendiri. Platform atau cara deploy, seperti Linux atau Docker, dikenali tetapi belum diperiksa, dan hasil pencarian menyebutkannya alih-alih berpura-pura.
Dari agen AI
Katalog ini juga merupakan server Model Context Protocol (MCP) di https://awesome-alternatives.com/api/mcp, melalui Streamable HTTP, tanpa kunci dan tanpa akun. Agen bisa mencari alternatif untuk sebuah alat atau produk, menampilkan daftar alat berdasarkan kategori, bahasa, atau lisensi, dan membaca fakta tentang satu alat. Tool pencariannya membaca kueri hanya dengan kata kunci dan model di server ini, tidak pernah dengan Jev, dan dibatasi per alamat; tool lainnya tidak dibatasi.
Untuk menambahkannya ke Claude Code: claude mcp add --transport http awesome-alternatives https://awesome-alternatives.com/api/mcp
Lisensi
Data katalog berada di bawah CC BY-SA 4.0: Anda bebas memakainya kembali, dengan tautan ke awesome-alternatives.com dan di bawah lisensi yang sama. Kode situs, API, dan skripnya berada di bawah lisensi GNU AGPL v3.