Releases: nwnuyhs/flatbb
Release list
FlatBB 0.2.1
- Admin → Import. Move another forum into a new FlatBB forum. Each source forum has its own importer plugin, listed on one page; an import runs in short steps from the browser (closing the page only pauses it) or to the end with
php flatbb import <source>, and ends with a report of what came along. - Flarum Importer (new on the marketplace): members keep their passwords, primary tags become categories and secondary tags become tags, nicknames become display names, and discussions, posts, likes, read marks, avatars and uploaded files come along. Posts keep their ids, @mentions, BBCode and Markdown are converted, posts that waited for approval go to the review queue, and old
/d/123-sluglinks redirect to the new topic. - Simplified Chinese language pack (简体中文). Pick it under Settings → General, or from the globe in the header.
- The verification code, password reset and email change messages are now sent in the member's language; they were always sent in English before.
- The avatar field no longer shows a verified mark and the online dot on an empty picture, and those marks stay small on large avatars.
- For plugins: an importer is a plugin with the manifest key
importerand the core'simport_*writers;avatar()takes$marks = false. Details in docs/WHATS-NEW.md and "Importers" in docs/PLUGIN.md.
Updated plugins on the marketplace: Growth 1.1.2 adds a Leaderboard link to the left menu and a proper welcome page for visitors; Verified 1.2.1 keeps its mark small on large avatars.
sha256 41abbae4cd3d3564c8cdb9ccf8c350e4617a1926bcbd33f9d10cbad0645e3f45
FlatBB 0.2.0
- Review queue. New topics and replies can wait for a moderator before anyone else sees them. Admin → Settings → Moderation holds a new member's posts until a number of them are public, and Admin → Categories can hold every new topic in a category. Moderators work the queue at
/review(Review queue in the account menu, with the count): approve, approve and trust the member, reject with a reason for the author, or ban a spammer and delete everything they wrote. Authors see their waiting post marked "Awaiting approval" and are told the outcome; nobody else sees it until it is approved — not in lists, search or feeds. - A post that waits sets off nothing until it is approved: no notifications, no points, no counts. Administrators and moderators never wait. Off by default.
- For plugins: waiting content has
is_deleted = 2, so queries foris_deleted = 0already leave it out; the new filterreview.holdlets a plugin hold a post. Details in docs/WHATS-NEW.md.
Updated plugin on the marketplace: Antispam 1.1.0 can hold a post that breaks its link or word rules in the review queue instead of refusing it.
sha256 e4a03f961201394e695b0b5cdece64162a640b62c48fe91b4ec851a0bf1b9ec2
FlatBB 0.1.99
- Display names. Admin → Settings → Registration → Display names (off by default) lets members pick a name in any language, up to 30 characters, shown instead of the username across the forum. The username stays the profile address, the sign-in name and what @mentions use; profiles and the User Card show @username under the name, and the @mention menu finds members by either name. Members can change it every 30 days (adjustable); administrators can edit it on the Users page.
- Link cards: a preview picture that does not load no longer leaves an empty box; the card shows as a text card.
- For plugins: show a member's name with
user_name($user). Details in docs/WHATS-NEW.md.
Updated plugins on the marketplace show display names: Private Messages 1.4.1, History 1.0.1, Follow 1.0.1, User Card 1.1.1, Tips 1.1.1, Donate 1.1.2, SEO Pro 1.1.3 (also works on PHP 8.5), SEO Meta 1.0.5.
sha256 3da0a2ba2a06280cd6ab9333b042fd07ab7d1f760decb48f2d6a3e6c59bbb4fb
FlatBB 0.1.98
- Link preview cards. A link on a line of its own in a post shows as a card with the page's picture, site, title and description. Pages are fetched once on the server, after the post is saved (public addresses only, 5 seconds, 512 KB at most), and kept for a week. Settings → Content turns cards on or off, in posts too, and lists sites that stay plain links.
- Logo settings. Settings → General → Logo offers three styles (icon and site name, a full logo image, or the name only), your own square icon in place of the FlatBB mark, a logo for dark themes, and the site name on phones if you want it. A live preview follows your choices. The favicon is unchanged.
- Pictures and keys save at once. Uploading a picture (logo, icon, favicon, avatars, badge pictures, donation QR codes) saves it right away, and Remove works at once with an Undo. Saved API keys show only their last four characters, with Change and Remove.
- For plugins:
notify_many()notifies any number of members in a few queries, and every notification kind can be switched off by its own member preferencenotify_<kind>. Details in docs/WHATS-NEW.md. - Docker files keep LF line endings on every checkout.
New and updated plugins on the marketplace: Follow 1.0.0 (new), Private Messages 1.4.0, User Card 1.1.0, X Style 1.2.0, Donate 1.1.1, Badges 1.2.1.
sha256 6d90373f12b4ddb098d2a3ed9f464b38a2d78282696cb10f64a721f657b167ea
FlatBB 0.1.97
FlatBB 0.1.97
- Fix: a fresh copy installs again. Since 0.1.89 a brand-new download showed an error instead of the installer. Existing forums were not affected.
- Docker (optional).
docker compose up -din the unzipped folder runs FlatBB on Apache + PHP 8.3 at http://localhost:8080, with the scheduled jobs in a second container and MySQL as an option. Guide: docs/DOCKER.md. Uploading the folder to any PHP host works as before. - The installer also detects clean URLs behind a port mapping or NAT.
- AI connections to Claude work with current Claude models: no sampling parameters, room for the model to think, and a refused request moves on to the next connection.
sha256 48afe2d708e550482b8414c0334ecc67e518363f1effe6374fac59ba9eab50de
FlatBB 0.1.96
FlatBB 0.1.96
- One AI connection for the whole site, with backups. Admin → Settings → AI holds a main connection and up to two backups (any OpenAI-compatible service such as OpenAI, DeepSeek, Qwen, Moonshot, OpenRouter or a local Ollama, or Anthropic). Each has its own test button. When the main one fails, the next is asked at once, and a failing connection rests for five minutes. Plugins use this connection instead of asking for their own key.
- Topics without a category. A new setting lets a topic be posted without choosing a category; it then goes to a default category you pick. A plugin (such as the new AI Classify) may choose the category first.
- Topic lists that load while scrolling. Admin → Settings → Content → Topic list paging: keep page numbers, or load the next page as readers reach the end of the list. The page numbers stay under the list.
- Widgets: a plugin switched off in a list position can always be switched back on (a stale switch could hide a sidebar card with no way back).
- AI requests check certificates against the system store on Windows servers without a CA bundle, and leave room for reasoning models.
sha256 5627cdcfc9981d0e80ea7dcf641e11567e512126e0622833e35a31e7768cb0e8
FlatBB 0.1.95
FlatBB 0.1.95
Editor
- Tabs above the toolbar switch the way you look at your post: Write and Preview, plus Visual when the Visual Editor plugin is on (Write then reads Markdown).
- Preview shows the rendered post on its own; fullscreen sits at the end of the tab row.
- The toolbar keeps only the formatting buttons and wraps onto a second row in a narrow composer, so no button is cut off any more.
Email address
- Settings → Email is a page of its own: your address and whether it is verified. The profile form no longer carries it.
- Changing the address asks for your current password and, when the site verifies addresses, a code sent to the new one. Nothing changes until both check out.
- Your previous address is told about the change and gets a link that, for 7 days, puts it back and signs the account out on every device, so a change you did not make can be undone from your own inbox.
- A code is never sent to an address another account already uses.
Layout
- On wide screens the right column follows the page the way X does: it scrolls until its last card shows, then stays, and scrolling back up brings its top back (Admin → Settings → General, "Right column stays in view").
- Phones get an even 12px side margin on every page (it was 4px).
- On phones the top bar stays at the top again, slides away while you scroll down and comes back as soon as you scroll up.
- On phones New Topic is a soft round + first among the header buttons, instead of a button floating over the list; the theme and language switches moved into the account menu (or the top of the menu drawer for visitors).
For plugin and theme authors
- New list region
composer.modesfor editor modes; new eventuser.email_changed; CSS token--page-xfor the side margin.user.before_saveno longer carriesemail. - Templates changed:
editor.php,settings.php,user_menu.php,layout.php. A theme that overrides one of them should compare it with the new file (php flatbb theme:check <id>). - Details in
docs/WHATS-NEW.md.
Plugins released with it
- Bottom Bar 1.0.0 (new): a tab bar at the bottom of the screen on phones, New Topic raised in the middle and four links you edit under Admin → Menus.
- Visual Editor 1.1.0 (a Visual tab instead of a toolbar button; needs 0.1.95), Donate 1.1.0 (PayPal by payment link, account email or checkout that records each gift; one admin page for supporters, settings and QR codes), User Card 1.0.2 (only on topic lists and topic pages, or everywhere by setting), Announcements 1.0.3 (follows the new side margin on phones).
Upgrade
Admin → Updates → Upgrade to 0.1.95, or download flatbb-0.1.95.zip below and replace the core files (your data/, uploads/ and plugins are kept). Update the Visual Editor to 1.1.0 right after.
FlatBB 0.1.94
FlatBB 0.1.94
Menus and widgets
- Admin → Appearance → Menus: the top navigation, the left menu, the category bar above the lists (the first row on a phone), the account menu and the footer links, edited in one place. Any item, built in or added by a plugin, can be hidden, dragged into place, renamed, relinked, given an icon or opened in a new tab, and you add links of your own.
- Layout is now Widgets, grouped by where things sit on the page (every page, header, left column, topic lists, right column, topic page, profile, footer). The full list of positions stays under "All positions (advanced)". Old links to Admin → Layout land there.
- The left menu takes groups (Community, Tools) and folds long lists under More.
- The tag cloud is a card of the right column now, placed or hidden under Widgets.
Icons
- One icon field for the whole site: search, about 170 built-in icons (100 new ones from Lucide), an emoji, or your own upload. Uploaded icons form one library that every icon field offers.
- Uploaded SVG files are rebuilt from an allowlist: scripts, styles, event attributes and outside links never survive.
Member card, profile and New Topic
- The sidebar member card is tighter and shows your shortcuts (messages, drafts, bookmarks…) under your numbers; the topic page's author card uses the same design.
- A new profile layout: a head card across the page, then the lists beside a column of sections (level, badges and what plugins add).
- On wide screens New Topic lives in the member card; on phones it floats in the lower corner of the topic lists. In a category it opens the composer on that category.
- Check in from the account menu. The sidebar check-in and Donate buttons are softer, so New Topic stays the one solid button.
- The Messages envelope left the header: Messages sits in the account menu, and a new message still rings the bell.
For plugin and theme authors
- New shared regions
member.labels,member.stats,member.actionsandmember.sections: one hook reaches the sidebar card, the author card, the account menu and the profile. - New hooks for bigger plugins:
user.can(change one member's permission),upload.before_save,upload.after_saveandupload.url(refuse, follow or move uploads),markdown.excerpt(keep hidden content out of search, descriptions, notifications and feeds) androuter.routes(serve a core page such as/; Admin → Plugins lists what plugins took over). user_level($user)reads a member's level from whichever plugin keeps levels;icon_picker(),icon_from_post()and a plugin setting typeicon;menus.knownto make a plugin's own list editable under Menus.- The plugin guide has a new section on where each kind of entry goes, and
plugin:checkwarns when a plugin puts more than one link in the left menu. - Templates changed:
profile.php,card_user.php,card_author.php,sidebar_left.php,user_menu.php; newmember_card.phpandcard_tags.php. A theme that overrides one of them should compare it with the new file (php flatbb theme:check <id>). - The size rule for core files is 60 KB per PHP file.
Fixes
- Form fields left out of a form no longer turn into required ones (
required => falseprintedrequired="").
Plugins released with it
- Growth 1.0.0 (new): check-in with streaks, levels, leaderboards and a getting-started list on one page, with a progress view of every way to earn points. It replaces Daily Check-in, Tasks, Leaderboard and Levels & Titles, and copies their data when installed.
- Daily Check-in 2.2.1, Tasks 1.0.4, Leaderboard 2.0.4 and Levels & Titles 1.2.0 are marked retired in favour of Growth; they keep working until you switch.
- Badges 1.2.0 (a tab of the Growth pages), Verified Badges 1.2.0 (takes over custom titles), Topic Access 1.0.3, Invitations 1.1.0, Messages 1.3.0, Donations 1.0.1.
Upgrade
Admin → Updates → Upgrade to 0.1.94, or download flatbb-0.1.94.zip below and replace the core files (your data/, uploads/ and plugins are kept).
FlatBB 0.1.93
FlatBB 0.1.93
Fixes
- Settings → Preferences are saved again. Saving the page wrote the copy of your account read at the start of the request back over the answers just given, so the theme, the notification choices and the points switch jumped back. Thanks to Arruba for the report: https://www.flatbb.com/t/user-preferences-114
- The two notification checkboxes work. "Notify me when someone replies to my topics" and "…mentions me" now decide whether the notification is created.
- On a phone, the pin or lock icon of a topic sits in front of the title instead of on a line of its own.
Russian
- A Russian language pack ships with the release, contributed by Arruba: https://www.flatbb.com/t/russian-language-113 Switch in Settings → Preferences, or set the site language in Admin → Settings.
Profile page
- One centred card at every width: avatar, name and labels, bio, details, buttons, numbers, then badges and anything plugins add, with the tabs and lists underneath. The site menu sits beside it again.
- On a phone the same card is tighter: a smaller avatar, the buttons side by side and three numbers to a row.
- Thanks to Pourdaryaei and Arruba for the feedback: https://www.flatbb.com/t/the-old-profile-design-or-the-new-one-112
- The Newest members card shows the online dot and the verified badge on its avatars.
Developer docs
- One place for everything a plugin author needs: https://www.flatbb.com/dev/plugins — the AI quick start, what changed for plugin authors, publishing, and the reference (specification, hooks, core API, themes, database, architecture).
- https://www.flatbb.com/dev/plugins.md is still the single file to hand an AI assistant, and every page answers as Markdown at its own address plus
.md.
For plugin and theme authors
lang_set()takes the preferences the caller has just saved as an optional second argument.- New
notify_wanted($user_id, $kind), used bynotify(). app/views/profile.phpchanged: a theme that overrides it should be compared with the new file (php flatbb theme:check <id>).
Upgrade
Admin → Updates → Upgrade to 0.1.93, or download flatbb-0.1.93.zip below and replace the core files (your data/, uploads/ and plugins are kept).
sha256 9302162e59d71fd6aa354688d1626441202a7307ad77a792653b10b2b08a1a3c
FlatBB 0.1.92
FlatBB 0.1.92
Topic page
- The title has a line of its own and wraps when it is long. Under it, one bar shows the category, replies and views on the left and the topic buttons (Bookmark, Label, Share, Feature, Manage) as icons on the right, with their names as tooltips.
- Page 2 and later show the same title and bar above the replies, instead of a row of mismatched buttons.
- On phones the bar stays on one line.
Profile page
- A new layout: a profile card on the left (avatar, name, labels, bio, buttons, details, numbers, badges) and the topics and replies on the right. The site menu and the right sidebar step aside on wide screens; phones keep the menu in the drawer.
- The level shows as a number tile with a progress bar. A member's own topic list no longer repeats their avatar and name on every row.
- On someone else's profile, Message is the first button.
Account menu
- Your avatar, name, group and level at the top, a strip with points, topics and replies, then the menu in groups. Unread messages show as a count.
Points page
- A balance card with this month's earnings and spending and your level progress.
- Ways to earn as tiles: check-in, tasks to claim, your leaderboard rank, invites.
- The history is grouped by day, with an icon for each line and the amounts lined up on the right.
Admin
- Switching a plugin on or off, and other buttons that reload the same admin page, keep you where you were instead of jumping to the top. The confirmation shows as a small toast.
For plugin and theme authors
- New hook
user.avatar_after: a mark over the avatar's lower corner. - New regions:
post.name,user.profile.labels,header.user_menu.labels,header.user_menu.stats,points.summary; new filterpoints.icon. user.profile.statsitems can carryprogress(0..1);header.user_menuitems takegroupandcount;points.actionsitems taketitle,subanddone.- Themes that override
post.php,topic.php,profile.phportopic_rows.phpshould be compared with the new templates (php flatbb theme:check <id>).
Plugins updated in the marketplace
Verified Badges 1.1.0 (badge on the avatar), Levels & Titles 1.1.0, Daily Check-in 2.2.0 (a redesigned page), Private Messages 1.2.1, Share 1.2.1, Status Labels 1.0.1, Featured Topics 1.0.1, Badges 1.0.1, Tasks 1.0.3, Leaderboard 2.0.2, Invitations 1.0.2. Verified Badges 1.1.0 needs FlatBB 0.1.92.
Upgrade
Admin → Updates → Upgrade to 0.1.92, or download flatbb-0.1.92.zip below and replace the core files (your data/, uploads/ and plugins are kept).
sha256 c2b050ef24700c0e42d68c4965fa3efe26fa7470f01b63befa7c00b5f71af541