Documents
Documentation
Each document has one audience and one job.
Four of these are generated from the code they describe, and pnpm verify fails when one of them is stale. A reference read by somebody who cannot see the source is worse than no reference when it is wrong.
Running a board
From a bare server to a board that has been up long enough to go wrong.
- QuickstartFrom nothing to a board people can reach, on your own server with Coolify. About half an hour, most of it waiting for a build.
- Running a boardThe operator handbook. Configuration, permissions, themes, plugins, spam, migrations, backup and restore, connection pooling, and the failures that actually happen.
- Upgrading a boardHow to take a board from one version to the next, how far you can jump, and what to do when a migration fails halfway.
- PerformancegeneratedThe p95 budgets for the hot pages, and what the last recorded run measured against a full-scale board.
- Demo modeA public board with its password printed on it, seeded with content, that deletes everything and rebuilds itself on a timer. What runs at demo.meith.dev.
Advanced deployment
The same board without the panel: the compose file, a reverse proxy you run, and what you take on for it.
Themes
The frozen v1 slot contract, and every slot a theme may fill.
Plugins
What a plugin may do, how its failures are contained, and every hook it can listen to.
The API
Every endpoint, scope and rate limit, generated from the route registry.
Migrating from MyBB
Where a Meith board behaves differently from the one you are leaving, and why.
Development
Running it on your own machine, the workspace, and the conventions this codebase holds to.
- DevelopmentRunning the board on your own machine, the workspace layout, the commands, and what to do before opening a pull request.
- ArchitectureHow it fits together: the processes, the layers, the path a request takes, and the seams everything else hangs off.
- Next.js conventionsServer components, caching, forms and errors — the decisions that would otherwise be re-litigated in every pull request.
Kept in the repository
These are working records rather than documentation, and they are only meaningful beside the plan they are written against.
- docs/README.md — The index for people reading the repository. On the site, /docs is the index.
Every page here is rendered from the Markdown in docs/ at build time. There is no second copy to fall behind, and a document is corrected by editing that file.