MyBB is a plain PHP forum that four database engines can sit under
MyBB is a free and open source forum software.
At a glance
- What is it?
- MyBB is a free and open source forum software written in PHP with support for MySQL, MariaDB, PostgreSQL and SQLite, licensed under the LGPL v3 and organised as a flat set of page scripts. It suits communities that want a self-hosted board without a framework, and it is a codebase shaped by long-standing compatibility demands.
- Who is it for?
- Adopt MyBB if you want a self-hosted forum that a small team can run and extend, and you are prepared to work with a codebase whose structure comes from its age. Do not adopt it if you need a modern application framework, a typed codebase or a plugin ecosystem built on modern PHP tooling, because the flat script layout and the absence of a modern build pipeline are structural rather than incidental.
- Can I use it commercially?
- Yes, with conditions. LGPL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One file per page, and that is the architecture
MyBB is a free and open source forum software written in PHP with support for MySQL, MariaDB, PostgreSQL and SQLite, licensed under the GNU LGPL v3. The homepage is mybb.com, and the default branch is dev-1.9.
The repository layout describes the architecture more honestly than any documentation could. The top level is a flat set of page scripts, each handling one part of the forum: announcements.php, attachment.php, calendar.php, captcha.php, contact.php, css.php, editpost.php, forumdisplay.php, global.php, index.php, managegroup.php, member.php, memberlist.php, misc.php, modcp.php, moderation.php, newreply.php, newthread.php, online.php, portal.php, printthread.php, private.php, report.php, reputation.php, rss.php, search.php, sendthread.php, showteam.php, showthread.php, stats.php, syndication.php and task.php.
There is no routing layer. The web server maps a URL to a file, the file includes global.php to bootstrap, and the work happens in that script. The directory of PHP files at the root is the request map, and the inc/ directory holds the shared code that those scripts pull in, with admin/ for the administration panel, install/ for the installer, cache/ for generated data, jscripts/ for JavaScript, and images/ for assets.
That layout is the single most important thing to know about MyBB before you evaluate it. It is the classic PHP application structure, and it has a specific virtue: a shared host with PHP and nothing else can run it, and an operator can read one file and understand one endpoint. It also has a specific cost: there is no separation between routing, controller and view for a given page, and the templates live alongside the logic in the same file.
The bin/ directory and composer.json at the root show the modern tooling that has been layered on top of that structure, and the htaccess.txt and htaccess-nginx.txt files show that the project has thought about the web server configuration for both Apache and nginx.
Four database engines, and a query layer that has to serve all of them
The support for MySQL, MariaDB, PostgreSQL and SQLite is the feature that most distinguishes MyBB from the usual PHP forum, and it is worth understanding what it costs.
The classic PHP forum assumption is MySQL and nothing else, with the database layer written against MySQL specifics. MyBB supports four engines, which means every query in the codebase has to be written in a way that works across all of them, or the project maintains parallel paths. The topics on the repository list mysql, postgresql and sqlite alongside php and forum, which suggests the support is a maintained feature rather than a token one.
The practical benefit is that a small community can run on SQLite and move to PostgreSQL later, or a hosting provider that only offers one engine is not a blocker. The practical cost is that the SQL has to stay conservative, and that a bug in the abstraction layer shows up as a forum that misbehaves on one engine and not another.
The repository also shows a substantial static analysis and testing setup for a codebase of this style, which is what you would expect from a project that has to keep an aging procedural structure maintainable. There is phpcs.xml for coding standards, phpstan.neon with a phpstan_log directory for static analysis, psalm.xml for a second analyser, phpspec.yml, and phpunit.xml for the test suite. Having both PHPStan and Psalm configured is unusual and says something about how the project guards against regressions in a large procedural codebase.
There is a composer.json and composer.lock at the root, and a tests/ directory. A.devcontainer/ directory at the root and a.travis.yml suggest that local development and CI were set up at different times, which is common in projects of this age, and a.git-blame-ignore-revs file at the root is a sign that large mechanical reformats have happened and the history has been kept readable through them.
The extension model is plugins, themes and translations, not a package manager
MyBB is extensible, and the shape of that extensibility defines who can work on it.
The README points to Extend MyBB, a resource site, for plugins, themes, translations and other resources to customise a board. The tooling in the repository reflects that model. There is a modcp.php for the moderation control panel, where the moderation queue and other moderation tasks live, and managegroup.php for group management, which is the permission model of the forum.
The plugin model in MyBB is a hook system, with the inc/ directory containing the plugin and hook infrastructure and the .source-commit file at the root tracking which commit a modification was based on, so that a merge can be resolved when the underlying code changes. That is a workflow for a project where third-party code lives in the same tree as the core, which is the model of the era.
The theme and translation systems are separate. The jscripts/ directory and the css.php script, which serves the stylesheet, indicate that themes can override assets. The portal.php, printthread.php and syndication.php scripts show the set of output formats the forum supports, which is a reasonable list for a forum: a portal page, a printable thread view, RSS and syndication, plus the stats page and the calendar.
For a community that wants a board with a custom look, this is a workable model. For a team that wants to build a product on top of the forum, the coupling between plugins and the core version, and the fact that plugins live in the tree rather than behind a stable API, is the constraint to plan around.
Security is documented as a first-class concern
The README's section ordering puts security before contributing, and the content of that section is more than a link.
The README asks you to view SECURITY.md for information on secure usage, incident recovery and vulnerability reporting, and separately points to mybb.com/security for information on security research at MyBB. Having a dedicated research page rather than only a disclosure address is a signal about how the project handles vulnerability reports.
Incident recovery is worth pausing on, because for a long-running forum that is the operationally expensive scenario. A forum holds years of user content, and a compromise means either restoring from backup or losing the archive. The documentation treating recovery as a first-class topic rather than an afterthought is a sign of a project that has had to deal with that.
The rest of the support structure is well organised. Documentation is at docs.mybb.com with articles on usage, administration and troubleshooting, the community forums are at community.mybb.com, and there is a Discord server. The download page is separate from the repository, at mybb.com/download, and the README is explicit that it serves the latest stable, production-ready version, which is a useful distinction for a project where the repository's default branch is a development branch.
The funding model is visible too, with OpenCollective badges for contributors, backers and sponsors, and a note crediting some icons by Yusuke Kamiyamane. OpenCollective funding for a project of this age is a meaningful signal, because it means the maintenance is at least partly funded rather than resting entirely on one person's spare time.
Release naming, the 1.9 development branch, and where the work happens
The release record is worth reading carefully, because it shows how a project of this age manages its versioning.
The recent releases are mybb_1841 on 2026-09-16, mybb_1840 on 2026-05-28 and mybb_1839 on 2025-06-02. The numbers are build numbers rather than semantic versions, which is the long-standing MyBB convention, and they are not strictly sequential in time: 1839 is from June 2025, 1840 from May 2026, 1841 from September 2026.
The gap between 1839 and 1840 is nearly a year. For a project whose default branch is dev-1.9, that pattern means the stable line is maintained and released when there is a reason rather than on a schedule, and the interesting work happens on the development branch between releases.
That is a normal arrangement for mature software, and it has a practical consequence for an adopter. The version you get from mybb.com/download is the stable, production-ready one, and the repository's default branch is where the next major version is being prepared. If you are evaluating whether MyBB is actively developed, the commit activity on dev-1.9 is the signal, and the last push on 2026-10-14 says that is happening.
The contribution process is documented at CONTRIBUTING.md, which the README says covers running MyBB locally, submitting changes, workflow and best practices for working with the code repository, and the .github/ directory is where the issue and pull request templates live. The .editorconfig file is present for consistent whitespace across contributors, and the .gitattributes and .gitignore files are the usual repository hygiene.
For a team evaluating MyBB for a new community, the practical questions are whether the stable release line is receiving security fixes on a reasonable cadence, and whether the extension resources on Extend MyBB are current. The 1.9 development line is the sign that the project has a future, and the resource site is the sign of how much of the work is done by people outside the core team.
Editorial conclusion
Adopt MyBB if you want a self-hosted forum that a small team can run and extend, and you are prepared to work with a codebase whose structure comes from its age. Do not adopt it if you need a modern application framework, a typed codebase or a plugin ecosystem built on modern PHP tooling, because the flat script layout and the absence of a modern build pipeline are structural rather than incidental. Before you install, read the SECURITY.md guidance on secure usage and vulnerability reporting, and check the database support list against your host, since MySQL, MariaDB, PostgreSQL and SQLite are all supported but are not equally exercised.
Frequently asked questions
Which databases does MyBB support?
MyBB is written in PHP with support for MySQL, MariaDB, PostgreSQL and SQLite. The default branch is dev-1.9, and the download page serves the latest stable production-ready version.
How is a MyBB forum extended?
Through Extend MyBB, a resource site for plugins, themes, translations and other customisation resources. The plugin system is hook based and lives alongside the core code, with the modcp.php moderation control panel and managegroup.php handling the group permission model.
What licence is MyBB released under?
The GNU LGPL v3, with the LICENSE file in the repository as the authoritative text and the licence page at mybb.com/about/license. That is a licensing statement rather than legal advice.
How do I report a vulnerability in MyBB?
The README points to SECURITY.md for information on secure usage, incident recovery and vulnerability reporting, and separately to mybb.com/security for information on security research at MyBB.
How is MyBB versioned and how active is it?
Releases use build numbers rather than semantic versions, with recent tags mybb_1841 on 2026-09-16, mybb_1840 on 2026-05-28 and mybb_1839 on 2025-06-02. The repository is not archived and the last push was on 2026-10-14, with development on the dev-1.9 branch.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/mybb-mybb)Was this useful?