Cara Membuat Forum: Kategori, Thread, Pencarian dan Pengendalian Spam
Forum adalah kumpulan kategori, thread di dalamnya, dan balasan di dalam thread tersebut, ditambah akun, pencarian, dan moderasi. Forum berbeda dari grup chat karena percakapan diatur berdasarkan topik dan tetap berguna selama bertahun-tahun — seseorang bisa menemukan thread tiga tahun lalu lewat pencarian dan tetap mendapatkan jawabannya. Untuk membangunnya, pastikan halaman thread dan pencarian sudah benar, buat thread bisa dibaca mesin pencari jika forumnya publik, dan siapkan alat spam serta moderasi sebelum anggota sungguhan pertama mendaftar.
Apa saja yang dibutuhkan forum
Halaman
- Daftar kategori — halaman depan untuk sebagian besar forum, dengan deskripsi dan aktivitas terbaru setiap kategori.
- Daftar thread — thread dalam satu kategori, diurutkan berdasarkan balasan terbaru, dengan jumlah balasan dan penanda untuk thread yang sudah terjawab atau disematkan.
- Halaman thread — postingan pertama dan semua balasan secara berurutan, dengan kutipan, reaksi, dan kotak balasan.
- Form thread baru — judul, kategori, isi, tag opsional.
- Pencarian — di judul dan isi postingan, dengan filter per kategori.
- Profil pengguna — nama, avatar, tanggal bergabung, jumlah postingan, postingan terbaru.
- Antrean moderasi — postingan yang dilaporkan dan postingan yang menunggu persetujuan.
Data
| Tabel | Field utama |
|---|---|
| Pengguna | nama, avatar, peran, tingkat kepercayaan, tanggal bergabung, status |
| Kategori | nama, slug, deskripsi, urutan, siapa yang boleh memposting |
| Thread | judul, slug, kategori, penulis, disematkan, dikunci, terjawab, waktu balasan terakhir |
| Postingan | thread, penulis, isi, dibuat, diedit, disembunyikan |
| Reaksi | postingan, pengguna, tipe |
| Laporan | postingan, pelapor, alasan, status, keputusan moderator |
| Langganan | pengguna, thread (untuk notifikasi balasan baru) |
Menyimpan "waktu balasan terakhir" dan "jumlah balasan" langsung di thread menjaga daftar thread tetap cepat, dibanding menghitung postingan setiap kali halaman dimuat.
Izin akses
- Tamu dapat membaca kategori publik.
- Anggota dapat memposting dan membalas, dan mengedit postingan mereka sendiri dalam waktu terbatas.
- Moderator dapat menyembunyikan, memindahkan, mengunci, menyematkan, dan menggabungkan thread, serta menangguhkan pengguna.
- Admin mengelola kategori dan peran.
Kategori privat harus diperiksa di server pada setiap permintaan — halaman thread, hasil pencarian, RSS, dan notifikasi semuanya membutuhkan pemeriksaan yang sama, atau postingan privat bocor lewat pintu samping. Lihat cara menambahkan kontrol akses berbasis peran.
Keputusan dan trade-off
Balasan datar atau bertingkat. Thread datar (balasan berurutan waktu, dengan kutipan) lebih mudah dibaca dan menjadi standar bagi sebagian besar forum. Balasan bertingkat (pohon ala Reddit) cocok untuk debat tetapi sulit diikuti di ponsel. Pilih datar kecuali ada alasan lain.
Mode tanya-jawab. Untuk forum dukungan dan bantuan, biarkan orang yang bertanya menandai satu balasan sebagai jawaban yang diterima, dan tampilkan tepat di bawah pertanyaan. Fitur tunggal ini membuat thread lama jauh lebih berguna.
Publik untuk SEO, atau privat. Halaman thread publik bisa mendatangkan trafik pencarian yang stabil, tetapi hanya jika mesin pencari bisa membacanya. Artinya setiap thread punya URL bersih sendiri, <title> yang sesungguhnya, dan postingan ada di HTML, bukan dimuat belakangan oleh JavaScript. Minta halaman thread yang dirender di server atau dirender sebelumnya jika trafik pencarian penting. Lebih lengkap di SEO untuk website yang dibuat dengan AI.
Rich text atau Markdown. Markdown dengan pratinjau mudah disimpan dengan aman. Editor visual lebih ramah bagi anggota yang tidak teknis. Apa pun pilihannya, bersihkan HTML sebelum ditampilkan, agar tidak ada yang bisa menyisipkan skrip ke dalam postingan.
Pencarian. Pencarian full-text Postgres sudah lebih dari cukup untuk tahun-tahun awal forum. Layanan pencarian khusus baru layak dipertimbangkan pada skala besar. Lihat cara menambahkan pencarian ke aplikasi Anda.
Spam dan moderasi, sebelum peluncuran
Forum menarik spam otomatis lebih cepat daripada hampir semua jenis situs lain, karena setiap postingan adalah halaman publik yang bisa memuat tautan. Rencanakan sejak awal:
- Tingkat kepercayaan. Akun baru tidak bisa memposting tautan atau gambar, dan dua atau tiga postingan pertama mereka menunggu persetujuan. Setelah itu, mereka bebas memposting.
- Batas laju. Batas postingan per menit dan per hari untuk akun baru.
- Verifikasi email sebelum memposting.
- Tombol laporan di setiap postingan, yang masuk ke antrean moderasi.
- Nofollow pada tautan pengguna, agar spammer tidak mendapat keuntungan dari mesin pencari.
- Log moderasi, agar moderator bisa melihat siapa melakukan apa dan mengapa.
- Aturan yang jelas disematkan di setiap kategori.
Contoh prompt pertama
Buatkan forum tanya-jawab publik untuk para penggemar espresso di rumah. Kategori: Mesin, Penggiling, Teknik, Biji Kopi, Jual Beli. Siapa pun bisa membaca; anggota mendaftar dengan email dan kata sandi serta memverifikasi email sebelum memposting. Halaman thread di /t/[slug] harus dirender di server dengan judul dan meta deskripsi yang unik agar mesin pencari bisa membacanya. Balasan bersifat datar, berurutan waktu, dengan kutipan dan reaksi jempol. Orang yang memulai thread bisa menandai satu balasan sebagai jawaban yang diterima, yang ditampilkan di bawah pertanyaan. Tiga postingan pertama anggota baru menunggu persetujuan moderator, dan mereka tidak bisa memposting tautan sampai disetujui. Moderator bisa menyembunyikan, mengunci, menyematkan, dan memindahkan thread, melihat antrean postingan yang dilaporkan, dan setiap tindakan dicatat. Tambahkan pencarian di judul dan postingan dengan filter kategori, serta notifikasi dalam aplikasi untuk balasan baru di thread yang saya ikuti. Simpan semuanya di database.
Langkah membangun
- Halaman thread lebih dulu. Isi beberapa kategori dan lima puluh thread yang realistis. Pastikan membaca, mengutip, dan membalas sudah benar di ponsel.
- Daftar kategori dan thread. Pengurutan berdasarkan aktivitas terbaru, thread yang disematkan di atas, penanda terjawab.
- Akun dan verifikasi. Lihat cara menambahkan login ke aplikasi Anda.
- Moderasi dan tingkat kepercayaan. Antrean persetujuan, laporan, sembunyikan, kunci, pindahkan, catat. Uji sebagai akun baru yang mencoba memposting tautan.
- Pencarian. Coba pencarian yang benar-benar akan diketik anggota Anda.
- SEO. Publikasikan, buka thread, lihat sumber halaman dan pastikan postingan ada di HTML. Tambahkan sitemap thread.
- Isi dengan konten nyata. Tulis sendiri dua puluh thread pertama yang bermanfaat, atau undang beberapa ahli. Forum kosong tidak akan mendapatkan postingan pertamanya.
Kesalahan umum
- Meluncurkan forum kosong. Tidak ada yang mau memposting duluan. Isi dengan pertanyaan dan jawaban yang nyata.
- Terlalu banyak kategori. Lima kategori yang ramai lebih baik daripada dua puluh yang sepi. Pisahkan nanti.
- Tanpa persetujuan untuk akun baru. Bot spam cepat menemukan forum baru.
- HTML postingan yang tidak dibersihkan. Skrip di dalam postingan bisa mengambil alih sesi pengguna lain. Selalu bersihkan konten pengguna.
- Kategori privat yang bocor. Periksa hasil pencarian dan notifikasi, bukan hanya halaman thread.
- Menghitung balasan di setiap pemuatan halaman. Simpan jumlahnya di thread dan perbarui ketika postingan berubah.
- Tidak ada cara menghapus akun. Tentukan apa yang terjadi pada postingan anggota yang keluar.
Kapan perangkat lunak forum adalah pilihan yang lebih baik
Perangkat lunak forum open-source dan hosted, seperti Discourse, sudah bertahun-tahun menyempurnakan tingkat kepercayaan, anti-spam, integrasi email, moderasi, dan tampilan mobile. Jika Anda ingin forum serbaguna dan tidak perlu menjadi bagian dari aplikasi lain, memasang atau berlangganan salah satunya biasanya lebih cepat dan lebih aman daripada membangun sendiri. Alat chat cocok untuk percakapan cepat, tetapi buruk dalam menjaga jawaban tetap mudah ditemukan.
Bangun sendiri ketika forum menjadi bagian dari produk Anda — forum dukungan di dalam SaaS Anda, bagian tanya-jawab di marketplace — ketika Anda membutuhkan data khusus yang melekat pada thread (model mesin, pesanan, pelajaran kursus), atau ketika Anda ingin desain dan URL forum sepenuhnya milik Anda. Untuk ruang anggota yang lebih luas dengan profil dan acara, lihat cara membangun platform komunitas.
Membangunnya dengan Mythex
Di Mythex Anda mendeskripsikan forum dalam chat, mencobanya di pratinjau langsung, dan mempublikasikannya ke alamat publik, dengan domain kustom di paket Pro. Mythex menambahkan database Postgres khusus untuk pengguna, thread, dan postingan saat aplikasi membutuhkannya, serta penyimpanan file untuk avatar dan gambar. Tumpukan bawaannya adalah aplikasi Vite dan React yang dirender di browser, jadi untuk forum publik mintalah halaman thread yang dirender di server (Next.js adalah opsi) dan ikuti resep SEO. Login anggota dan email menggunakan penyedia Anda sendiri: pilih pendekatan dan penyedia, simpan kunci sebagai rahasia proyek, dan agen akan menghubungkannya. Gunakan /test agar agen mengklik proses posting dan moderasi sebelum Anda mempublikasikan, dan baca daftar periksa keamanan untuk aplikasi buatan AI sebelum membuka pendaftaran.
Pertanyaan
Apa saja yang dibutuhkan website forum?
Kategori, thread dengan balasan, akun pengguna, pencarian, dan alat moderasi. Sebagian besar forum juga membutuhkan notifikasi untuk balasan, cara menandai jawaban terbaik di thread tanya-jawab, dan perlindungan spam untuk akun baru.
Apakah forum sebaiknya publik atau privat?
Forum publik bisa mendatangkan trafik pencarian, karena setiap thread adalah halaman yang bisa ditemukan orang di Google. Forum privat lebih baik untuk topik sensitif atau anggota berbayar. Banyak forum membiarkan pembacaan tetap publik dan hanya mewajibkan akun untuk memposting.
Bagaimana cara menghentikan spam di forum?
Batasi apa yang bisa dilakukan akun baru: tahan postingan pertama mereka untuk persetujuan, blokir tautan sampai mereka aktif beberapa waktu, batasi laju posting, dan berikan tombol laporan kepada anggota. Verifikasi alamat email saat pendaftaran dan catat tindakan moderator.
Apakah lebih baik memakai perangkat lunak forum seperti Discourse?
Jika Anda butuh forum lengkap dengan cepat, perangkat lunak forum yang sudah mapan adalah pilihan yang lebih aman: sudah memiliki fitur moderasi dan anti-spam selama bertahun-tahun. Bangun sendiri ketika forum menjadi bagian dari aplikasi yang lebih besar atau membutuhkan data dan alur kerja yang tidak dimiliki perangkat lunak forum umum.