Hướng dẫn

Cách xây dựng diễn đàn: chuyên mục, chủ đề, tìm kiếm và kiểm soát spam

Diễn đàn là tập hợp các chuyên mục, chủ đề bên trong chúng và các bài trả lời trong chủ đề, cộng với tài khoản, tìm kiếm và kiểm duyệt. Nó khác với nhóm chat ở chỗ các cuộc trao đổi được sắp xếp theo chủ đề và vẫn hữu ích trong nhiều năm: ai đó có thể tìm một chủ đề ba năm trước qua tìm kiếm và vẫn nhận được câu trả lời. Để xây một diễn đàn, hãy làm đúng trang chủ đề và tìm kiếm, cho phép công cụ tìm kiếm đọc được các chủ đề nếu diễn đàn công khai, và chuẩn bị sẵn công cụ chống spam và kiểm duyệt trước khi thành viên thật đầu tiên đăng ký.

Diễn đàn cần những gì

Các trang

  • Danh sách chuyên mục: trang chủ của đa số diễn đàn, với mô tả và hoạt động mới nhất của mỗi chuyên mục.
  • Danh sách chủ đề: các chủ đề trong một chuyên mục, sắp xếp theo trả lời mới nhất, có số lượt trả lời và dấu hiệu đã giải quyết hoặc đã ghim.
  • Trang chủ đề: bài đầu tiên và mọi bài trả lời theo thứ tự, có trích dẫn, biểu cảm và ô trả lời.
  • Biểu mẫu tạo chủ đề mới: tiêu đề, chuyên mục, nội dung, thẻ tùy chọn.
  • Tìm kiếm: trong tiêu đề và nội dung bài viết, có bộ lọc theo chuyên mục.
  • Hồ sơ người dùng: tên, ảnh đại diện, ngày tham gia, số bài, bài gần đây.
  • Hàng đợi kiểm duyệt: bài bị báo cáo và bài đang chờ duyệt.

Dữ liệu

BảngTrường chính
Người dùngtên, ảnh đại diện, vai trò, cấp độ tin cậy, ngày tham gia, trạng thái
Chuyên mụctên, slug, mô tả, thứ tự sắp xếp, ai được đăng
Chủ đềtiêu đề, slug, chuyên mục, tác giả, đã ghim, đã khóa, đã giải quyết, thời điểm trả lời cuối
Bài viếtchủ đề, tác giả, nội dung, thời điểm tạo, thời điểm sửa, đã ẩn
Biểu cảmbài viết, người dùng, loại
Báo cáobài viết, người báo cáo, lý do, trạng thái, quyết định của người kiểm duyệt
Đăng ký theo dõingười dùng, chủ đề (để thông báo khi có trả lời mới)

Lưu “thời điểm trả lời cuối” và “số trả lời” ngay trên chủ đề giúp danh sách chủ đề nhanh hơn, thay vì phải đếm bài viết mỗi lần trang được tải.

Phân quyền

  • Khách có thể đọc các chuyên mục công khai.
  • Thành viên có thể đăng bài và trả lời, và sửa bài của chính mình trong một khoảng thời gian giới hạn.
  • Người kiểm duyệt có thể ẩn, di chuyển, khóa, ghim và gộp chủ đề, và đình chỉ người dùng.
  • Quản trị viên quản lý chuyên mục và vai trò.

Chuyên mục riêng tư phải được kiểm tra trên máy chủ ở mọi yêu cầu. Trang chủ đề, kết quả tìm kiếm, RSS và thông báo đều cần cùng một lần kiểm tra, nếu không bài riêng tư sẽ rò rỉ qua một lối khác. Xem cách thêm kiểm soát truy cập theo vai trò.

Quyết định và đánh đổi

Trả lời phẳng hay lồng nhau. Chủ đề phẳng (trả lời theo thứ tự thời gian, có trích dẫn) dễ đọc hơn và là chuẩn của đa số diễn đàn. Trả lời lồng nhau (dạng cây kiểu Reddit) hợp với tranh luận nhưng khó theo dõi trên điện thoại. Hãy chọn kiểu phẳng trừ khi bạn có lý do khác.

Chế độ hỏi đáp. Với diễn đàn hỗ trợ hoặc trợ giúp, cho phép người đặt câu hỏi đánh dấu một trả lời là câu trả lời được chấp nhận và hiển thị ngay dưới câu hỏi. Chỉ một tính năng này cũng làm các chủ đề cũ hữu ích hơn nhiều.

Công khai để SEO, hay riêng tư. Trang chủ đề công khai có thể mang lại lưu lượng tìm kiếm ổn định, nhưng chỉ khi công cụ tìm kiếm đọc được chúng. Điều đó nghĩa là mỗi chủ đề có một URL sạch riêng, một thẻ <title> thực sự, và các bài viết nằm trong HTML thay vì được JavaScript tải sau. Nếu lưu lượng tìm kiếm quan trọng, hãy yêu cầu trang chủ đề được render trên máy chủ hoặc render trước. Xem thêm SEO cho website xây bằng AI.

Rich text hay Markdown. Markdown có xem trước rất dễ lưu an toàn. Trình soạn thảo trực quan thân thiện hơn với thành viên không kỹ thuật. Dù chọn cách nào, hãy làm sạch HTML trước khi hiển thị để không ai có thể chèn script vào bài viết.

Tìm kiếm. Tìm kiếm toàn văn của Postgres đủ dùng trong những năm đầu của một diễn đàn. Dịch vụ tìm kiếm riêng chỉ đáng giá khi quy mô rất lớn. Xem cách thêm tìm kiếm vào ứng dụng.

Chống spam và kiểm duyệt trước khi ra mắt

Diễn đàn thu hút spam tự động nhanh hơn hầu hết các loại website khác, vì mỗi bài là một trang công khai có thể chứa link. Hãy lên kế hoạch ngay từ đầu:

  1. Cấp độ tin cậy. Tài khoản mới không được đăng link hay hình ảnh, và hai hoặc ba bài đầu tiên của họ phải chờ duyệt. Sau đó họ đăng tự do.
  2. Giới hạn tần suất. Giới hạn số bài mỗi phút và mỗi ngày đối với tài khoản mới.
  3. Xác minh email trước khi đăng bài.
  4. Nút báo cáo trên mọi bài, đưa vào hàng đợi kiểm duyệt.
  5. Nofollow cho link của người dùng, để spammer không được gì từ công cụ tìm kiếm.
  6. Nhật ký kiểm duyệt, để người kiểm duyệt thấy ai đã làm gì và vì sao.
  7. Nội quy rõ ràng được ghim trong mọi chuyên mục.

Ví dụ prompt đầu tiên

Xây dựng một diễn đàn hỏi đáp công khai cho những người đam mê cà phê espresso tại nhà. Chuyên mục: Máy pha, Máy xay, Kỹ thuật, Hạt cà phê, Mua và bán. Ai cũng có thể đọc; thành viên đăng ký bằng email và mật khẩu, và phải xác minh email trước khi đăng bài. Trang chủ đề tại /t/[slug] phải được render trên máy chủ với tiêu đề và mô tả meta riêng biệt để công cụ tìm kiếm đọc được. Các trả lời phẳng, theo thứ tự thời gian, có trích dẫn và nút thích. Người mở chủ đề có thể đánh dấu một trả lời là câu trả lời được chấp nhận, hiển thị ngay dưới câu hỏi. Ba bài đầu tiên của thành viên mới phải chờ người kiểm duyệt duyệt, và họ không được đăng link cho đến khi được duyệt. Người kiểm duyệt có thể ẩn, khóa, ghim và di chuyển chủ đề, xem hàng đợi các bài bị báo cáo, và mọi hành động đều được ghi nhật ký. Thêm tìm kiếm trong tiêu đề và nội dung bài viết với bộ lọc chuyên mục, và thông báo trong ứng dụng khi có trả lời mới trong các chủ đề tôi theo dõi. Lưu mọi thứ trong cơ sở dữ liệu.

Các bước xây dựng

  1. Làm trang chủ đề trước. Tạo vài chuyên mục và năm mươi chủ đề thực tế. Đọc, trích dẫn và trả lời phải hoạt động tốt trên điện thoại.
  2. Danh sách chuyên mục và chủ đề. Sắp xếp theo hoạt động mới nhất, chủ đề ghim lên đầu, dấu đã giải quyết.
  3. Tài khoản và xác minh. Xem cách thêm đăng nhập vào ứng dụng.
  4. Kiểm duyệt và cấp độ tin cậy. Hàng đợi duyệt, báo cáo, ẩn, khóa, di chuyển, ghi nhật ký. Thử với một tài khoản hoàn toàn mới cố đăng link.
  5. Tìm kiếm. Thử những cụm từ mà thành viên thật sự sẽ gõ.
  6. SEO. Xuất bản, mở một chủ đề, xem mã nguồn trang và kiểm tra các bài có trong HTML. Thêm sitemap cho các chủ đề.
  7. Đưa nội dung thật vào. Tự viết hai mươi chủ đề hữu ích đầu tiên, hoặc mời vài chuyên gia viết. Một diễn đàn trống sẽ không bao giờ có bài đăng đầu tiên.

Những lỗi thường gặp

  • Ra mắt khi còn trống. Không ai muốn đăng bài trước. Hãy gieo những câu hỏi và trả lời thật.
  • Quá nhiều chuyên mục. Năm chuyên mục đông người tốt hơn hai mươi chuyên mục vắng vẻ. Hãy tách ra sau.
  • Không duyệt tài khoản mới. Bot spam tìm ra diễn đàn mới rất nhanh.
  • HTML bài viết không được làm sạch. Một script trong bài có thể chiếm phiên đăng nhập của người khác. Luôn làm sạch nội dung người dùng.
  • Chuyên mục riêng tư bị rò rỉ. Hãy kiểm tra cả kết quả tìm kiếm và thông báo, không chỉ trang chủ đề.
  • Đếm trả lời mỗi lần tải trang. Hãy lưu số liệu trên chủ đề và cập nhật khi bài viết thay đổi.
  • Không có cách xóa tài khoản. Hãy quyết định số phận các bài của thành viên đã rời đi.

Khi phần mềm diễn đàn là lựa chọn tốt hơn

Phần mềm diễn đàn mã nguồn mở và dạng hosted, như Discourse, đã có nhiều năm hoàn thiện cấp độ tin cậy, chống spam, tích hợp email, kiểm duyệt và giao diện di động. Nếu bạn muốn một diễn đàn đa năng và không cần nó là một phần của ứng dụng khác, cài đặt hoặc đăng ký một trong số này thường nhanh và an toàn hơn là tự xây. Các công cụ chat phù hợp với trao đổi nhanh nhưng kém trong việc giữ câu trả lời dễ tìm lại.

Hãy tự xây khi diễn đàn là một phần của sản phẩm bạn: diễn đàn hỗ trợ trong SaaS của bạn, hoặc một mục hỏi đáp trên sàn thương mại. Hãy tự xây khi bạn cần dữ liệu riêng gắn với chủ đề (mẫu máy, đơn hàng, bài học khóa học), hoặc khi bạn muốn thiết kế và URL của diễn đàn hoàn toàn thuộc về mình. Với một không gian thành viên rộng hơn có hồ sơ và sự kiện, xem cách xây nền tảng cộng đồng.

Xây dựng với Mythex

Trên Mythex, bạn mô tả diễn đàn trong khung chat, thử nghiệm trong bản xem trước trực tiếp và xuất bản ra một địa chỉ công khai, với tên miền riêng trên gói Pro. Mythex thêm một cơ sở dữ liệu Postgres riêng cho người dùng, chủ đề và bài viết khi ứng dụng cần, cùng lưu trữ file cho ảnh đại diện và hình ảnh. Stack mặc định là một ứng dụng Vite và React render trên trình duyệt, nên với diễn đàn công khai hãy yêu cầu trang chủ đề được render trên máy chủ (Next.js là một lựa chọn) và làm theo công thức SEO. Đăng nhập thành viên và email do bạn tự cung cấp: chọn cách tiếp cận và nhà cung cấp, lưu khóa làm bí mật của dự án, và agent sẽ kết nối chúng. Dùng /test để agent thử đăng bài và kiểm duyệt trước khi xuất bản, và đọc danh sách kiểm tra bảo mật cho ứng dụng xây bằng AI trước khi mở đăng ký.

Câu hỏi thường gặp

Một website diễn đàn cần những gì?

Chuyên mục, chủ đề có các bài trả lời, tài khoản người dùng, tìm kiếm và công cụ kiểm duyệt. Hầu hết diễn đàn còn cần thông báo khi có trả lời, cách đánh dấu câu trả lời tốt nhất trong các chủ đề hỏi đáp, và chống spam cho tài khoản mới.

Diễn đàn nên công khai hay riêng tư?

Diễn đàn công khai có thể mang lại lưu lượng từ tìm kiếm, vì mỗi chủ đề là một trang mà người ta tìm thấy trên Google. Diễn đàn riêng tư phù hợp hơn với chủ đề nhạy cảm hoặc thành viên trả phí. Nhiều diễn đàn để người ta đọc công khai và chỉ yêu cầu tài khoản khi đăng bài.

Làm sao để chặn spam trên diễn đàn?

Giới hạn những gì tài khoản mới được làm: giữ các bài đầu tiên chờ duyệt, chặn link cho đến khi tài khoản đã hoạt động một thời gian, giới hạn tần suất đăng bài, và cung cấp nút báo cáo cho thành viên. Xác minh email khi đăng ký và ghi lại hành động của người kiểm duyệt.

Có nên dùng phần mềm diễn đàn có sẵn như Discourse không?

Nếu bạn cần một diễn đàn đầy đủ tính năng nhanh chóng, phần mềm diễn đàn đã có sẵn là lựa chọn an toàn hơn: nó đã có nhiều năm tính năng kiểm duyệt và chống spam. Hãy tự xây khi diễn đàn là một phần của ứng dụng lớn hơn hoặc cần dữ liệu và quy trình mà phần mềm diễn đàn thông thường không có.

Mythex · Pricing · Xây dựng mọi thứ với AI · Mẫu website và ứng dụng · So sánh Mythex · Thuật ngữ xây dựng ứng dụng bằng AI · Công cụ miễn phí để xây dựng ứng dụng bằng AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو 简体中文 繁體中文(香港) 繁體中文(台灣)