Changelog

Everything that has shipped, newest first. Looking for what is coming instead? See the roadmap.

Collaborative document editor fixes

DocumentsFixed

Documents opened to a permanent loading skeleton and never showed their contents. The live-collaboration handshake now completes correctly.

Two faults were stopping collaborative documents from loading.

  • The editor connected to the server and reported itself online, but the opening sync message was discarded before it arrived. Because the server only replies once it receives that message, the document never finished loading and sat on its placeholder skeleton indefinitely.
  • A second fault meant no data was relayed between the browser and the server at all, even though the session appeared to open.

Both are resolved — documents now load their contents and live editing works as intended.

Images with text wrapping in documents

DocumentsAdded

Insert images by upload, URL, paste, or drag-and-drop, and float them left or right so text wraps alongside instead of only above and below.

The document and guide editors now handle images properly.

  • Insert any way you like — upload a file, paste a URL, paste an image straight from the clipboard, or drag one into the page.
  • Wrap text around them — select an image and choose block, wrap left, centre, or wrap right. Floating an image gives text room beside it rather than pushing it above and below.
  • Width control — presets from 25% through full width, plus natural size.

Headings and horizontal rules clear a float, so a rule doubles as a "stop wrapping here" control. On narrow screens floats collapse to full width, because wrapping around a 40% image is unreadable on a phone.

Mission Planning Tools

EventsAdded

Attach a structured OPORDER brief to any event, with objectives, a comms plan, order of battle, and reusable templates per operation type.

Events can now carry a full mission brief instead of a freeform description.

  • OPORDER sections — situation, mission, execution, sustainment, command & signal, and intel notes, all written in markdown.
  • Objectives — tracked individually as primary or secondary, each with its own pending / complete / failed status.
  • Comms plan — a real table of nets, frequencies, callsigns, and primary or alternate channels.
  • Order of battle — task organisation drawn from your existing unit structure, with a callsign, role, and element lead per slot. Ad-hoc elements are supported for anything outside the standing structure.
  • Briefing templates — reusable scaffolds managed in community settings. Bind a template to an event category and it is suggested automatically whenever you brief that operation type.

Authoring is gated by four new granular permissions — create, edit, and delete mission briefs, all implied by a single manage permission. Any member of the community can read a brief.

Notification bell now loads your notifications

PlatformFixed

The bell always appeared empty because it failed to load your notification history, and marking one read never saved.

The notification bell was reaching for the wrong request helper, so every call it made failed instantly and was discarded without any error being shown.

  • History never loaded — the bell appeared empty no matter how many notifications you had.
  • Read state never saved — marking a notification read cleared it on screen, but it returned unread on your next visit.

Notifications that arrived while you had the page open were unaffected and still appeared, which is why the bell looked like it was working.

Both are fixed, and these requests now report failures instead of failing silently.

Notifications for more than applications

PlatformAdded

The bell now covers your service record, events you signed up for, community announcements, and alerts for the people who review applications.

The notification bell previously only ever carried application decisions. It now covers most of what happens around you.

Your record — rank changes, awards and qualifications granted or revoked, and decisions on your leave requests.

Events — a new event scheduled in your community, plus changes, cancellations, and finalised attendance for events you signed up for. Only people who answered going or maybe are told when an event moves; if you declined, it isn't your problem.

Community — announcements posted and mission briefs published.

Staff and command — new applications, applicant replies, and leave requests awaiting a decision, delivered to the members who hold the matching permission. Reviewers previously received nothing at all, so an application could sit unseen.

Every type has its own toggle under Account → Notifications, reachable from the Settings link in the bell. Anything that reaches your whole community — new events, announcements, mission briefs — is off by default, so a busy community cannot flood you. Everything aimed specifically at you is on.

Platform staff act as System

SecurityChanged

Site administrators no longer hold elevated rights inside communities. Anything they do through the admin panel is recorded in your audit log as System.

Being platform staff no longer grants any authority inside your community.

  • In the community app, a site administrator is exactly as privileged as their membership makes them. If they hold no roles, they can do nothing. If they are not a member at all, they cannot see your community.
  • In the admin panel, staff can still act for support and moderation — but every action is attributed to System in your audit log, never to a personal account.
  • Hidden from your roster — the System actor never appears in member lists or counts.

Audit coverage also expanded well beyond roles and grants: mission briefs, announcements, community settings, documents, units, and event categories are now recorded too.

Platform staff can still see which administrator was behind a System entry, so accountability is preserved on their side without exposing individual staff identities to your community.

Discord member bulk import

DiscordAdded

Import an existing Discord server as your roster, mapping roles to ranks, awards, and qualifications.

A guided wizard reads your Discord server's members and roles, lets you map each role to a rank, award, or qualification, and imports everyone in one pass — so an established community can move across without rebuilding its roster by hand.

Discord reverse sync

DiscordAdded

Changes made in Discord flow back into the platform roster.

Role changes made in Discord can update the platform roster, keeping the two aligned when day-to-day administration happens in Discord.

Markdown editor with preview

PlatformAdded

Rich text editing with live preview for event descriptions, announcements, and forum posts.

Longer-form fields use a markdown editor that renders as you type, replacing plain textareas across events, announcements, and forums.

Discord unit role sync

DiscordAdded

Unit membership drives Discord roles automatically.

Map units to Discord roles and membership changes propagate automatically, so someone's Discord access follows their place in the order of battle.

Event series and categories

EventsAdded

Group recurring operations into a series, categorise events by type, and attach a cover image.

Events can belong to a series, carry a category with its own colour on the calendar and in Discord embeds, and display an uploaded cover image. Category management sits behind its own permission.

Sign in with Command Observer

SecurityAdded

Command Observer can act as an identity provider for your other services.

An OpenID Connect provider lets third-party tools authenticate against your Command Observer account, so community services can share one identity.

Platform documentation system

DocsAdded

Staff author public guides in a collaborative editor and publish them to the documentation site.

Platform guides are written in a collaborative rich-text editor with version history, kept as drafts until published, and served on the public documentation site.

Public service profiles

MembersAdded

Member profiles show rank history, awards, and qualifications, with certificates viewable full size.

A member's public profile presents their rank progression, awards, and qualifications. Award certificates open in a lightbox at full size.

Squad XML roster export

IntegrationsAdded

Export your roster as a Squad XML feed for in-game unit tags.

Your community exposes a Squad XML endpoint that game clients can consume for unit tagging, using each member's community username where one is set. A setup guide is included in the documentation.

Sign-in on custom domains

SecurityChanged

Authentication moved to a dedicated service so signing in works consistently on custom domains.

Sign-in is handled by a dedicated authentication service that issues short-lived exchange tokens, so logging in on a custom domain behaves the same as on the main site. Logout is scoped correctly per host, and live connections authenticate properly across domains.

Reorder awards, ranks, and qualifications

AwardsAdded

Control the order awards, ranks, and qualifications appear in, rather than accepting creation order.

Precedence matters, so awards, ranks, and qualifications can now be arranged explicitly and display in that order everywhere they appear.

Live updates across the app

PlatformAdded

Rosters, events, and documents update in place as other people make changes.

A live connection pushes changes to everyone viewing the same data, so you see edits as they happen rather than after a refresh.

Custom domains and subdomains

CommunitiesAdded

Serve your community from your own domain, or from a command.observer subdomain.

Point your own domain at your community and it is served there with its own certificate, or use a subdomain instead. Sign-in works across the boundary in both cases.

Member usernames and default permissions

MembersAdded

Members can carry a community-specific username, and communities can grant baseline permissions to everyone.

A member can be known by a community callsign distinct from their account name. Communities can also define a default permission set applied to every member without assigning a role.

Attendance thresholds

EventsAdded

Set a minimum attendance expectation and have members who fall below it flagged automatically.

Define an attendance requirement for your community and the platform flags members who drop under it, with active leave of absence taken into account.

Audit logging

SecurityAdded

A per-community record of who changed what and when.

Sensitive actions — role assignments, rank and award grants, member changes, event and application decisions — are written to an audit log visible to community leadership.

Document images, watermarks, and print preview

DocumentsAdded

Upload images into documents, apply a watermark, and preview how a document paginates before printing.

Documents gained image uploads, an optional watermark for controlled material, and a preview mode that splits content into pages so you can see the printed result.

Leave of absence

MembersAdded

Members declare leave, which exempts them from attendance expectations for the duration.

Leave of absence records cover a date range and can be scoped to a unit. Active leave exempts a member from attendance calculations and threshold warnings, and is visible on their profile.

Platform admin panel

PlatformAdded

A separate console for platform staff covering users, communities, tickets, and service health.

Platform operations moved into a dedicated admin console — user and community oversight, support tickets, and service health checks, kept apart from the community-facing app.

Event attendance

EventsAdded

Track who attended, correct RSVPs as command, review attendance statistics, and finalise the record.

Attendance is recorded per event with per-member status. Command can override any RSVP, review aggregate statistics across events, and finalise an event so its record is locked.

Mobile navigation

PlatformAdded

A responsive sidebar and header so the platform is usable on a phone.

Navigation collapses into a toggleable sidebar on small screens, with layouts reflowing so community management works away from a desktop.

Support desk

PlatformAdded

Raise support tickets and correspond with platform staff.

A support application for submitting tickets and exchanging messages with platform staff, with ticket status tracked through to resolution.

Virtual positions in ORBAT

ORBATAdded

Place billets on the ORBAT that are not tied to a standing unit.

Positions can exist independently of the unit tree, so attachments, liaison billets, and command slots can be represented without distorting your permanent structure.

Community announcements

CommunitiesAdded

Publish announcements to your community and optionally mirror them into Discord.

Write announcements for your community, with an option to post them to a Discord channel at the same time. Edits and deletions propagate to the Discord message.

Campaigns and after-action reports

EventsAdded

Group operations into campaigns and capture what happened afterwards, both officially and from the members who were there.

Campaigns tie related operations together across phases. After an event, command can publish an official after-action report while members submit their own accounts alongside it.

Discord event integration

DiscordAdded

Events post to Discord as rich embeds with working RSVP buttons that write straight back to your attendance list.

Scheduled events publish to a Discord channel as an embed. Members RSVP with buttons directly in Discord and the response lands on the event in the platform. Channel and role selection is handled in settings.

TeamSpeak integration

IntegrationsAdded

Connect a TeamSpeak server and keep server groups in sync with ranks, awards, and qualifications.

Link your TeamSpeak server, browse its channels and groups, and map them to platform ranks, awards, and qualifications so voice permissions follow the roster automatically. Includes a connection test with clear diagnostics.

Award builder

AwardsAdded

Create award and qualification types with custom imagery, then grant them to members.

Define your own medals, ribbons, and qualifications with bespoke artwork, and grant them to members from their service record.

Documentation

DocsAdded

Written guides covering setup, administration, events, and community features.

A documentation section covering how to configure and run a community on the platform, with navigation organised by topic.

Certificate builder

AwardsAdded

Design award certificates visually and save them as reusable presets.

Lay out certificates with your own imagery and typography, then save the design as a preset so every future award of that type is issued identically.

Community invites and join flow

MembersAdded

Generate invite links and let prospective members apply through a structured join flow.

Invite links can be created, shared, and revoked. New arrivals move through an application flow rather than appearing unannounced on your roster.

In-app notifications

PlatformAdded

A notification centre that updates live, so you see applications and activity without refreshing.

Notifications arrive over a live connection and appear in the header bell. Applications, approvals, and community activity surface as they happen.

Public community pages and page builder

CommunitiesAdded

Give your community a public face, composed from blocks you arrange yourself, and get listed in the community browser.

Each community can publish a public page built from arrangeable content blocks. Public communities also appear in a browsable directory for prospective members.

Visual ORBAT canvas

ORBATAdded

Lay out your order of battle on a drag-and-drop canvas rendered natively for speed.

Build your order of battle visually instead of through forms. Units are positioned on a canvas, connected to their parent formations, and rendered through a purpose-built engine so large structures stay responsive.

Communities, ranks, and units

PlatformAdded

The foundation — create a community, define your rank structure, organise members into units, and categorise everything.

The core roster model landed: communities with owners and members, a configurable rank structure, a hierarchical unit tree, and categories for organising events and records.