Руководства

Как создать форум: категории, темы, поиск и борьба со спамом

Форум — это набор категорий, тем внутри них и ответов внутри тем, а также учётные записи, поиск и модерация. Он отличается от группового чата тем, что обсуждения организованы по темам и остаются полезными годами: человек может найти тред трёхлетней давности через поиск и получить ответ. Чтобы создать форум, сделайте правильно страницу темы и поиск, а если форум открытый — позаботьтесь о том, чтобы поисковики читали страницы тем, и подготовьте инструменты против спама и модерации до того, как зарегистрируется первый настоящий участник.

Что нужно форуму

Страницы

  • Список категорий — главная страница для большинства форумов, с описанием каждой категории и последней активностью.
  • Список тем — темы категории, отсортированные по последнему ответу, со счётчиком ответов и метками «решено» или «закреплено».
  • Страница темы — первое сообщение и все ответы по порядку, с цитированием, реакциями и полем ответа.
  • Форма новой темы — заголовок, категория, текст, необязательные теги.
  • Поиск — по заголовкам и тексту сообщений, с фильтром по категориям.
  • Профиль пользователя — имя, аватар, дата регистрации, число сообщений, последние сообщения.
  • Очередь модерации — жалобы на сообщения и сообщения, ожидающие одобрения.

Данные

ТаблицаКлючевые поля
Пользователиимя, аватар, роль, уровень доверия, дата регистрации, статус
Категорииназвание, slug, описание, порядок сортировки, кто может писать
Темызаголовок, slug, категория, автор, закреплена, закрыта, решена, время последнего ответа
Сообщениятема, автор, текст, создано, изменено, скрыто
Реакциисообщение, пользователь, тип
Жалобысообщение, отправитель, причина, статус, решение модератора
Подпискипользователь, тема (чтобы уведомлять о новых ответах)

Хранение «времени последнего ответа» и «числа ответов» прямо в теме ускоряет список тем: не нужно пересчитывать сообщения при каждой загрузке страницы.

Права доступа

  • Гости могут читать открытые категории.
  • Участники могут писать сообщения и отвечать, а свои сообщения редактировать в течение ограниченного времени.
  • Модераторы могут скрывать, переносить, закрывать, закреплять и объединять темы, а также блокировать пользователей.
  • Администраторы управляют категориями и ролями.

Приватная категория должна проверяться на сервере при каждом запросе: страница темы, результаты поиска, RSS и уведомления требуют одной и той же проверки, иначе закрытые сообщения утекут через боковую дверь. См. как добавить управление доступом по ролям.

Решения и компромиссы

Плоские или вложенные ответы. Плоская тема (ответы в хронологическом порядке с цитированием) проще читать, и это стандарт для большинства форумов. Вложенные ответы (древовидные, как на Reddit) подходят для споров, но на телефоне их трудно читать. Берите плоские, если нет особой причины для другого варианта.

Режим вопросов и ответов. Для форумов поддержки и помощи дайте тому, кто задал вопрос, отметить один ответ как принятый и показывать его сразу под вопросом. Эта единственная функция делает старые темы гораздо полезнее.

Публичность для SEO или закрытость. Публичные страницы тем могут приносить стабильный поток с поиска, но только если поисковики могут их читать. Это значит, что у каждой темы есть свой понятный URL, настоящий <title> и сообщения есть в HTML, а не подгружаются JavaScript-ом позже. Если важен трафик из поиска, попросите отрисовку страниц тем на сервере или заранее. Подробнее в SEO для сайтов, созданных ИИ.

Расширенный текст или Markdown. Markdown с предпросмотром безопасно хранить. Визуальный редактор удобнее для нетехнических участников. В любом случае очищайте HTML перед показом, чтобы никто не смог внедрить скрипт в сообщение.

Поиск. Полнотекстовый поиск Postgres хватит форуму на первые годы. Отдельный поисковый сервис стоит внедрять только при большом масштабе. См. как добавить поиск в приложение.

Спам и модерация до запуска

Форумы привлекают автоматический спам быстрее почти любого другого сайта, потому что каждое сообщение — публичная страница, которая может содержать ссылку. Планируйте защиту с самого начала:

  1. Уровни доверия. Новые аккаунты не могут публиковать ссылки и картинки, а их первые два-три сообщения ждут одобрения. Потом они пишут свободно.
  2. Ограничение частоты. Лимит сообщений в минуту и в день для новых аккаунтов.
  3. Подтверждение email перед публикацией.
  4. Кнопка «пожаловаться» под каждым сообщением, которая попадает в очередь модерации.
  5. Nofollow для ссылок пользователей, чтобы спамеры не получали выгоду от поисковиков.
  6. Журнал модерации, чтобы модераторы видели, кто что сделал и почему.
  7. Понятные правила, закреплённые в каждой категории.

Пример первого промпта

Создай публичный форум вопросов и ответов для любителей домашнего эспрессо. Категории: Машины, Кофемолки, Техника, Зерно, Купля и продажа. Читать может любой; участники регистрируются по email и паролю и подтверждают email перед публикацией. Страницы тем по адресу /t/[slug] должны отрисовываться на сервере, с уникальным заголовком и описанием, чтобы поисковики их читали. Ответы плоские, в хронологическом порядке, с цитированием и реакцией «палец вверх». Тот, кто начал тему, может отметить один ответ как принятый, он показывается под вопросом. Первые три сообщения новых участников ждут одобрения модератора, а ссылки им нельзя публиковать до одобрения. Модераторы могут скрывать, закрывать, закреплять и переносить темы, видят очередь жалоб, и каждое действие записывается в журнал. Добавь поиск по заголовкам и сообщениям с фильтром по категории и уведомления в приложении о новых ответах в темах, на которые я подписан. Всё храни в базе данных.

Пошаговая сборка

  1. Сначала страница темы. Создайте несколько категорий и пятьдесят реалистичных тем. Добейтесь, чтобы чтение, цитирование и ответы работали на телефоне.
  2. Списки категорий и тем. Сортировка по последней активности, закреплённые темы сверху, метки «решено».
  3. Аккаунты и подтверждение. См. как добавить вход в приложение.
  4. Модерация и уровни доверия. Очередь одобрения, жалобы, скрытие, закрытие, перенос, журнал. Проверьте, как ведёт себя совершенно новый аккаунт, который пытается опубликовать ссылку.
  5. Поиск. Попробуйте запросы, которые реально будут вводить ваши участники.
  6. SEO. Опубликуйте сайт, откройте тему, посмотрите исходный код страницы и убедитесь, что сообщения есть в HTML. Добавьте карту сайта с темами.
  7. Наполните реальным контентом. Напишите первые двадцать полезных тем сами или пригласите нескольких экспертов. Пустой форум не получает первого сообщения.

Частые ошибки

  • Запуск на пустом месте. Никто не хочет писать первым. Заполните форум реальными вопросами и ответами.
  • Слишком много категорий. Пять активных категорий лучше двадцати тихих. Делите позже.
  • Нет одобрения для новых аккаунтов. Спам-боты быстро находят новые форумы.
  • Неочищенный HTML сообщений. Скрипт внутри сообщения может перехватить сессии других пользователей. Всегда очищайте пользовательский контент.
  • Утечки закрытых категорий. Проверяйте результаты поиска и уведомления, а не только страницу темы.
  • Подсчёт ответов при каждой загрузке страницы. Храните счётчики в теме и обновляйте их при изменении сообщений.
  • Нет способа удалить аккаунт. Решите, что будет с сообщениями ушедшего участника.

Когда лучше программное обеспечение для форумов

Открытое и облачное ПО для форумов, например Discourse, годами совершенствовало уровни доверия, защиту от спама, интеграцию с почтой, модерацию и мобильные версии. Если нужен универсальный форум и он не должен быть частью другого приложения, установить или подключить готовое решение обычно быстрее и надёжнее, чем строить своё. Чаты хороши для быстрого общения, но плохо подходят для того, чтобы ответы легко было найти.

Строить своё стоит, когда форум — часть вашего продукта: форум поддержки внутри SaaS, раздел вопросов и ответов на маркетплейсе; когда к темам нужны собственные данные (модель машины, заказ, урок курса); или когда вы хотите, чтобы дизайн и адреса форума полностью принадлежали вам. Для более широкого пространства участников с профилями и событиями см. как создать платформу сообщества.

Как это сделать в Mythex

В Mythex вы описываете форум в чате, пробуете его в живом превью и публикуете по публичному адресу, а собственный домен доступен на тарифе Pro. Когда приложению нужны пользователи, темы и сообщения, Mythex добавляет отдельную базу данных Postgres database, а для аватаров и картинок — файловое хранилище. По умолчанию используется стек на основе Vite и React, который рендерится в браузере, поэтому для публичного форума попросите отрисовку страниц тем на сервере (Next.js — один из вариантов) и следуйте рецепту SEO. Вход участников и email — через ваши собственные сервисы: выберите подход и провайдера, храните ключи как секреты проекта, а агент подключит их. Команда /test позволит агенту пройти публикацию и модерацию перед публикацией, а перед открытием регистрации прочитайте наш чеклист безопасности для приложений, созданных ИИ.

Вопросы

Что нужно сайту-форуму?

Категории, темы с ответами, учётные записи пользователей, поиск и инструменты модерации. Большинству форумов также нужны уведомления об ответах, способ отметить лучший ответ в разделах вопросов и ответов и защита от спама для новых аккаунтов.

Должен ли форум быть открытым или закрытым?

Открытый форум может приносить трафик из поиска, потому что каждая тема — отдельная страница, которую люди находят в Google. Закрытый форум лучше подходит для чувствительных тем или платных участников. Многие форумы оставляют чтение открытым и требуют аккаунт только для публикаций.

Как остановить спам на форуме?

Ограничьте то, что могут делать новые аккаунты: держите их первые сообщения на модерации, запретите ссылки, пока аккаунт не проявит активность, ограничьте частоту публикаций и дайте участникам кнопку «пожаловаться». Подтверждайте адрес email при регистрации и журналируйте действия модераторов.

Лучше ли взять готовый движок форума, например Discourse?

Если нужен полнофункциональный форум быстро, готовое программное обеспечение для форумов — более надёжный выбор: в нём уже есть годы наработок по модерации и защите от спама. Строить своё стоит, когда форум — часть большого приложения или когда нужны данные и процессы, которых в универсальном форуме нет.

Mythex · Pricing · Создавайте что угодно с ИИ · Шаблоны сайтов и приложений · Сравнения Mythex · Глоссарий по созданию приложений с ИИ · Бесплатные инструменты для создания приложений с ИИ · 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 Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)