Sanad
Pembaca hadis yang menggambar setiap sanad sebagai graf dan menyandarkan setiap derajat kepada ulamanya

- bahasa berdampingan: Arab, Inggris, Indonesia
- 3
- penilaian keagamaan dari aplikasi sendiri
- 0
- alat analitik yang diberi layar sendiri
- 6
- sampai semua fitur lengkap
- ~5 hari
Di halaman ini
Masalahnya
Bagi umat Islam, hadis, yaitu sabda Nabi Muhammad ﷺ yang tercatat, adalah kumpulan teks terpenting kedua setelah Al-Qur'an. Pelajar dan peneliti mengajukan pertanyaan yang sama untuk setiap hadis. Siapa saja yang meriwayatkannya, dan seberapa terpercaya setiap orang dalam sanadnya? Di mana dua sanad untuk hadis yang sama bertemu atau berpisah? Perawi mana yang berada di pusat seluruh jaringan periwayatan?
Situs seperti sunnah.com enak dipakai untuk membaca, tapi hampir tidak membantu menjawab pertanyaan-pertanyaan itu. Sanad dibuat untuk pelajar Muslim, pembaca umum, dan peneliti studi Islam yang ingin membaca hadis sambil melihat sanad dan penilaiannya.
Satu aturan membentuk seluruh produk. Aplikasi ini tidak pernah mengeluarkan penilaian keagamaannya sendiri. Teks Arab ditampilkan persis seperti sumbernya, dan setiap derajat hadis disandarkan kepada ulama klasik yang memberikannya.
Yang saya bangun
Analitik saya hitung di awal
Menghitung kata, membandingkan teks, dan mengurutkan perawi adalah pekerjaan berat untuk puluhan ribu hadis. Sementara itu, koleksinya sendiri hampir tidak pernah berubah. Jadi saya menjalankan semuanya lebih dulu lewat proses latar dan menyimpan hasilnya. Saat seseorang membuka halaman, server hanya membaca data yang sudah jadi. Seluruh sistem dibangun di atas keputusan ini.
Sanad diambil dari teks Arabnya
Dataset sumbernya berisi teks hadis tanpa daftar perawi yang terstruktur. Saya menulis parser yang menemukan sanad di setiap teks Arab dari frasa periwayatannya, seperti "telah menceritakan kepada kami" dan "dari", lalu mengambil nama-namanya. Dari nama itu terbentuk jaringan hubungan guru dan murid. Aplikasi memberi label bahwa ini perkiraan struktural dan menunjukkan asal datanya. Nama yang bersih butuh banyak putaran perbaikan. Potongan teks yang bukan nama dibuang. Perawi yang tidak disebut namanya (mubham) dikumpulkan di bawah satu penanda, dan aplikasi tidak pernah mengarang identitas mereka.
Setiap ukuran graf punya cara tampil sendiri
Sanad satu hadis hanya berisi segelintir orang. Sanad itu tampil sebagai graf interaktif, dan klik pada seorang perawi membuka profilnya. Jaringan seluruh perawi berisi ratusan orang atau lebih, terlalu banyak untuk alat yang sama. Jadi jaringan itu digambar di canvas dengan tata letak berbasis gaya, lengkap dengan pencarian, fokus, dan pencari jalur terpendek antara dua perawi. Pembagian ini sudah saya tulis di spesifikasi sejak awal.
Setiap derajat hadis menyebut sumbernya
Setiap derajat menampilkan ulama yang memberikannya, dan satu hadis bisa memuat penilaian beberapa ulama berdampingan. Perawi yang belum dinilai ditandai "belum dinilai" dengan warna netral yang tidak bisa dibaca sebagai vonis. Saya pernah merombak warna derajat sekali, setelah palet awal memberi makna yang tidak semestinya pada beberapa warna.
Pekerjaan backend yang sudah jadi saya beri layar
Di tengah jalan, saya menemukan enam endpoint analitik yang sudah berfungsi tapi belum punya halaman. Sprint berikutnya saya pakai untuk membangun layarnya. Penjelajah sebaran derajat, alat frekuensi kata, dashboard korpus, panel riwayat yang sejalan, dan peringkat perawi semuanya rilis di gelombang itu.
Hasilnya
Fitur Sanad sudah lengkap dan siap diluncurkan, tapi belum dibuka untuk publik. Datanya masih bergantung pada pipeline impor yang saya jalankan secara lokal. Pembaca mendapat teks Arab berharakat, terjemahan Inggris dan Indonesia berdampingan, lencana derajat, mode fokus, dan fitur lanjut membaca. Pengguna yang login mendapat bookmark, koleksi, dan riwayat bacaan. Setiap hadis bisa diekspor sebagai kartu gambar untuk dibagikan. Rencana awalnya memuat pencarian topik berbasis AI. Yang saya rilis adalah penjelajah topik terkurasi dengan hitungan lengkap, tanpa layanan AI berbayar. Saya membangun Sanad dalam lima hari di bulan Juni 2026, dan hasilnya jauh melampaui spesifikasi awal.
Di balik layarDetail teknis untuk engineer
- API Django 5.0 dan DRF memegang data dan komputasi. Frontend Next.js 14 App Router terpisah berbicara dengannya lewat REST. Autentikasi memakai SimpleJWT.
- PostgreSQL dengan pencarian trigram
pg_trgmuntuk kemiripan teks dan pencarian nama yang toleran salah ketik. - Tabel hasil hitung
WordFrequencyHadith,NarratorStats, danBookGradeStatsdiisi oleh management command dan job Celery, dengan Redis sebagai broker dan cache. - Ekstraksi sanad memotong bagian isnad memakai kata kerja periwayatan seperti حدثنا ("telah menceritakan kepada kami") dan عن ("dari"). Normalisasi Arab dan transliterasi Arab ke Latin ditulis sendiri, tanpa
camel_tools. - NetworkX menghitung sentralitas, jalur terpendek, dan ego network. Sentralitas dijadikan perkiraan demi kecepatan, dalam perbaikan yang sama dengan bug
distinct()di Django. - Sanad per hadis dirender dengan React Flow. Jaringan global dirender di canvas D3-force.
- Model yang ditambahkan di luar skema awal:
HadithGrading(beberapa ulama per hadis),Topic/HadithTopic,Collection/CollectionItem, danReadingHistory. - Data: teks Arab dan Inggris dari dataset terbuka fawazahmed0/hadith-api, terjemahan Indonesia dari API gadingnst. Kitab yang disasar adalah Kutubus Sittah ditambah Al-Muwaththa' dan Riyadhus Shalihin.
- CI menjalankan Ruff, pengecekan migrasi, dan pytest di backend, serta typecheck, lint, dan build di frontend. GitHub Actions menerbitkan image ke GHCR setiap ada push ke
main. - 19 model, sekitar 30 route REST, 18 halaman, dan 14 management command. Sekitar 5.100 baris TypeScript dan 3.800 baris Python, 86 commit dari 25 sampai 29 Juni 2026.
Tangkapan layar
Sedang merekrut, atau membangun hal serupa?
Saya terbuka untuk posisi full-time dan proyek freelance tertentu.