A community admin in 2026 does not need a “best tools” podium. They need a short desk: the control panel they already pay for, something that pages them when HTTPS dies, a place where the next shift can read last night’s decision, a password manager that is not a shared spreadsheet, a calendar that owns permission-rebuild windows, and a way to count what the room actually did. This article is that kit as classes. It is the map of what belongs on the desk and what belongs in a later drawer.
It is not a product bake-off. Analytics products — XenForo Statistics and metrics, a GA4 Measurement ID, the Discourse admin dashboard, Plausible, Matomo — live in the next piece. Automated moderation owns registration approval, the spam cleaner, CleanTalk, Spaminator, watched words, the review queue. Graphics tools own the bench that makes the logo and the OG card. The recommended stack owns PHP, MariaDB, Redis, and whether Elasticsearch is even allowed on the box. Stay here for the overview. Open those four when you are ready to name a product.
The other thing this article is not: a second copy of community health metrics. That piece already defined new-to-first-post, reply time, answered-topic rate, DAU/MAU, lurkers, mod load, and solved. A tool that prints a bigger number is not a healthier room.
The desk, not the store
Treat every purchase as a job. If two products share a job, you have a fight, not a stack.
| Class | Job | Typical surface | Failure mode if you skip it |
|---|---|---|---|
| Daily ACP | See queues, mail, cron, and “did the board wake up” | XenForo Admin Control Panel; Discourse /admin |
You learn about spam from a member DM |
| Status / uptime | Page a human when HTTPS or the origin dies | An external checker that is not the forum itself | You find out from Twitter |
| Notes / runbook | The next shift can continue | A staff node, a wiki, a dated notebook | Every incident is a first incident |
| Password manager | Unique secrets, shared vaults, no recovered passwords | A vault the staff actually use | The founder’s reused phrase is the incident |
| Calendar | Windows for upgrades, rebuilds, events | A shared calendar with named owners | Someone saves a primary group at 20:00 |
| Stats as a class | Totals, traffic, or SQL you can name | ACP statistics, a dashboard, Data Explorer | You steer on “feels quiet” |
| Gates as a class | Stop the first-day junk | Approval, sandbox, watched words | The queue is the community |
| Graphics as a class | Files the style can actually use | SVG/PNG out of a design bench | A JPEG wordmark in the header |
| The box | PHP or Docker, a database, a cache, mail | One documented runtime | You tune Cloudflare because MySQL is swapping |
You can run a 200-member board with the first five rows and stock gates. You cannot run one with a dozen add-ons and no runbook.
Daily ACP surfaces
The first tool is the product you already licensed. XenForo and Discourse both ship a staff home. The job is the same: open it before you open the public index.
XenForo: the ACP as a morning list
XenForo’s Admin Control Panel is not a marketing dashboard. It is the place you confirm the board is still a board.
A useful 2026 morning, in order, using screens the product actually has:
- Log in as you, not as the root Admin account. Community practice on large boards is blunt: the Admin badge is a system actor. The large-forum shift already said so.
- Tools → Spam trigger log. Patterns show up here before they show up as “why is Introductions full of pharmacy links.”
- Approval queue if you hold registrations or first posts. Official docs are thin on the UI; the product still has approve / unapprove. A queue that is a page is a shift. A queue that is a career is a policy failure.
- Tools → Cron entries (and the job list if you have one). If cron is dead, yesterday’s mail, sitemap, and promotions are riding the next visitor request. Members call that “the site is randomly stuck.”
- Users filtered to non-Valid states. Official: every state that is not Valid uses the Unregistered / unconfirmed permission set. A pile of unconfirmed accounts after a quiet night is either a mail incident or a bot farm.
- Setup → Options → Email options only if step 5 looks like mail. Do not rebuild mail every morning. Do glance when confirmations stall.
XenForo also logs daily counts — registrations, messages, attachments — in the ACP statistics / logs area. Those are totals. They answer “did cron die” and “did we have a registration spike.” They do not answer “did a new person get a human reply.” That distinction is the whole point of the health-metrics panel, and the product article that follows this one.
What the ACP is not: a substitute for an uptime checker. If PHP-FPM is wedged, you will not open the ACP to notice.
Discourse: /admin as a morning list
Discourse’s admin dashboard is the equivalent surface. The beginner’s guide already walked the first-week wizard. After week one, the daily job is smaller:
- Review queue. Flags, watched-word hits, users the sandbox held. If this is empty every day, either the room is quiet or nobody with flag permission is around. TL0 cannot flag — the trust-level article is the model.
- Admin dashboard stickiness (DAU/MAU or WAU/MAU). A definition, not a target. Glance. Do not set a SaaS number as a goal.
- Admin → Email if digests or confirmations are in scope. No SMTP means no digest, no mailing-list mode, no reply-by-email. Discourse ID can still log people in. Those are different products that share a brand.
- Backups tab if you self-host and you have not confirmed a file left the box this week.
Data Explorer is not a daily surface. It is a query class. Preview it below; the analytics article owns when you actually run SQL.
What both products hide from you
Neither ACP will page you at 03:00. Neither ACP will tell you the certificate expires on Thursday. Neither ACP is a password manager. If you only open the product you sell tickets on, you will confuse “I can still log in” with “members can still arrive.”
Status and uptime as a class
Uptime is a class, not a vendor. The requirement is: something that is not the forum, on a different network, requests the public HTTPS origin on a schedule and notifies a human who is not “whoever notices Discord.”
What the checker must do:
- Hit the canonical Board URL (or Discourse hostname) over HTTPS.
- Fail if the certificate is wrong, expired, or the name does not match.
- Fail if the status is 5xx or the TCP handshake never completes.
- Notify a channel staff already read — a staff room, an SMS, an email that is not hosted on the same box.
What it must not do:
- Log in and scrape the ACP. That is a second bot account you will forget to exclude from DAU.
- “Optimize” the response. It is a GET, not a CDN.
- Live on the same VPS as the origin. When the host dies, the checker dies with it.
XenForo and Discourse official manuals indexed for this site do not ship a named uptime product. Do not invent one as core. A cheap external ping, a host-provided monitor, or a status page you already pay for are all the same class. Pick one owner. Write the URL it watches in the runbook. Test the alert by stopping nginx on staging, not by hoping.
Pair this with the security baseline and the Discourse hosting cookbook. HTTPS is not a style option. A monitor that still says “up” on http:// is lying.
A useful extra in the same class: certificate expiry. Let’s Encrypt on a Discourse official install is automatic if ports 80/443 and DNS still work. XenForo on a typical VPS is whatever you or the panel installed. Put the renewal in the calendar class below. The uptime checker is the last line, not the renewal process.
Notes and the runbook
The third class is a place the next person can read. Forums die in the gap between “I fixed it” and “I told nobody.”
A working 2026 runbook is boring on purpose:
| Page | What it holds | What it is not |
|---|---|---|
| How we log in | ACP URL, who owns the vault, 2FA recovery path | The passwords themselves |
| How we get paged | Uptime checker, who is on call this week | A hope that someone is online |
| How we restore | Last successful restore date, where the offsite copy lives | A screenshot of a cPanel backup icon |
| How we staff a shift | Queue order, who may ban, who may not | A novel |
| What we changed | Dated notes: add-on installed, site setting flipped, Cloudflare rule | Slack archaeology |
| What we will not do at peak | Permission saves, XFES reindex, Discourse rebuilds | A dare |
Where it lives is a class, not a brand:
- A staff-only XenForo node or a staff Discourse category. People already have accounts. Search works. Permissions already exist.
- A wiki or docs page you already operate. Fine if it is backed up with the rest of the company.
- A dated paper notebook for a two-person hobby board. Honest. Better than a Notion workspace nobody opens.
What we will not do here is rank note apps. If the next moderator cannot find last Tuesday’s spam phrase without asking you, the tool failed.
Community practice that belongs in the notes, because the ACP will not remember it for you:
- Do not post casually as Admin. Use a personal account without the nuclear badge.
- Registered stays primary. Administrative and Moderating are secondary. The permissions starter and the mistakes article already own the autopsy.
- Permission rebuild cost scales with groups × nodes. A save at 20:00 on a 700-node tree is an availability event. Write that sentence where the next admin will see it.
Password manager
XenForo’s own security chapter tells members to use a password manager. Staff need that sentence more than members do. Official password storage is a one-way hash unique to each user. There is no ACP “show password.” There is a lost password link and a security lock. If your staff process still involves “look it up in the shared doc,” you do not have a process.
The class requirements:
- Unique secrets for the ACP, the host panel, the registrar, the mail provider, Cloudflare (if you use it), the analytics property, the status checker.
- A shared vault for the two or three people who must recover the board at 02:00 — not a Slack paste, not a photo of a sticky note.
- 2FA seeds and backup codes in the same vault. Official XenForo 2FA methods include an authenticator app and an email link. Official emergency:
$config['enableTfa'] = falsegets you back into a locked ACP. That line is a recovery tool. It is not a reason to skip the vault. - Leavers lose access the same day. A shared “admin” login is how you cannot do that.
XenForo will never recover a password for you. Discourse will not either. The vault is the product that replaces that fantasy.
Hardware keys (the physical ones) sit in this class as a second factor, not as a replacement for the vault. Official XenForo 2.3 also has passkeys as a member login method — the 2.3 upgrade article named them. Staff 2FA is still Setup → Service providers → Two-step verification plus the group permission Require two-step verification on Moderating and Administrative. Put those two sentences in the runbook next to the vault name.
Calendar
A community calendar is not a plugin. It is a shared date store that answers: when is it legal to touch the box, and when is it a member-facing event.
Put these on it, with a named owner:
| Event | Why it is a calendar item | Typical window |
|---|---|---|
| Upgrade / rebuild | XenForo cannot downgrade; Discourse ./launcher rebuild app is minutes of downtime |
Announced, not Friday 17:00 |
| Permission or group save | U × N lock on a large XenForo tree | Off-peak, staff-only notice |
| XFES / search reindex | A job, a CPU event, a second process | After you have already isolated search as the incident |
| Attachment / WebP rebuild | Official 2.3 conversion is a job, not a 20:00 button | Maintenance window |
| Certificate renewal | If you are not on fully automatic issuance you still watch | A week before expiry |
| Backup restore drill | A backup you have never restored is a rumour | Quarterly is honest |
| Member-facing events | AMAs, launches, seasonal rituals | The events article owns the culture |
XenForo community sources we use do not ship a first-party “staff calendar” product. Discourse has events as a plugin conversation on hosted Business — that is a member feature, not this class. A Google Calendar, a Nextcloud calendar, or a staff thread with dates is the same job. The failure is “we will remember.”
The calendar is also how you stop the configuration-mistakes class of outage: someone enables guest page cache, someone else rebuilds permissions, someone else minifies JavaScript at the edge, all on a Tuesday evening, and nobody can name the variable.
Stats as a class (not the product list)
You need a way to count. You do not need five ways that disagree.
Think in classes, then open the product article:
| Class | Question | Typical 2026 surface |
|---|---|---|
| On-site totals | Did registrations, posts, attachments move? | XenForo ACP daily statistics; Discourse dashboard counts |
| Traffic | What did browsers do after they arrived? | A Measurement ID, or a first-party / privacy-first tag |
| Discovery | How did Google find you? | Search Console — not a forum screen |
| Cohorts and SQL | Who confirmed and then posted? | A spreadsheet; Discourse Data Explorer if you have it |
| Health | Did they come back, speak, get answered, drown staff? | The seven instruments |
XenForo’s job in Google Analytics is one field: paste a GA4 Measurement ID (G-…) into Setup → Options → Statistics and metrics. Search Console is not a XenForo screen. That integration is already written. Do not rebuild it here.
Discourse names Data Explorer as a read-only SQL plugin. On official hosted plans it is listed for Business and Enterprise. Self-host can enable the plugin. It is a class of tool: ask the live database a question you can defend. It is not a daily dashboard and it is not a write path.
The analytics article is where Plausible, Matomo, the Discourse dashboard, and XenForo’s own totals get compared as products. The rule you take from this overview: one source per question, labelled. If you switch from XenForo last-activity to GA4 sessions in the same month, you started a new baseline. Say so on the sheet.
Vanity numbers live in this class as a warning, not as a KPI. Total members, total posts, raw guest page views — the health article already called them cousins of the thing you actually run. A toolkit that only celebrates those numbers will buy you a ticker and call it growth.
Gates as a class (not the auto-mod catalogue)
Automation that stops first-day junk is a class. The named products are the next article.
What belongs in the class:
- XenForo: registration approval, the approval queue, spam phrases, Tools → Spam trigger log, the spam cleaner as a cleanup verb after you have the account, optional CleanTalk / Spaminator if you outgrow the log.
- Discourse: TL0 sandbox (
newuser max embedded media= 1 image is the documented default), watched words (block, censor, flag, replace — the standard admin UI actions), the review queue, the fact that diverse TL3 flags on a TL0 post can auto-silence.
What does not belong in the class: a human shift, a hiring plan, a points ladder. Those are moderating a large XenForo and building a moderation team. Software that hides a post is not a culture.
Open automated moderation software when you are ready to name CleanTalk versus the stock queue, or watched words versus “we will just hire more mods.” The overview rule: turn the sandbox on before you shop.
Graphics as a class (not the brand system)
You will need files: a mark, a share card, node or category icons, and — if you use XenForo PWA — 192×192 and 512×512 PNG squares. Official PWA setup will not enable without HTTPS, a title of 12 or fewer characters, and those two icons.
The tools that make those files — Figma-class vector benches, Photopea-class browser rasters, Affinity-class desktop suites, Canva-class template boards — are their own article. This overview only names the job: export SVG or PNG, then put the file where the forum’s style properties (or Discourse theme settings) already expect it.
This is not a branding-system essay (palette, email style, voice). This is not an extra.less process. If you catch yourself writing a hex code in a template, you have left the toolkit and entered a later customization article.
The box under the site (not the stack recipe)
The last class is the runtime. XenForo 2.3 is PHP plus MySQL/MariaDB. Discourse official production is Docker (or an official hosted plan). Those are different animals. The recommended stack is the recipe: PHP 8.x (2.3 era; current 2.3 releases recommend 8.3, developer docs also name 8.4), MariaDB or MySQL 8, Redis (official Symfony Cache provider, community Redis Cache by Xon), Elasticsearch only if you bought XFES, HTTPS, offsite backups, object storage as a volume decision, LiteSpeed + LSCache for guests on XenForo, and the Discourse-specific Cloudflare rule: disable JS minify / JS modifications.
Do not pick a host brand from this overview. We will not rank hosts in the stack article either. The class is: one documented box, one person who can restore it.
If you wanted Core Web Vitals, that is already a XenForo speed article. If you wanted architecture (PHP-FPM, InnoDB, when XFES is the next lever), that is scaling. If you wanted Discourse RAM and rebuilds, that is hosting Discourse. This toolkit only insists that someone can name the box.
A starter kit by board size
Ignore registered-user vanity. Use load and staff.
Hobby / first 90 days
You are still in first 30 days or onboarding work. The kit is:
- The stock ACP, opened daily.
- A password manager with 2FA on staff groups.
- One staff node / category that is the runbook.
- An external HTTPS ping.
- A calendar with “do not upgrade on Friday” and the first restore drill.
- Stock gates: XenForo confirmation + spam log, or Discourse TL0 left on.
- A spreadsheet with the seven health instruments, even if four cells are “sample of 20.”
Do not add Plausible and Matomo and GA4. Do not add CleanTalk the same week you turn confirmation off. Do not add Redis because a thread said so if the board is still empty.
One busy room, a few staff
Add:
- One traffic product, labelled. If you are already on XenForo, the Measurement ID is the cheap official hook — configure it properly in the GA4 article.
- One guest-cache owner if guests dominate (the stack article).
- Named auto-mod only after the spam log shows a pattern the stock queue cannot eat.
- Data Explorer on Discourse only if you are on a plan that includes it or you self-host the plugin and you have a question SQL can answer.
Keep the runbook. Promote it from “a thread” to “a page people search.”
Large tree, permission saves are a window
Now the large XenForo shift is the daily surface, not the public index. The kit adds:
- Node moderators, not a twelve-person super-mod group.
- Moderator Panel by Andrew (Protected Users) is an optional named add-on in community practice — previewed in the auto-mod article, not required.
- Redis as application cache, a dedicated page-cache context or LiteSpeed/LSCache, not both.
- XFES only when
SHOW PROCESSLISTnames search. - A restore drill you have actually performed.
Discourse at this size is still one Docker or one hosted plan plus S3 backups in a separate bucket from uploads. It is not a reason to invent Kubernetes in this toolkit.
A weekly loop that uses the kit
Monday is measurement. Thursday is maintenance. Sunday is not a surprise upgrade.
Daily (15–30 minutes).
- Uptime: green, or you are already in an incident.
- ACP /
/admin: spam log or review queue, then approvals, then mail only if confirmations look dead. - One line in the notes if you changed a setting.
Weekly (the health sheet).
- Fill the seven instruments from one labelled source each.
- Annotate: patch day, AMA, outage, holiday, spam wave, staff vacation.
- If two sources disagree, believe the smaller number until you find the bug.
Monthly.
- Restore drill or, at minimum, download one backup off-box. XenForo: database +
data/+internal_data/. Discourse: the backup file plus the knowledge ofbackup_location. - Vault review: leavers, shared items, 2FA still enrolled.
- Calendar: next upgrade window, next certificate, next event.
When something breaks.
- Status checker says down → host / TLS / origin. Not an add-on hunt.
- ACP opens, members cannot post → permissions, user state, or a guest cache serving the wrong HTML. The mistakes article is the autopsy table.
- Members can post, mail is dead → transport. XenForo 2.3 speaks Symfony Mailer under Email options. Discourse needs SMTP for digest-class mail. The stack article owns the pipes.
What not to buy
A 2026 kit dies by accumulation. These are the usual purchases that do not earn a slot:
- A second analytics tag “to compare.” You will double-count and then argue about the delta.
- A third-party “dark mode switcher” on XenForo 2.3. Style variations already exist. The dark-mode article is the switch.
- A “moderation suite” that replaces the shift. The stock queue plus a handbook beats an add-on nobody configured.
- Akismet-as-if-it-were-stock-XenForo. It is not. The auto-mod article will not invent it as core.
- Elasticsearch on shared hosting because the word “enhanced” sounded like speed. XFES needs a process typical shared hosts do not have.
- A design subscription for a logo you will export as a 40 KB PNG and then never open again. One honest SVG is the class.
- A host migration because the toolkit feels messy. Stay or migrate is a different decision.
If a vendor cannot name the job in the first table, it does not go on the desk.
Checklist
Every morning
- You are not typed in as root Admin unless you are announcing
- Uptime is green (or you are already paging)
- XenForo: spam trigger log, approval queue, non-Valid users
- Discourse: review queue, a glance at stickiness, email only if mail is in scope
- One dated note if you flipped a switch
The desk itself
- Password manager owns ACP, host, DNS, mail, analytics, status
- Staff 2FA required on admin/mod groups;
$config['enableTfa']is not left false - Runbook answers login, paging, restore, shift, “do not do this at peak”
- Calendar owns upgrades, rebuilds, permission windows, restore drills, member events
- One stats source per question, labelled; health sheet is not guest page views
- Stock gates on; named auto-mod only after a pattern
- Graphics files live where style properties expect them
- Someone can name the runtime and the last restore date
This month
- One backup downloaded off the origin
- Leavers removed from the vault and from Administrative / moderator grants
- You opened the four sibling articles only for the job you are actually buying
What this article will not do
It will not tell you Plausible is “better” than Matomo. It will not print a CleanTalk price. It will not give you an extra.less recipe. It will not rank hosts. Those sentences belong in the four siblings, and even there we will not invent prices or a podium.
It will not replace engagement or increase active users. Tools do not make people come back. They make the person who keeps the lights on able to see the queue, the outage, the secret, the window, and the number.
Takeaways
- The 2026 kit is nine classes, not a storefront: daily ACP, uptime, notes, passwords, calendar, stats, gates, graphics, the box.
- Open the product you already run before you buy a dashboard. XenForo ACP and Discourse
/adminare the morning list. - Uptime must live off the origin. The ACP cannot page you if PHP is dead.
- A runbook the next shift can search beats a cleverer add-on.
- Official XenForo cannot show you a password. A vault is not optional for staff.
- Put rebuilds, permission saves, and restore drills on a calendar with a name next to them.
- Stats are a class. Health metrics are a different class. Do not steer on total members.
- Preview, then leave: analytics products, auto-mod, graphics tools, recommended stack.
Buy the job. Write it down. Open the queue before the public index. That is a community admin toolkit in 2026.

