Skip to content

TeamCO

TeamCO is the IrregularChat community’s team coordination platform at team.irregulars.io. It provides real-time operational management — check-ins, task boards, schedules, announcements, and a common operating picture — for military teams, emergency response, business operations, and community groups.

Built entirely on Cloudflare Workers with no traditional server infrastructure.

Visit team.irregulars.io and sign in with your IrregularChat SSO account (the same credentials used for TAK, Field Notes, and other community services).

A workspace is a team or organization unit (e.g., “Bragg CTO”, “Alpha Team”). You can:

  • Create a new workspace and select a template during setup
  • Join an existing workspace via an invite link from an admin

Once inside a workspace, navigate to the Ops tab and check in at your current location. Your presence is visible in real-time to all workspace members on the Common Operating Picture.

FeatureDescription
Check-in / Check-outReal-time presence tracking at named locations within a workspace
Common Operating Picture (COP)Live dashboard showing who is where — kiosk mode for wall displays
Tasks & BoardsKanban-style task management with drag-and-drop columns
ScheduleGantt-style timeline for one-off events, day/week/month/quarter/year zoom
Battle RhythmRecurring weekly calendar defining the team’s predictable operational tempo
Announcements & AlertsInfo/alert/SITREP posts broadcast to the workspace
BlockersTrack impediments blocking team progress, with resolution workflow
RFIsRequest For Information threads with answer tracking
DirectoryTeam member profiles and contact information
Quick ReferencePersistent reference cards (door codes, WiFi, sensitive resources with audit-logged reveal)
PollsQuick team votes with anonymous or attributed results
Real-time ChatE2E encrypted messaging, bridged to TAK
NotificationsPush and in-app alerts for mentions, check-in changes, and announcements

When creating a workspace you choose a template. Templates apply vocabulary labels and default feature sets — everything remains editable after creation.

Full feature set with military vocabulary. Suitable for military detachments, tactical operations centers, and defense teams.

  • Vocabulary: SITREP, RFI, Blocker, Check In/Out, Visitor Log, Clearances
  • All features enabled
  • Default locations pre-seeded with gate and door access elements
  • Default board lists: To Do / In Progress / Done

ICS-aligned vocabulary for flood/fire response, CERT, and search and rescue teams.

  • Vocabulary: Dispatch, Status Update, On Scene/Off Scene, Incident, Request, Roster, Equipment
  • Features disabled: SSN fields, clearances, polls
  • Default locations: Staging Area, Forward Operating Base
  • Default board lists: Incoming / Active / Resolved

Standard business vocabulary for offices, shops, and project teams.

  • Vocabulary: Announcement, Urgent, Clock In/Out, Issue, Question, Staff, Supplies
  • Features disabled: clearances, visitor log, SSN
  • Default locations: Office, Warehouse
  • Default board lists: Backlog / In Progress / Done

Simplified vocabulary and reduced feature set for household coordination.

  • Vocabulary: Note, Reminder, Home/Away, Problem, Question, Members, Supplies
  • Features disabled: clearances, SSN, visitor log, polls, inventory
  • Default locations: Home
  • Default board lists: To Do / Doing / Done
team.irregulars.io (CF Worker)
├── Hono v4 framework (TypeScript, SSR HTML)
├── D1 database (25+ tables, SQLite)
├── KV (sessions, page cache)
├── Durable Objects (WorkspaceRoom — real-time WebSocket per workspace)
├── R2 (chat archive)
├── Queue (notification dispatch)
└── OIDC auth (Authentik SSO at sso.irregularchat.com)
ServicePurpose
WorkersWeb portal, API routing, auth
D1All persistent data (users, workspaces, checkins, tasks, schedule)
KVSessions, page cache
Durable ObjectsReal-time WebSocket broadcast per workspace
R2Chat message archive
QueuesAsync notification delivery

One Durable Object per workspace handles all real-time events (check-in, task moves, announcements, RFI answers) so every open tab reacts without multiple WebSocket connections.

TeamCO is tightly coupled with the TAK Server. Both platforms share Authentik SSO — the same login works on both.

When a marker is created in TAK, the system enqueues it via Cloudflare Queue and the consumer calls the TeamCO Bot API to create an announcement in the linked workspace:

  • Friendly markers (a-f-*) create TeamCO info announcements
  • Hostile markers (a-h-*) create TeamCO alert announcements

TeamCO check-ins and location data can be forwarded to the TAK ingest API, causing them to appear as position markers on the TAK map. Blockers, RFIs, and announcements can also be pushed into TAK as CoT events.

TAK Worker → tak-events Queue → TeamCO Bot API (/api/bot/announce)
TeamCO Worker → TAK Ingest API (/api/ingest) → CoT broadcast

See the TAK Server page for connection details and CoT type codes.

The Signal bot supports !teamco commands for workspace interaction without opening a browser:

  • Create a workspace check-in from Signal
  • Post a quick announcement to a linked workspace
  • Receive TeamCO notifications via Signal DM when tagged or assigned

Signal notification delivery is routed through the TeamCO Queue consumer and the Signal bot’s notification API.

The Battle Rhythm feature defines the recurring weekly heartbeat of a team’s operations — standing briefs, PT, reports, shift changes, and maintenance windows.

Battle rhythm is separate from the one-off schedule. Items repeat automatically every week without re-creation.

CategoryColorExamples
ptGreenMorning PT, physical fitness
briefPurpleMorning brief, OPORD
reportAmberSITREP, status roll-up
meetingBlueSync, huddle, stand-up
shift_changeCyanWatch handoff, EOD
maintenanceSlateVehicle checks, equipment maintenance
adminGrayLeave processing, admin day

12 pre-built battle rhythm templates are included. Select and deselect individual items before loading — templates are suggestions, not locks.

Template GroupTemplates
Military echelonsSquad, Platoon, Company, Battalion, Brigade, Division
BusinessStartup, Corporate, Operations Center
EmergencyFire Station, EOC, Hospital Shift
  • Drag items to reorder within a time slot
  • Toggle visibility: unit-wide, team-only, or admin-only
  • Suspend items temporarily without deletion (is_active = 0)
  • Filter by day of week or team

The Schedule is a Gantt-style timeline for one-off events at specific datetimes.

FeatureDetail
Zoom levelsDay, week, month, quarter, year
Row groupingBy team, with color coding
InteractionDrag to create, move, or resize events
Event typesTraining, operations, maintenance, admin, social, other
VisibilityAll-team or team-scoped

Battle rhythm blocks appear as a background layer so schedulers can see occupied recurring time at a glance when placing new events.

TeamCO exposes a REST API for bot integrations and automation. Full documentation is in apps/teamco/docs/API.md.

Terminal window
# Check in at a location
curl -X POST https://team.irregulars.io/api/workspaces/SLUG/checkin \
-H "Cookie: teamco_session=..." \
-H "Content-Type: application/json" \
-d '{"location_id":"<location-uuid>"}'
# Post an announcement (bot API key)
curl -X POST https://team.irregulars.io/api/bot/announce \
-H "Authorization: Bearer <BOT_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"workspace_id":"<uuid>","type":"info","title":"Rally Point Set","body":"..."}'
# List current check-ins
curl https://team.irregulars.io/api/workspaces/SLUG/checkins/active \
-H "Cookie: teamco_session=..."
ControlImplementation
AuthenticationOIDC PKCE via Authentik SSO
Guest accessInvite-link scoped to one workspace, limited permissions
Sensitive resourcesReveal is audit-logged with timestamp and user
ChatE2E encrypted at rest
Workspace isolationAll queries scoped by workspace_id; cross-workspace access is not possible
CSRFToken-per-session on all mutating requests
Rate limitingApplied at Worker level on all API endpoints
SecretsWorker secrets via wrangler secret put; never in wrangler.toml