<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: hongsheng yang</title>
    <description>The latest articles on DEV Community by hongsheng yang (@hongsheng_yang_0b463d934e).</description>
    <link>https://dev.to/hongsheng_yang_0b463d934e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3963214%2F24bd43d7-8968-4b9e-8251-5ba217886b27.jpg</url>
      <title>DEV Community: hongsheng yang</title>
      <link>https://dev.to/hongsheng_yang_0b463d934e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hongsheng_yang_0b463d934e"/>
    <language>en</language>
    <item>
      <title>FlatBB : un forum open source qui s’installe en décompressant un zip</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Thu, 10 Sep 2026 09:25:03 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-un-forum-open-source-qui-sinstalle-en-decompressant-un-zip-beb</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-un-forum-open-source-qui-sinstalle-en-decompressant-un-zip-beb</guid>
      <description>&lt;p&gt;Vous voulez un vrai forum — sujets, réponses, Markdown, recherche, mode sombre — sans Composer, sans Docker, sans pipeline Node qui casse à chaque mise à jour. &lt;strong&gt;FlatBB&lt;/strong&gt; est un forum libre en PHP 8 pur : on décompresse, on ouvre l’URL, on choisit SQLite ou MySQL, on crée le compte admin. C’est toute la procédure.&lt;/p&gt;

&lt;p&gt;Site : &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt; · Téléchargement : &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt; · Code : [&lt;a href="https://github.com/nwnuyhs/flatbb%5D(https://github.com/nwnuyhs/fl" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb](https://github.com/nwnuyhs/fl&lt;/a&gt; C’est fait pour les indépendants, les associations et les petites équipes qui veulent un espace de discussion aujourd’hui, pas après une semaine d’ops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fonctionnalités complètes dès la première minute
&lt;/h2&gt;

&lt;p&gt;FlatBB n’est pas une coquille vide. Dès l’installation vous avez :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Catégories et tags&lt;/strong&gt; pour organiser les discussions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markdown&lt;/strong&gt; pour les sujets et les réponses (aperçu, mentions @, pièces jointes)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Une interface nette, aussi sur mobile
&lt;/h2&gt;

&lt;p&gt;Le design est volontairement calme : cartes, typographie lisible, colonnes qui se replient proprement sur téléphone. La navigation, la recherche, le bouton « nouveau sujet » et le menu compte restent accessibles sur petit écran. Pas de thème « desktop only » à rattraper ensuite : le responsive est dans le cœur du produit.&lt;/p&gt;

&lt;p&gt;Pour une communauté qui lit surtout depuis le téléphone — parents d’élèves, club local, support produit — ce détail change tout. On écrit, on répond, on cherche, sans zoomer ni se battre avec un menu caché.&lt;/p&gt;

&lt;h2&gt;
  
  
  Des plugins pensés pour l’IA (et pour les humains)
&lt;/h2&gt;

&lt;p&gt;Là où FlatBB se distingue vraiment, c’est l’écosystème d’extensions. Un plugin, c’est &lt;strong&gt;un dossier + un fichier plugin.php&lt;/strong&gt;. Toute la spécification — hooks, routes, réglages, sécurité, base de données — tient dans un seul document texte :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vous collez cette URL (ou le fichier) dans Claude, ChatGPT, Cursor ou Codex, vous décrivez la fonctionnalité, et l’assistant produit un plugin &lt;/p&gt;

&lt;h2&gt;
  
  
  SEO Pro et Guard : gratuits sur le marché
&lt;/h2&gt;

&lt;p&gt;Deux plugins officiels méritent une mention rapide :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SEO Pro&lt;/strong&gt; (gratuit) — titres et métas, sitemaps, données structurées, redirections, IndexNow, analytics : &lt;a href="https://www.flatbb.com/market/seo_pro" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/seo_pro&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guard&lt;/strong&gt; (gratuit) — 2FA, journal d’admin, bans IP, contrôle sécurité, alertes de connexion : &lt;a href="https://www.flatbb.com/market/guard" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/guard&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;À installer depuis Admin → Market. Le noyau est déjà soigné (CSRF, échappement, CSP) ; ces plugins couvrent le quotidien SEO et sécurité sans facture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pour qui ?
&lt;/h2&gt;

&lt;p&gt;FlatBB convient si vous voulez :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;un forum sur hébergement mutualisé ou VPS léger&lt;/li&gt;
&lt;li&gt;une stack que vous comprenez (PHP + SQLite/MySQL)&lt;/li&gt;
&lt;li&gt;des extensions que vous (ou une IA) pouvez écrire en une soirée&lt;/li&gt;
&lt;li&gt;une UI propre, mobile, avec Markdown et recherche dès le premier jour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Licence MIT, code ouvert sur GitHub. Essayez : &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;télécharger FlatBB&lt;/a&gt;, lisez le guide plugins, et posez votre première communauté avant la fin de la pause café.prêt à zipper et à uploader dans &lt;strong&gt;Admin → Plugins&lt;/strong&gt;. Pas de build, pas de CLI obligatoire pour livrer. Le marketplace permet aussi l’installation en un clic et la publication de vos propres extensions.&lt;/p&gt;

&lt;p&gt;C’est rare : un forum dont l’API d’extension est assez petite et stable pour qu’un modèle de langage la suive correctement. Vous gagnez des heures, et vous restez maître du code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Recherche plein texte&lt;/strong&gt; intégrée&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mode sombre&lt;/strong&gt; et bascule de thème côté visiteur&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface multilingue&lt;/strong&gt; : chaque membre choisit sa langue&lt;/li&gt;
&lt;li&gt;Notifications, likes, signets, profils, panneau d’administration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Autrement dit : les bases d’une communauté sérieuse sont là, sans plugin obligatoire pour « juste poster ».atbb)&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation : unzip, pas de stack
&lt;/h2&gt;

&lt;p&gt;La plupart des forums « modernes » partent du principe que vous avez Docker, Composer et une CI. Sur un hébergement mutualisé à deux euros, ça ne marche pas. FlatBB a choisi l’autre chemin :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PHP 8, sans framework et sans étape de build
&lt;/li&gt;
&lt;li&gt;Décompressez le zip dans le dossier web
&lt;/li&gt;
&lt;li&gt;Ouvrez l’URL, lancez l’assistant, choisissez SQLite (zéro config) ou MySQL
&lt;/li&gt;
&lt;li&gt;Créez l’administrateur — le forum tourne&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pas de composer install, pas d’image Docker à maintenir, pas de build frontend. Vous pouvez même déployer via FTP.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>FlatBB: انجمن متن‌باز با پشتیبانی کامل از راست‌به‌چپ و فارسی — نصب فقط با Unzip</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Thu, 10 Sep 2026 09:17:34 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-njmn-mtnbz-b-pshtybny-khml-z-rstbhchp-w-frsy-nsb-fqt-b-unzip-2078</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-njmn-mtnbz-b-pshtybny-khml-z-rstbhchp-w-frsy-nsb-fqt-b-unzip-2078</guid>
      <description>&lt;p&gt;اگر دنبال یک انجمن واقعی هستید — موضوع، پاسخ، مارک‌داون، جستجو، حالت تاریک — ولی نمی‌خواهید Composer، Docker یا پایپ‌لاین Node را نگه دارید، &lt;strong&gt;FlatBB&lt;/strong&gt; همان انتخاب است. یک انجمن آزاد با PHP 8 خالص: فایل را از حالت فشرده خارج کنید، آدرس را باز کنید، SQLite یا MySQL را انتخاب کنید، حساب مدیر بسازید. تمام. و مهم‌تر از همه برای جامعهٔ فارسی‌زبان: &lt;strong&gt;راست‌به‌چپ (RTL) و فارسی از همان هسته پشتیبانی می‌شوند&lt;/strong&gt;؛ نه به‌عنوان وصلهٔ بعدی.&lt;/p&gt;

&lt;p&gt;سایت: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt; · دانلود: [&lt;a href="https://www.flatbb.com/download%5D(https://www.flatbb.com/downlo" rel="noopener noreferrer"&gt;https://www.flatbb.com/download](https://www.flatbb.com/downlo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  رابط تمیز، موبایل‌محور — و راست‌به‌چپ واقعی برای فارسی
&lt;/h2&gt;

&lt;p&gt;طراحی عمداً آرام است: کارت‌ها، تایپوگرافی خوانا، ستون‌هایی که روی گوشی درست جمع می‌شوند. ناوبری، جستجو، «موضوع جدید» و منوی حساب روی صفحهٔ کوچک در دسترس می‌مانند. تم «فقط دسکتاپ» نیست که بعداً نجاتش دهید: واکنش‌گرایی در هسته است.&lt;/p&gt;

&lt;p&gt;برای فارسی‌زبانان نکتهٔ کلیدی این است: هسته وقتی بستهٔ زبانی RTL باشد، جهت سند را درست تنظیم می‌کند. استایل‌ها با ویژگی‌های جهت‌خنثی نوشته شده‌اند (&lt;code&gt;margin-inline&lt;/code&gt; و مشابه آن) تا چینش در فارسی برعکس نشود و متن کاربر با &lt;code&gt;dir="auto"&lt;/code&gt; درست نمایش داده شود. یعنی انجمن فارسی‌تان نه «انگلیسی با فونت فارسی»، بلکه &lt;strong&gt;رابط راست‌به‌چپ بومی&lt;/strong&gt; است — منوها، فرم‌ها، لیست موضوعات و محتوای پست‌ها در جهت درست می‌نشینند.&lt;/p&gt;

&lt;p&gt;برای جوامعی که بیشتر با موبایل می‌خوانند — والدین، باشگاه‌های محلی، پشتیبانی محصول — این ترکیب (موبایل + RTL) تفاوت واقعی می‌سازد. می‌نویسید، جواب می‌دهید، جستجو می‌کنید؛ بدون زوم و بدون منوی پنهان.&lt;/p&gt;

&lt;h2&gt;
  
  
  پلاگین‌های دوست‌دار هوش مصنوعی
&lt;/h2&gt;

&lt;p&gt;جایی که FlatBB واقعاً متمایز می‌شود، مدل افزونه است. یک پلاگین یعنی &lt;strong&gt;یک پوشه + یک &lt;code&gt;plugin.php&lt;/code&gt;&lt;/strong&gt;. کل مشخصات — هوک، مسیر، تنظیمات، امنیت، پایگاه‌داده — در یک سند متنی جمع شده:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;این آدرس (یا فایل) را به Claude، ChatGPT، Cursor یا Codex بدهید، قابلیت را توصیف کنید؛ دستیار یک پلاگین آمادهٔ زیپ و آپلود در &lt;strong&gt;Admin → Plugins&lt;/strong&gt; تحویل می‌دهد. بدون بیلد، بدو&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO Pro و Guard: رایگان در بازار
&lt;/h2&gt;

&lt;p&gt;دو پلاگین رسمی کوتاه یادآوری می‌شوند:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SEO Pro&lt;/strong&gt; (رایگان) — عنوان و متا، سایت‌مپ، دادهٔ ساخت‌یافته، ریدایرکت، IndexNow، آنالیتیکس: &lt;a href="https://www.flatbb.com/market/seo_pro" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/seo_pro&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guard&lt;/strong&gt; (رایگان) — احراز هویت دو مرحله‌ای، لاگ مدیر، بن IP، چک امنیتی، هشدار ورود: &lt;a href="https://www.flatbb.com/market/guard" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/guard&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;نصب از Admin → Market. هسته از قبل سخت‌شده است (CSRF، escape، CSP)؛ این دو افزونه کارهای روزمرهٔ سئو و امنیت را بدون فاکتور پوشش می‌دهند. برای بسیاری انجمن‌ها، هسته به‌علاوهٔ همین دو، بستهٔ شروع کافی است.&lt;/p&gt;

&lt;h2&gt;
  
  
  برای چه کسانی؟
&lt;/h2&gt;

&lt;p&gt;FlatBB مناسب است اگر می‌خواهید:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;انجمنی روی هاست اشتراکی یا VPS سبک
&lt;/li&gt;
&lt;li&gt;پشته‌ای که می‌فهمید (PHP + SQLite/MySQL)
&lt;/li&gt;
&lt;li&gt;افزونه‌هایی که خودتان (یا یک AI) در یک عصر می‌نویسید
&lt;/li&gt;
&lt;li&gt;رابط تمیز و موبایل با مارک‌داون و جستجو از روز اول
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;و برای فارسی: RTL داخلی، نه افزونهٔ جانبی&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;مجوز MIT، کد باز روی GitHub. امتحان کنید: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;FlatBB را دانلود کنید&lt;/a&gt;، راهنمای پلاگین را بخوانید، و قبل از سرد شدن چای جامعهٔتان را بالا بیاورید.ن CLI اجباری برای انتشار. از Marketplace هم با یک کلیک نصب می‌کنید و می‌توانید افزونهٔ خودتان را منتشر کنید.&lt;/p&gt;

&lt;p&gt;کم پیش می‌آید API افزونهٔ انجمنی آن‌قدر کوچک و پایدار باشد که مدل زبانی درست دنبالش کند. ساعت‌ها صرفه‌جویی می‌کنید و مالک کد می‌مانید. همان قواعد برای انسان‌ها هم خوانا است: فضای نام روشن، تنظیمات اعلانی، هوک به‌جای وصله زدن به هسته. اگر افزونه‌ای برای فارسی یا RTL می‌خواهید، همان سند را به دستیار بدهید و بخواهید CSS جهت‌خنثی رعایت شود.ad) · کد: &lt;a href="https://github.com/nwnuyhs/flatbb" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  نصب آسان: Unzip، بدون Composer و Docker
&lt;/h2&gt;

&lt;p&gt;بیشتر انجمن‌های «مدرن» فرض می‌کنند Docker، Composer و CI دارید. روی هاست اشتراکی ارزان همین‌جا کار می‌ترکد. FlatBB راه دیگری رفته است:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PHP 8، بدون فریم‌ورک و بدون مرحلهٔ بیلد
&lt;/li&gt;
&lt;li&gt;زیپ را در پوشهٔ وب باز کنید
&lt;/li&gt;
&lt;li&gt;URL را باز کنید، نصب‌کننده را طی کنید، SQLite (بدون پیکربندی) یا MySQL را بزنید
&lt;/li&gt;
&lt;li&gt;مدیر بسازید — انجمن بالا می‌آید&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;نه &lt;code&gt;composer install&lt;/code&gt;، نه ایمیج داکر برای نگهداری، نه بیلد فرانت. حتی FTP کافی است. مناسب فریلنسرها، انجمن‌های محلی، گروه‌های آموزشی و تیم‌های کوچک که امروز می‌خواهند جامعه داشته باشند، نه بعد از یک هفته Ops. اگر رشد کردید همان کد می‌ماند؛ فقط ترافیک بیشتر و در صورت نیاز MySQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  امکانات کامل از همان دقیقهٔ اول
&lt;/h2&gt;

&lt;p&gt;FlatBB پوستهٔ خالی نیست. بلافاصله بعد از نصب دارید:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;دسته‌بندی و برچسب&lt;/strong&gt; برای نظم گفتگوها
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;مارک‌داون&lt;/strong&gt; در موضوع و پاسخ (پیش‌نمایش، منشن &lt;code&gt;@&lt;/code&gt;، پیوست)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;جستجوی متن کامل&lt;/strong&gt; در هسته
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;حالت تاریک&lt;/strong&gt; و تعویض تم برای هر بازدیدکننده
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;چندزبانه بودن&lt;/strong&gt; رابط: هر عضو زبان خودش را انتخاب می‌کند
&lt;/li&gt;
&lt;li&gt;اعلان، لایک، نشانک، پروفایل، پنل مدیریت&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;یعنی پایه‌های یک جامعهٔ جدی از روز اول آماده‌اند؛ بدون پلاگین اجباری فقط برای پست گذاشتن. مدیریت، ساختاربندی و جستجو فوری کار می‌کند؛ افزونه‌ها وقتی لازم شدند اضافه می‌شوند.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>FlatBB Guard: operational security on top of a hardened core</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Thu, 10 Sep 2026 08:52:22 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-guard-operational-security-on-top-of-a-hardened-core-4d31</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-guard-operational-security-on-top-of-a-hardened-core-4d31</guid>
      <description>&lt;p&gt;FlatBB’s core already escapes output, verifies CSRF on every POST, ships a Content Security Policy, and re-asks the admin password on high-risk pages. &lt;strong&gt;Guard&lt;/strong&gt; is the free operational-security plugin that watches what happens on top of that stack.&lt;/p&gt;

&lt;p&gt;Plugin page: &lt;a href="https://www.flatbb.com/market/guard" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/guard&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Guard adds
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Two-factor sign-in (Guard 1.1+)
&lt;/h3&gt;

&lt;p&gt;Authenticator apps (TOTP), eight recovery codes, secrets encrypted with the site secret. Optional rule: staff must use 2FA. Available for staff only or for every member.&lt;/p&gt;

&lt;h3&gt;
  
  
  Admin  Security toolkit
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Check-up&lt;/strong&gt; — HTTPS, CSP mode, real IP behind proxies, &lt;code&gt;data/&lt;/code&gt; not web-accessible, no PHP in &lt;code&gt;uploads/&lt;/code&gt;, debug flags, site secret, PHP version, scheduled jobs, staff accounts, registration, new-address staff sign-ins, CSP reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin log&lt;/strong&gt; — searchable core action log (action, target, detail, IP)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign-ins&lt;/strong&gt; — per account/address history; new addresses in the last 7 days marked; &lt;strong&gt;Sign out everywhere&lt;/strong&gt; without changing the password&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bans&lt;/strong&gt; — IP or CIDR, permanent or timed; admins never blocked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Warnings&lt;/strong&gt;  notify staff about script-like text in posts/profiles (content is already escaped by the core)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Probes&lt;/strong&gt;  record scanner paths (&lt;code&gt;wp-admin&lt;/code&gt;, &lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;.git&lt;/code&gt;, backups, plugin PHP…), one-click ban, ignore the server probing itself&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Alerts
&lt;/h3&gt;

&lt;p&gt;Sign-in from a never-seen address  in-app notification (and optional email), for staff by default or for everyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;A lightweight PHP forum on shared hosting still gets scanned. Guard turns “secure defaults” into day-to-day ops: see whos knocking, ban ranges, force 2FA for mods, and keep an audit trail — without buying a separate WAF product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FlatBB: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Guard: &lt;a href="https://www.flatbb.com/market/guard" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/guard&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install: Admin → Market → search &lt;code&gt;guard&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Requires FlatBB 0.1.26+ (newer features need later cores; Probes needs 0.1.58+).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I’m the author of FlatBB.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>FlatBB is built for Google: free SEO Pro vs commercial SEO plugins</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Thu, 10 Sep 2026 08:35:44 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-is-built-for-google-free-seo-pro-vs-commercial-seo-plugins-g7f</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-is-built-for-google-free-seo-pro-vs-commercial-seo-plugins-g7f</guid>
      <description>&lt;p&gt;Most forum stacks treat SEO as an afterthought  or sell it as a paid add-on. FlatBB takes the opposite approach: the core is crawl-friendly, and &lt;strong&gt;SEO Pro&lt;/strong&gt; is a free, certified plugin that covers the same ground as big commercial SEO products (title/meta templates, sitemaps, schema, redirects, IndexNow, analytics).&lt;/p&gt;

&lt;p&gt;Plugin page: &lt;a href="https://www.flatbb.com/market/seo_pro" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/seo_pro&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why FlatBB indexes well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Clean public URLs for topics, categories, and tags&lt;/li&gt;
&lt;li&gt;Only signed-out-readable content goes into sitemaps (hidden / gated topics stay out)&lt;/li&gt;
&lt;li&gt;Editable &lt;code&gt;robots.txt&lt;/code&gt; with a Sitemap line&lt;/li&gt;
&lt;li&gt;Canonicals and “Page N” handling for paginated lists&lt;/li&gt;
&lt;li&gt;Indexing rules for thin pages (member profiles are noindex by default)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What free SEO Pro includes (commercial-plugin territory)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Titles &amp;amp; meta&lt;/strong&gt; — templates per page type (home, topic, category, tag, member) with variables like &lt;code&gt;%title%&lt;/code&gt;, &lt;code&gt;%site%&lt;/code&gt;, &lt;code&gt;%excerpt%&lt;/code&gt;, &lt;code&gt;%replies%&lt;/code&gt;. Per-topic overrides for moderators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Share cards&lt;/strong&gt; — Open Graph + X cards; image fallback: override → first post image → avatar  site default. Gated topics emit no share tags (no private leaks).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured data (JSON-LD)&lt;/strong&gt; — &lt;code&gt;WebSite&lt;/code&gt; + &lt;code&gt;SearchAction&lt;/code&gt; + &lt;code&gt;Organization&lt;/code&gt; on home; &lt;code&gt;BreadcrumbList&lt;/code&gt; everywhere; &lt;code&gt;DiscussionForumPosting&lt;/code&gt; on topics; &lt;code&gt;CollectionPage&lt;/code&gt; / &lt;code&gt;ProfilePage&lt;/code&gt;; &lt;code&gt;QAPage&lt;/code&gt; when Q&amp;amp;A marks an accepted answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sitemaps&lt;/strong&gt; — &lt;code&gt;/sitemap.xml&lt;/code&gt; index with paged topic files (lastmod + images), categories, tags, optional users, plus URLs from other plugins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redirects &amp;amp; 404 log&lt;/strong&gt;  301/302 for moved URLs; 404 log with referrer and one-click “Redirect…”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IndexNow&lt;/strong&gt; — notify Bing/Yandex/Naver/Seznam when topics are posted or edited (Google still uses the sitemap).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics&lt;/strong&gt; — GA4, Plausible, Umami, Matomo, CSP-safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compared with commercial SEO plugins
&lt;/h2&gt;

&lt;p&gt;You usually pay for Yoast / Rank Math / AIOSEO-class features on WordPress. Forum vendors often charge for “SEO packs.” On FlatBB, SEO Pro is &lt;strong&gt;free&lt;/strong&gt; in the official marketplace (Admin → Market → &lt;code&gt;seo_pro&lt;/code&gt;), replaces the older SEO Meta plugin, and is aimed at real forum pages — discussions, categories, tags  not blog posts bolted onto a CMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FlatBB: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SEO Pro: &lt;a href="https://www.flatbb.com/market/seo_pro" rel="noopener noreferrer"&gt;https://www.flatbb.com/market/seo_pro&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I’m the author of FlatBB.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
    </item>
    <item>
      <title>FlatBB — easy install, full features, clean UI, and AI-built plugins</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Thu, 10 Sep 2026 07:17:24 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-easy-install-full-features-clean-ui-and-ai-built-plugins-4dpf</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-easy-install-full-features-clean-ui-and-ai-built-plugins-4dpf</guid>
      <description>&lt;h1&gt;
  
  
  FlatBB — easy install, full features, clean UI, and AI-built plugins
&lt;/h1&gt;

&lt;p&gt;FlatBB is an open-source forum in plain PHP 8.1+ for communities that want a modern board without Docker/Composer/build pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Easy install &amp;amp; deploy
&lt;/h2&gt;

&lt;p&gt;Unzip → open the URL → pick SQLite or MySQL → create admin. No framework, no Composer, no Docker, no build step. Runs on cheap shared hosting. One-click upgrades: Admin → Updates.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature-complete
&lt;/h2&gt;

&lt;p&gt;Categories &amp;amp; permissions, tags, Markdown, @mentions, attachments, notifications, full-text search, dark mode, mobile layout, multilingual + built-in RTL, core points (0.1.70), plugin marketplace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean UI
&lt;/h2&gt;

&lt;p&gt;Three-column desktop, solid mobile layout, dark mode, language globe, RTL mirroring, uploadable category icons, and a draggable header-right layout in Admin → Layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI-friendly plugins
&lt;/h2&gt;

&lt;p&gt;One plugin = one folder + &lt;code&gt;plugin.php&lt;/code&gt;. The whole API fits in one doc you can hand to Claude, Codex, or Cursor:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Describe the feature → get a zip → install (or publish to the marketplace). Marketplace: &lt;a href="https://www.flatbb.com/market" rel="noopener noreferrer"&gt;https://www.flatbb.com/market&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Site: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/nwnuyhs/flatbb" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Demo video: &lt;a href="https://youtu.be/tHf2wKZVbDQ" rel="noopener noreferrer"&gt;https://youtu.be/tHf2wKZVbDQ&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I’m the author of FlatBB.&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff21hgzcdf8uyfryvvkze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff21hgzcdf8uyfryvvkze.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzdo8mwb6365t05vk95nx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzdo8mwb6365t05vk95nx.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fadrelwxf1cuci5v2l0sx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fadrelwxf1cuci5v2l0sx.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0q1uttanmcyiim2yhq81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0q1uttanmcyiim2yhq81.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnksgjqvb72i8f2hmnyqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnksgjqvb72i8f2hmnyqc.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>FlatBB 0.1.70: points move into the core</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Thu, 10 Sep 2026 04:48:41 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-0170-points-move-into-the-core-4cfg</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-0170-points-move-into-the-core-4cfg</guid>
      <description>&lt;p&gt;FlatBB 0.1.70 (2026-09-09) turns community points into a first-class core feature — not a bolt-on plugin.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s new in 0.1.70
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Points rules in Admin → Points
&lt;/h3&gt;

&lt;p&gt;Admins get one table for what each action pays: new topic, reply, like received, like given. You set how many times a day an action can pay a member, and whether the rule is on. Plugins can add their own rows. A post pays once, no matter how often it is edited or re-liked.&lt;/p&gt;

&lt;h3&gt;
  
  
  Every member gets /points
&lt;/h3&gt;

&lt;p&gt;The user menu shows the balance and a &lt;code&gt;/points&lt;/code&gt; page with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;this month’s earnings and spending&lt;/li&gt;
&lt;li&gt;history split into All / Earned / Spent, each line linking back to the post&lt;/li&gt;
&lt;li&gt;“How to earn points” generated from the live rule table&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Points &amp;amp; Leaderboard split
&lt;/h3&gt;

&lt;p&gt;The old &lt;strong&gt;Points &amp;amp; Leaderboard&lt;/strong&gt; plugin is retired. Rules live in the core; the top-members card, &lt;code&gt;/leaderboard&lt;/code&gt;, and profile rank move to a new &lt;strong&gt;Leaderboard&lt;/strong&gt; plugin. Update Points to 3.0.0 (stub), disable it, then install Leaderboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  For plugin authors
&lt;/h3&gt;

&lt;p&gt;New APIs: &lt;code&gt;points_award()&lt;/code&gt;, &lt;code&gt;points_revoke()&lt;/code&gt;, hook &lt;code&gt;points.rules&lt;/code&gt;, region &lt;code&gt;points.actions&lt;/code&gt; (see PLUGIN.md §14a).&lt;/p&gt;

&lt;h2&gt;
  
  
  Related: 0.1.69 licence note
&lt;/h2&gt;

&lt;p&gt;From 0.1.69, FlatBB is free software under &lt;strong&gt;GNU AGPL-3.0-or-later&lt;/strong&gt;. Plugins and themes may use any licence. Releases through 0.1.68 remain MIT. Organisations that cannot accept AGPL can look into a commercial licence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Site: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/nwnuyhs/flatbb" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upgrade path for existing installs: &lt;strong&gt;Admin → Updates&lt;/strong&gt; (one click).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I’m the author of FlatBB.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>opensource</category>
      <category>forem</category>
      <category>webdev</category>
    </item>
    <item>
      <title>FlatBB vs Discourse, Flarum, and phpBB: a lightweight PHP forum for shared hosting — and for AI</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Wed, 09 Sep 2026 06:27:45 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-vs-discourse-flarum-and-phpbb-a-lightweight-php-forum-for-shared-hosting-and-for-ai-3326</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-vs-discourse-flarum-and-phpbb-a-lightweight-php-forum-for-shared-hosting-and-for-ai-3326</guid>
      <description>&lt;p&gt;Most “modern” forum stacks assume you have Docker, Composer, Redis, and spare RAM. A lot of real communities only have cheap shared hosting and an FTP client. &lt;strong&gt;FlatBB&lt;/strong&gt; is a free MIT-licensed forum in plain PHP 8.1+ aimed at that reality: unzip a folder, open the installer, pick SQLite or MySQL, and you’re live.&lt;/p&gt;

&lt;p&gt;This post compares FlatBB with Discourse, Flarum, and phpBB/MyBB, then explains why its plugin system is deliberately &lt;strong&gt;AI-friendly&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Discourse&lt;/th&gt;
&lt;th&gt;Flarum&lt;/th&gt;
&lt;th&gt;phpBB / MyBB&lt;/th&gt;
&lt;th&gt;FlatBB&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Stack&lt;/td&gt;
&lt;td&gt;Ruby, Postgres, Redis, Docker&lt;/td&gt;
&lt;td&gt;PHP + Composer&lt;/td&gt;
&lt;td&gt;Classic PHP&lt;/td&gt;
&lt;td&gt;Plain PHP 8.1+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Install&lt;/td&gt;
&lt;td&gt;Container / launcher&lt;/td&gt;
&lt;td&gt;Composer / SSH often&lt;/td&gt;
&lt;td&gt;Upload + installer&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Unzip + browser installer&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting fit&lt;/td&gt;
&lt;td&gt;VPS 2–4GB+&lt;/td&gt;
&lt;td&gt;Shared/VPS with Composer&lt;/td&gt;
&lt;td&gt;Shared hosting&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cheapest shared hosting&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UX&lt;/td&gt;
&lt;td&gt;Excellent modern&lt;/td&gt;
&lt;td&gt;Clean modern&lt;/td&gt;
&lt;td&gt;Dated by default&lt;/td&gt;
&lt;td&gt;Discourse-style three-column, dark mode, mobile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTL / i18n&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Often needs RTL extension&lt;/td&gt;
&lt;td&gt;Language packs&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Built-in packs + RTL mirroring (incl. Persian)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extensibility&lt;/td&gt;
&lt;td&gt;Plugins&lt;/td&gt;
&lt;td&gt;Extensions&lt;/td&gt;
&lt;td&gt;Mods&lt;/td&gt;
&lt;td&gt;Plugins + marketplace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;GPL&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;GPL / LGPL&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MIT&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  vs Discourse
&lt;/h2&gt;

&lt;p&gt;Discourse is the gold standard for large, active communities: moderation, trust levels, email digests, ecosystem. The trade-off is operational weight  Docker, Postgres, Redis, and enough RAM that a $2–5 shared plan is out of the question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Discourse&lt;/strong&gt; if you have a real VPS budget and need enterprise-grade community tooling.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Choose FlatBB&lt;/strong&gt; if you want a modern-feeling board without containers  same “community forum” goal, different hosting constraints.&lt;/p&gt;

&lt;h2&gt;
  
  
  vs Flarum
&lt;/h2&gt;

&lt;p&gt;Flarum is elegant and lighter than Discourse, but many installs still expect Composer and a host that can run the PHP toolchain. Extensions are powerful; RTL historically needed extra work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FlatBB&lt;/strong&gt; keeps the “upload and go” path: no Composer, no build step. Language packs ship in the box (EN/DE/FR/ES/PT/IT/NL/FA). When a pack is RTL, layout, drawer, and icons mirror with &lt;code&gt;dir="rtl"&lt;/code&gt;. Posts follow their own writing direction for mixed communities.&lt;/p&gt;

&lt;h2&gt;
  
  
  vs phpBB / MyBB
&lt;/h2&gt;

&lt;p&gt;Classic boards still win on familiarity and “just upload it.” FlatBB keeps that deploy model but ships a cleaner three-column UI, Markdown with live preview, FTS search, notifications, one-click upgrades, and a smaller plugin surface aimed at AI assistants.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI-friendly by design
&lt;/h2&gt;

&lt;p&gt;The part we’re most intentional about is plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A plugin is &lt;strong&gt;one folder&lt;/strong&gt; with a &lt;code&gt;plugin.php&lt;/code&gt; manifest (routes, hooks, settings, admin pages, jobs).&lt;/li&gt;
&lt;li&gt;The whole API fits in a single document: &lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Paste that into Claude Code, Codex, or Cursor, describe the feature, and upload the zip in Admin → Plugins (or publish to the marketplace).&lt;/li&gt;
&lt;li&gt;Naming, security (&lt;code&gt;h()&lt;/code&gt;, CSRF), and SQL portability rules live in that same file so assistants dont invent host-specific SQL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every bundled plugin was built this way. Marketplace: &lt;a href="https://www.flatbb.com/market" rel="noopener noreferrer"&gt;https://www.flatbb.com/market&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who FlatBB is for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Small/medium communities on shared hosting or a tiny VPS
&lt;/li&gt;
&lt;li&gt;Admins who refuse Docker for a hobby forum
&lt;/li&gt;
&lt;li&gt;Multilingual / RTL communities (Persian, Arabic, Hebrew-ready layout mirroring)
&lt;/li&gt;
&lt;li&gt;Builders who want AI to scaffold plugins instead of reading 50 hook docs first
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Site: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/nwnuyhs/flatbb" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Demo video: &lt;a href="https://youtu.be/tHf2wKZVbDQ" rel="noopener noreferrer"&gt;https://youtu.be/tHf2wKZVbDQ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Plugin docs for AI: &lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MIT licensed. If you try it, tell us where it breaks  the support forum runs on FlatBB itself.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I’m the author of FlatBB.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>opensource</category>
      <category>ai</category>
      <category>forum</category>
    </item>
    <item>
      <title>FlatBB: multilingual out of the box, with a full forum feature set</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Tue, 08 Sep 2026 12:20:41 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/flatbb-multilingual-out-of-the-box-with-a-full-forum-feature-set-2241</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/flatbb-multilingual-out-of-the-box-with-a-full-forum-feature-set-2241</guid>
      <description>&lt;p&gt;Most “lightweight” forums cut corners. FlatBB is different: plain PHP 8.1+, no Composer/Docker/build step — but the feature list is what small communities actually need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built-in languages
&lt;/h2&gt;

&lt;p&gt;Interface packs ship in the box:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;English, German, French, Spanish, Portuguese, Italian, Dutch&lt;/li&gt;
&lt;li&gt;Persian (فارسی) with full RTL layout mirroring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Header globe language switcher (remembered for visitors; members can set Preferences)&lt;/li&gt;
&lt;li&gt;Admin default language&lt;/li&gt;
&lt;li&gt;Per-visitor time zones for displayed times; site timezone for email/feeds/logs&lt;/li&gt;
&lt;li&gt;Post text follows its own writing direction (mixed-language communities work)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Core features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Discussion:&lt;/strong&gt; nested categories (one level) + per-group permissions, tags, topics/replies, quotes, @mentions, Markdown + live preview, drag/paste image upload, likes, bookmarks, unread tracking, notifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discovery:&lt;/strong&gt; full-text search (SQLite FTS5 / MySQL FULLTEXT), Latest / Top / Unread, clean URLs, RSS, sitemap, profiles &amp;amp; avatars.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UX:&lt;/strong&gt; Discourse/Flarum-style three-column layout that collapses on phones, dark mode, one-click upgrades.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Admin:&lt;/strong&gt; settings, categories, tags, users, groups, layout blocks, plugins, scheduled jobs, tools.&lt;/p&gt;

&lt;p&gt;Need more? The marketplace and AI-friendly plugin API cover SEO, social login (Google/GitHub/X), Q&amp;amp;A, levels, verified badges, Guard/2FA, drafts, and more. Plugin docs for assistants: &lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Site: &lt;a href="https://www.flatbb.com/" rel="noopener noreferrer"&gt;https://www.flatbb.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/nwnuyhs/flatbb" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Marketplace: &lt;a href="https://www.flatbb.com/market" rel="noopener noreferrer"&gt;https://www.flatbb.com/market&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MIT licensed. If you try it, tell us where it breaks — the support forum runs on FlatBB itself.&lt;/p&gt;

</description>
      <category>php</category>
      <category>opensource</category>
      <category>forum</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Install a forum on $2 shared hosting in 2 minutes: no Composer, no Docker, no build step</title>
      <dc:creator>hongsheng yang</dc:creator>
      <pubDate>Fri, 04 Sep 2026 14:37:21 +0000</pubDate>
      <link>https://dev.to/hongsheng_yang_0b463d934e/install-a-forum-on-2-shared-hosting-in-2-minutes-no-composer-no-docker-no-build-step-g7k</link>
      <guid>https://dev.to/hongsheng_yang_0b463d934e/install-a-forum-on-2-shared-hosting-in-2-minutes-no-composer-no-docker-no-build-step-g7k</guid>
      <description>&lt;p&gt;Most forum software today assumes you have a build pipeline. Discourse wants Ruby, Docker, Redis and Postgres. Flarum is PHP but still needs Composer and a terminal. That is fine for a company running a big community, but it rules out the hosting most small communities actually have: a $2 shared plan with a file manager and a MySQL database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.flatbb.com" rel="noopener noreferrer"&gt;FlatBB&lt;/a&gt; is a flat, lightweight forum I wrote for exactly that case. Plain PHP 8, no framework, no Composer, no build step, MIT licensed. This post is the whole installation, then the part I find more interesting: writing plugins for it with an AI assistant.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Any host with PHP 8.1 or newer (&lt;code&gt;pdo_sqlite&lt;/code&gt; or &lt;code&gt;pdo_mysql&lt;/code&gt;, &lt;code&gt;mbstring&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;A MySQL 5.7+ database, or nothing at all if you use SQLite&lt;/li&gt;
&lt;li&gt;A way to put files on the server: FTP, the hosting file manager, or &lt;code&gt;unzip&lt;/code&gt; over SSH if you have it&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: download and unzip
&lt;/h2&gt;

&lt;p&gt;Get the zip from &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt; and unzip it. You get one folder, &lt;code&gt;flatbb-0.1.10/&lt;/code&gt;. Rename it to whatever you like or put its contents straight into your web root.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public_html/
  index.php
  core/
  app/
  assets/
  plugins/
  data/        &amp;lt;- config and SQLite file live here, must be writable
  uploads/     &amp;lt;- attachments and avatars, must be writable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your host lets you set the document root, point it at the folder. If not, the root works too; &lt;code&gt;data/&lt;/code&gt; and &lt;code&gt;uploads/&lt;/code&gt; are protected by the bundled &lt;code&gt;.htaccess&lt;/code&gt; (Apache) and the nginx rules in the docs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: open the URL
&lt;/h2&gt;

&lt;p&gt;Visit your domain. The installer appears:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose the language.&lt;/li&gt;
&lt;li&gt;Choose MySQL (enter host, database, user, password) or SQLite (nothing to enter).&lt;/li&gt;
&lt;li&gt;Create the admin account.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the deployment. There is no step 3. The whole thing took under two minutes on a cheap shared plan when I timed it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;Categories, tags, flat topics with replies, markdown with mentions and attachments, notifications, full-text search (FTS5 on SQLite, FULLTEXT on MySQL), dark mode, a three-column layout that collapses to one on a phone, and an admin panel for users, groups, categories, layout blocks and plugins. Seven language packs ship in the box.&lt;/p&gt;

&lt;p&gt;Upgrades are one click: Admin, Tools, Check for updates. The core is a handful of small PHP files you can read in an afternoon, which matters when something breaks on a host you cannot SSH into.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plugins: one folder, one manifest
&lt;/h2&gt;

&lt;p&gt;Everything beyond the core is a plugin. A plugin is a folder with a &lt;code&gt;plugin.php&lt;/code&gt; that returns a manifest: routes, hooks, settings, admin pages, scheduled jobs, and its own tables through helpers that work on both SQLite and MySQL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'id'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'hello'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Hello'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'version'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'1.0.0'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'description'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Shows a greeting above the topic list.'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'hooks'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'region.home.top'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'hello_banner'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;hello_banner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nv"&gt;$html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;array&lt;/span&gt; &lt;span class="nv"&gt;$ctx&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$html&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;div class="hello-banner"&amp;gt;'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;h&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Welcome!'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;/div&amp;gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You install a plugin by uploading the zipped folder in Admin, Plugins, or in one click from the marketplace at &lt;a href="https://www.flatbb.com/market" rel="noopener noreferrer"&gt;https://www.flatbb.com/market&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing plugins with an AI assistant
&lt;/h2&gt;

&lt;p&gt;Because the plugin API is small, it fits in a single text file: &lt;a href="https://www.flatbb.com/dev/plugins.md" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins.md&lt;/a&gt;. That file is the spec, the hook list and the helper reference in one.&lt;/p&gt;

&lt;p&gt;The workflow I use:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Paste the URL above into Claude Code, Codex or Cursor.&lt;/li&gt;
&lt;li&gt;Describe the plugin: what it does, where it shows up, its settings, who may use it.&lt;/li&gt;
&lt;li&gt;Ask for the finished folder as a zip.&lt;/li&gt;
&lt;li&gt;Upload it under Admin, Plugins.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The assistant gets the naming rules (&lt;code&gt;hello_*&lt;/code&gt; functions, &lt;code&gt;plugin_hello_*&lt;/code&gt; tables, &lt;code&gt;.hello-*&lt;/code&gt; CSS), the security rules (escape with &lt;code&gt;h()&lt;/code&gt;, never read superglobals, POST plus CSRF for every state change) and the portability rules (no engine-specific SQL) from the same document, so the result usually passes &lt;code&gt;php FlatBB plugin:check&lt;/code&gt; first time. Every bundled plugin was built this way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download: &lt;a href="https://www.flatbb.com/download" rel="noopener noreferrer"&gt;https://www.flatbb.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source on GitHub: &lt;a href="https://github.com/nwnuyhs/flatbb" rel="noopener noreferrer"&gt;https://github.com/nwnuyhs/flatbb&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Plugin marketplace: &lt;a href="https://www.flatbb.com/market" rel="noopener noreferrer"&gt;https://www.flatbb.com/market&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Plugin docs for AI assistants: &lt;a href="https://www.flatbb.com/dev/plugins" rel="noopener noreferrer"&gt;https://www.flatbb.com/dev/plugins&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it, tell me where it breaks. The support forum runs on FlatBB itself, which is the best test I know.&lt;/p&gt;

</description>
      <category>php</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>selfhosted</category>
    </item>
  </channel>
</rss>
