چگونه یک انجمن بسازیم: دستهبندیها، موضوعات، جستجو و کنترل اسپم
انجمن مجموعهای از دستهبندیها، موضوعات داخل آنها و پاسخهای داخل موضوعات است، بهعلاوه حساب کاربری، جستجو و مدیریت. با یک گروه چت فرق دارد، چون گفتگوها بر اساس موضوع سازماندهی میشوند و سالها مفید میمانند — کسی میتواند با جستجو یک موضوع سهساله را پیدا کند و همچنان جوابش را بگیرد. برای ساخت آن، صفحه موضوع و جستجو را درست کنید، اگر انجمن عمومی است موضوعات را برای موتورهای جستجو خوانا کنید، و ابزارهای اسپم و مدیریت را پیش از ورود اولین عضو واقعی آماده داشته باشید.
انجمن به چه چیزهایی نیاز دارد
صفحهها
- فهرست دستهها — صفحه اصلی بیشتر انجمنها، با توضیح هر دسته و آخرین فعالیت.
- فهرست موضوعات — موضوعات یک دسته، مرتبشده بر اساس آخرین پاسخ، با تعداد پاسخها و نشانهای برای موضوعات حلشده یا سنجاقشده.
- صفحه موضوع — اولین پست و همه پاسخها به ترتیب، با نقلقول، واکنشها و کادر پاسخ.
- فرم موضوع جدید — عنوان، دسته، متن و برچسبهای اختیاری.
- جستجو — در عنوانها و متن پستها، با فیلتر بر اساس دسته.
- پروفایل کاربر — نام، آواتار، تاریخ عضویت، تعداد پستها و پستهای اخیر.
- صف مدیریت — پستهای گزارششده و پستهایی که منتظر تأیید هستند.
دادهها
| جدول | فیلدهای کلیدی |
|---|---|
| کاربران | نام، آواتار، نقش، سطح اعتماد، تاریخ عضویت، وضعیت |
| دستهها | نام، slug، توضیح، ترتیب نمایش، چه کسانی میتوانند ارسال کنند |
| موضوعات | عنوان، slug، دسته، نویسنده، سنجاقشده، قفلشده، حلشده، زمان آخرین پاسخ |
| پستها | موضوع، نویسنده، متن، زمان ایجاد، زمان ویرایش، پنهان |
| واکنشها | پست، کاربر، نوع |
| گزارشها | پست، گزارشدهنده، دلیل، وضعیت، تصمیم مدیر |
| اشتراکها | کاربر، موضوع (برای اعلان پاسخهای جدید) |
ذخیره «زمان آخرین پاسخ» و «تعداد پاسخها» روی خود موضوع، فهرست موضوعات را سریع نگه میدارد، بهجای شمردن پستها هر بار که صفحه باز میشود.
دسترسیها
- مهمانها میتوانند دستههای عمومی را بخوانند.
- اعضا میتوانند ارسال و پاسخ دهند و پستهای خودشان را برای مدت محدودی ویرایش کنند.
- مدیران میتوانند موضوعات را پنهان، جابهجا، قفل، سنجاق و ادغام کنند و کاربران را تعلیق کنند.
- ادمینها دستهها و نقشها را مدیریت میکنند.
دسترسی به یک دسته خصوصی باید در سرور و در هر درخواست بررسی شود — صفحه موضوع، نتایج جستجو، RSS و اعلانها همه به همان بررسی نیاز دارند، وگرنه پستهای خصوصی از یک مسیر فرعی درز میکنند. نحوه افزودن کنترل دسترسی مبتنی بر نقش را ببینید.
تصمیمها و مصالحهها
پاسخهای تخت یا تودرتو. پاسخهای تخت (پشت سر هم به ترتیب زمان، با نقلقول) خواندن آسانتری دارند و استاندارد بیشتر انجمنهاست. پاسخهای تودرتو (درختی مانند Reddit) برای بحث مناسباند، اما روی گوشی سخت دنبال میشوند. اگر دلیل خاصی ندارید، تخت را انتخاب کنید.
حالت پرسش و پاسخ. برای انجمنهای پشتیبانی و کمک، اجازه دهید کسی که پرسیده یک پاسخ را بهعنوان پاسخ پذیرفتهشده علامت بزند و آن را زیر سؤال نشان دهید. همین یک ویژگی موضوعات قدیمی را خیلی مفیدتر میکند.
عمومی برای SEO یا خصوصی. صفحات موضوع عمومی میتوانند ترافیک جستجوی پایدار بیاورند، اما فقط اگر موتورهای جستجو بتوانند آنها را بخوانند. یعنی هر موضوع URL تمیز و مستقل، یک <title> واقعی، و پستها در HTML باشند، نه اینکه بعداً با JavaScript بارگذاری شوند. اگر ترافیک جستجو مهم است، صفحات موضوع با رندر سمت سرور یا از پیشرندرشده درخواست کنید. بیشتر در SEO برای وبسایتهای ساختهشده با هوش مصنوعی.
متن غنی یا Markdown. Markdown با پیشنمایش ذخیرهاش ایمن است. ویرایشگر بصری برای اعضای غیرفنی دوستانهتر است. در هر حال، HTML را قبل از نمایش پاکسازی کنید تا کسی نتواند اسکریپت را در یک پست تزریق کند.
جستجو. جستجوی تماممتن Postgres برای سالهای اول یک انجمن کافی است. یک سرویس جستجوی جداگانه فقط در مقیاس بزرگ ارزشش را دارد. نحوه افزودن جستجو به اپ را ببینید.
اسپم و مدیریت، پیش از راهاندازی
انجمنها سریعتر از تقریباً هر سایت دیگری اسپم خودکار جذب میکنند، چون هر پست یک صفحه عمومی است که میتواند لینک داشته باشد. از ابتدا برای آن برنامهریزی کنید:
- سطوح اعتماد. حسابهای جدید نمیتوانند لینک یا تصویر بفرستند و دو یا سه پست اول آنها منتظر تأیید میماند. بعد از آن آزادانه پست میگذارند.
- محدودیت نرخ. سقف پست در دقیقه و در روز برای حسابهای جدید.
- تأیید ایمیل پیش از ارسال.
- دکمه گزارش روی هر پست که به صف مدیریت میرود.
- nofollow روی لینکهای کاربران، تا اسپمرها از موتورهای جستجو چیزی نبرند.
- گزارش اقدامات مدیریتی، تا مدیران ببینند چه کسی چه کاری و به چه دلیلی انجام داده.
- قوانین روشن که در هر دسته سنجاق شده باشند.
نمونه پرامپت اولیه
یک انجمن عمومی پرسش و پاسخ برای علاقهمندان اسپرسوی خانگی بسازید. دستهها: دستگاهها، آسیابها، تکنیک، دانهها، خرید و فروش. همه میتوانند بخوانند؛ اعضا با ایمیل و رمز ثبتنام میکنند و پیش از ارسال، ایمیلشان را تأیید میکنند. صفحات موضوع در /t/[slug] باید با رندر سمت سرور و عنوان و توضیح متا یکتا باشند تا موتورهای جستجو بتوانند آنها را بخوانند. پاسخها تخت و به ترتیب زمان هستند، با نقلقول و واکنش شستبالا. کسی که موضوع را شروع کرده میتواند یک پاسخ را بهعنوان پاسخ پذیرفتهشده علامت بزند که زیر سؤال نشان داده میشود. سه پست اول اعضای جدید منتظر تأیید مدیر میماند و تا تأیید نمیتوانند لینک بفرستند. مدیران میتوانند موضوعات را پنهان، قفل، سنجاق و جابهجا کنند، صف پستهای گزارششده را ببینند، و هر اقدام ثبت شود. جستجو در عناوین و پستها با فیلتر دسته و اعلان درونبرنامه برای پاسخهای جدید به موضوعاتی که دنبال میکنم اضافه کنید. همه چیز را در یک پایگاه داده ذخیره کنید.
مراحل ساخت
- ابتدا صفحه موضوع. چند دسته و پنجاه موضوع واقعی بکارید. خواندن، نقلقول و پاسخ دادن را روی گوشی درست کنید.
- فهرست دستهها و موضوعات. مرتبسازی بر اساس آخرین فعالیت، موضوعات سنجاقشده در بالا، نشانگرهای حلشده.
- حساب کاربری و تأیید. نحوه افزودن ورود به اپ را ببینید.
- مدیریت و سطوح اعتماد. صف تأیید، گزارشها، پنهان، قفل، جابهجایی، ثبت. بهعنوان یک حساب جدید تلاش کنید لینک بفرستید.
- جستجو. جستجوهایی را امتحان کنید که اعضا واقعاً تایپ میکنند.
- SEO. منتشر کنید، یک موضوع را باز کنید، سورس صفحه را ببینید و مطمئن شوید پستها در HTML هستند. یک نقشه سایت از موضوعات اضافه کنید.
- محتوای واقعی. بیست موضوع مفید اول را خودتان بنویسید، یا چند متخصص را دعوت کنید. یک انجمن خالی اولین پست را نمیگیرد.
اشتباههای رایج
- راهاندازی خالی. هیچکس نمیخواهد اولین نفر باشد. پرسشها و پاسخهای واقعی بگذارید.
- دستههای زیاد. پنج دسته پرتردد بهتر از بیست دسته ساکت است. بعداً تقسیم کنید.
- نبود تأیید برای حسابهای جدید. رباتهای اسپم خیلی سریع انجمنهای جدید را پیدا میکنند.
- HTML پستهای پاکسازینشده. یک اسکریپت داخل پست میتواند نشست کاربران دیگر را تصاحب کند. همیشه محتوای کاربر را پاکسازی کنید.
- دستههای خصوصی که درز میکنند. نتایج جستجو و اعلانها را بررسی کنید، نه فقط صفحه موضوع.
- شمردن پاسخها در هر بارگذاری صفحه. تعداد را روی موضوع ذخیره کنید و هنگام تغییر پستها بهروزرسانی کنید.
- نبود راه حذف حساب. تصمیم بگیرید پستهای عضوی که میرود چه میشود.
وقتی نرمافزار انجمن بهتر است
نرمافزار انجمن متنباز و میزبانیشده، مانند Discourse، سالها وقت برای بهبود سطوح اعتماد، ضداسپم، یکپارچگی ایمیل، مدیریت و طرحبندی موبایل صرف کرده است. اگر یک انجمن عمومی میخواهید و نیاز ندارد بخشی از اپ دیگری باشد، نصب یا اشتراک یکی از اینها معمولاً سریعتر و امنتر از ساختن است. ابزارهای چت برای گفتگوی سریع مناسباند، اما در پیدا شدن پاسخها ضعیفاند.
خودتان بسازید وقتی انجمن بخشی از محصول شماست — یک انجمن پشتیبانی داخل SaaS خودتان، یا یک بخش پرسش و پاسخ در یک بازار آنلاین — وقتی به دادههای سفارشی متصل به موضوعات نیاز دارید (مدل دستگاه، سفارش، درس دوره)، یا وقتی میخواهید طراحی و URLهای انجمن کاملاً مال خودتان باشد. برای یک فضای گستردهتر اعضا با پروفایل و رویداد، نحوه ساخت پلتفرم جامعه را ببینید.
ساخت با Mythex
در Mythex انجمن را در گفتگو توصیف میکنید، در پیشنمایش زنده امتحانش میکنید و آن را در یک نشانی عمومی منتشر میکنید، با دامنه سفارشی در طرح Pro. وقتی اپ به آن نیاز داشته باشد، Mythex یک پایگاه داده Postgres اختصاصی برای کاربران، موضوعات و پستها اضافه میکند، و فضای ذخیرهسازی فایل برای آواتارها و تصاویر. پشته پیشفرض یک اپ Vite و React است که در مرورگر رندر میشود، پس برای یک انجمن عمومی، رندر سمت سرور صفحات موضوع را درخواست کنید (Next.js یک گزینه است) و دستور SEO را دنبال کنید. ورود اعضا و ایمیل را خودتان میآورید: یک روش و یک ارائهدهنده انتخاب کنید، کلیدها را بهعنوان رازهای پروژه ذخیره کنید، و عامل آنها را وصل میکند. از /test استفاده کنید تا عامل ارسال و مدیریت را پیش از انتشار امتحان کند، و فهرست امنیتی اپهای ساختهشده با هوش مصنوعی را پیش از باز کردن ثبتنام بخوانید.
پرسشها
یک وبسایت انجمن به چه چیزهایی نیاز دارد؟
دستهبندیها، موضوعات با پاسخ، حساب کاربری، جستجو و ابزارهای مدیریت. بیشتر انجمنها همچنین به اعلان برای پاسخها، راهی برای علامتزدن بهترین پاسخ در موضوعات پرسش و پاسخ، و محافظت در برابر اسپم برای حسابهای جدید نیاز دارند.
آیا انجمن باید عمومی باشد یا خصوصی؟
یک انجمن عمومی میتواند ترافیک جستجو بیاورد، چون هر موضوع صفحهای است که مردم در گوگل پیدا میکنند. یک انجمن خصوصی برای موضوعات حساس یا اعضای پولی بهتر است. بسیاری از انجمنها خواندن را عمومی نگه میدارند و فقط برای ارسال مطلب حساب کاربری لازم دارند.
چطور جلوی اسپم در انجمن را بگیرم؟
محدود کنید که حسابهای جدید چه کارهایی میتوانند انجام دهند: اولین مطالب آنها را تا تأیید نگه دارید، تا مدتی فعال نبودن لینکها را مسدود کنید، نرخ ارسال را محدود کنید و یک دکمه گزارش تخلف به اعضا بدهید. آدرس ایمیل را هنگام ثبتنام تأیید کنید و اقدامات مدیران را ثبت کنید.
آیا بهتر است از نرمافزار انجمن مانند Discourse استفاده کنم؟
اگر سریع به یک انجمن کامل نیاز دارید، نرمافزار انجمن جاافتاده انتخاب امنتری است: سالها ویژگی مدیریت و ضداسپم دارد. خودتان بسازید وقتی انجمن بخشی از یک اپ بزرگتر است یا به دادهها و گردشکارهایی نیاز دارد که نرمافزار عمومی انجمن ندارد.