A focused workspace companion for Mattermost: standups, tasks, leave, reminders, and team reports in one place.
- Table of contents
- What Campfire is
- Who it is for
- Core features
- Screens and workflows
- Language and regional support
- Installation
- Configuration overview
- Permissions and roles
- Reports
- Architecture
- Build from source
- Release artifacts
- Data and privacy
- Status
Campfire is a Mattermost plugin for teams that want a lightweight, self-hosted way to manage daily work rituals directly inside Mattermost.
It brings together:
- π daily and weekly standups
- β task capture from standup answers
- β±οΈ time logging
- π΄ leave requests and availability review
- π DM and channel reminders
- π daily, weekly, time, missing, blocker, and CSV reports
- π§© workspace-level configuration
- ποΈ working calendars, workspace timezones, and off-days
- π English, Persian, and Arabic UI support with RTL-aware layouts
- π Persian calendar display beside Gregorian dates
Campfire is designed for teams that want the structure of a lightweight operations dashboard without moving work discussion out of Mattermost.
Campfire is useful for:
- engineering teams running async standups
- remote or hybrid teams
- operations teams that need simple leave visibility
- team leads who need daily missing/blocker reports
- organizations using Mattermost as their primary internal workspace
- Persian-speaking, Arabic-speaking, English-speaking, or mixed-language teams
- teams that need RTL-aware UI while keeping Mattermost channel discussion unchanged
- teams that use non-Western working weeks, such as Saturday to Wednesday or Saturday to Thursday
A personal workspace for each user.
Users can:
- submit standups
- answer custom daily or weekly questions
- create tasks from standup answers
- review their active tasks
- log time against tasks
- request leave
- edit or delete eligible leave requests
- request changes for approved leave that is already in progress
- review their leave history
A lead/admin workspace for reviewing team activity.
Team reviewers can:
- see who submitted standups
- see who is missing
- see who is on approved leave
- review availability windows
- approve or reject leave requests
- inspect runtime decisions around standups, reminders, working days, and off-days
- review leave approval queues in a compact, operational view
Campfire can generate and preview multiple report types:
- daily report
- weekly summary
- missing standups
- blockers-first review
- time report
- CSV export
- saved report filters
- global workspace reports
- global time reports across workspaces
- global leave reports across workspaces
Reports are designed for Mattermost channels, so the output is readable as Markdown and useful for team review.
Campfire supports reminder rules for standup schedules.
A schedule can have:
- an opening time
- a closing/report posting time
- up to three reminder times
- DM reminders
- channel reminders
- optional mentions for missing users
Only users who have not submitted and are not on approved leave should be reminded.
Weekly reminders and weekly report automation run on the workspace's last working day, based on that workspace's working calendar and timezone.
Admins can configure standup templates and questions.
Supported question behavior includes:
- long text
- dropdown/select
- boolean yes/no
- multiple options
- required questions
- report visibility
- private answers
- task creation from answers
Templates can be daily or weekly and can be attached to schedules.
Campfire includes a lightweight leave workflow:
- users request leave
- users can directly edit or delete pending leave requests
- users can directly edit or delete approved leave requests before the leave starts
- users request a change when approved leave is already in progress
- admins, leads, and approvers can edit or delete leave requests regardless of the requester-side condition
- approvers review requests and approve or reject them
- approved leave is reflected in availability screens
- missing-standup logic skips approved leave users
- approved leave announcements can be posted to a configured channel
- hourly leave includes start and end times in forms, approval views, and notifications
Admins can define the workspace rhythm.
Campfire supports:
- Monday to Friday teams
- Saturday to Wednesday teams
- Saturday to Thursday teams
- custom working-day patterns
- workspace-level timezone settings
- workspace off-days
- global off-days
These settings affect reminders, standup availability, leave timing, and weekly report timing.
Campfire supports language and direction settings across the webapp and generated messages.
Supported languages include:
- English
- Persian
- Arabic
The UI supports:
- LTR layouts for English
- RTL layouts for Persian and Arabic
- localized labels and page copy
- bidi-safe rendering for mixed Persian, Arabic, and English text
- workspace-generated message language settings
- Persian calendar labels next to canonical Gregorian dates
- timezone selection independent of UI language
Campfire is organized around four primary areas:
| Area | Purpose |
|---|---|
| My Day | Personal standup, tasks, time, and leave |
| Team Review | Team submissions, availability, approvals, and runtime state |
| Reports | Markdown previews, CSV exports, saved filters, and report posting |
| Settings | Roles, calendar, forms, reminders, report rules, audit log, and off-days |
The UI is built as a focused full-screen workspace inside Mattermost, with dark styling, compact navigation, reusable form controls, and channel-aware bootstrap behavior.
When Campfire opens from a Mattermost channel, it loads the workspace context for that channel instead of reusing stale state from a previously opened channel.
Campfire includes first-class support for Persian/Arabic-heavy workflows:
- English, Persian, and Arabic UI catalogs
- Persian calendar display beside Gregorian dates
- workspace timezone editing from Settings
- generated message language settings for workspace notifications
- Vazirmatn font support inside Campfire UI controls
- bidi-safe rendering for mixed Persian, Arabic, and English text
- RTL-aware navigation, form controls, selects, date pickers, and time pickers
- localized weekday cards with native labels and English references
- Persian-friendly standup questions, labels, leave reasons, notes, and user-entered answers
This support is scoped to the Campfire UI and Campfire-generated messages. It does not modify normal Mattermost channel messages outside the plugin.
- Go to the latest GitHub Release.
- Download the Campfire plugin
.tar.gzbundle. - In Mattermost, open System Console β Plugin Management.
- Upload the plugin bundle.
- Enable the plugin.
- Open the Campfire workspace from the plugin entry point.
- Configure roles, working days, timezone, forms, schedules, reminders, leave notifications, and reports.
Campfire is intended for self-hosted Mattermost deployments where plugin uploads are enabled.
After installation, configure Campfire from Settings.
Recommended setup order:
-
Overview Confirm workspace identity, channel context, timezone, and generated message language.
-
Roles & Access Assign explicit Campfire roles such as Lead, Approver, Viewer, Member, or Admin.
-
Working Calendar Select active working days and add workspace off-days.
-
Standup Forms Create or edit daily/weekly templates and questions.
-
Schedules Attach templates to daily or weekly schedules and set open/close times.
-
Reminders Configure DM/channel reminders before the standup closes.
-
Leave Notifications Configure approved-leave announcement channels, direct-message recipients, and notification language.
-
Report Rules Choose sorting, report language, blocker behavior, and posting rules.
-
Global Off-days Add organization-wide holidays or no-standup dates.
Campfire uses workspace-specific roles.
Typical roles:
| Role | Description |
|---|---|
| Member | Submit standups, manage personal tasks/time/leave |
| Lead | Review submissions, missing users, availability, and team state |
| Approver | Approve or reject leave requests and manage leave corrections |
| Viewer | View reports and dashboards without changing settings |
| Admin | Configure workspace rules, schedules, forms, access, and leave |
Campfire can also inherit access from Mattermost roles depending on backend settings, such as channel admins or system admins. The current UI displays inherited access behavior; changing those inherited rules requires backend/settings support.
Admins and privileged reviewers can manage leave requests directly when normal users would need to request a change.
Campfire reports are generated as Mattermost-friendly Markdown.
Supported report workflows include:
- daily standup preview
- weekly summary preview
- blockers-first review
- missing standups
- time totals by person/project/task/day/week
- CSV export
- saved report views
- global time reports across workspaces
- global leave reports across workspaces
Reports can be manually reviewed before posting, which helps avoid noisy or incorrect channel output.
Weekly report automation follows the workspace working calendar and runs on the workspace's last working day.
Campfire is a standard Mattermost plugin with a Go server and React webapp.
campfire/
βββ plugin.json # Mattermost plugin manifest
βββ server/ # Go plugin backend
βββ webapp/ # React + TypeScript frontend
βββ assets/ # Plugin assets and logo
βββ Makefile # Build, check, and bundle commands
βββ .github/workflows/ # CI and release automation
The backend is written in Go and handles:
- Mattermost plugin lifecycle
- HTTP API routes
- database access and migrations
- workspace configuration
- workspace timezone and generated-message language settings
- standup submission storage
- task/time/leave logic
- leave approval, deletion, and change-request rules
- scheduled reminders
- working-calendar runtime decisions
- report generation
- audit logging
The webapp is built with React and TypeScript.
The UI uses shared Campfire components for:
- inputs
- selects
- date pickers
- time pickers
- channel/user pickers
- question cards
- report panels
- layout sections
- title cards and data cards
- bidi-safe text rendering
The UI is intentionally component-driven so behavior, typography, RTL handling, and styling stay consistent across pages.
For local validation:
make bundle-checkFor a production plugin bundle:
make bundleThe final Mattermost plugin bundle is written to:
dist/
GitHub Releases provide installable Campfire plugin bundles.
The release bundle includes:
plugin.json- server binaries
- webapp build output
- assets
- migrations embedded in the server package
The release workflow is tag-based and publishes the generated .tar.gz bundle as a GitHub Release asset.
Campfire is self-hosted inside Mattermost.
It stores operational workspace data such as:
- standup answers
- generated tasks
- time entries
- leave requests
- leave decisions and change requests
- reminder/report settings
- timezone and generated-message language settings
- role assignments
- audit entries
Campfire does not require an external SaaS service to operate.
The current focus is stability, predictable team workflows, clean Mattermost-native reporting, consistent multilingual UI, and reliable workspace-specific automation.