Product Update

Real-Time Sync: See Changes Instantly Across Every Tab and Device

TRCR now syncs all data changes in real time. Start a timer on your phone, see it ticking on your laptop. A teammate creates a task — it appears on your board instantly. No refresh needed, ever.

When you're deep in work, the last thing you want is to wonder whether you're looking at stale data. Did your teammate already finish that task? Is someone else tracking time on the same project? Until today, you had to refresh the page to find out.

Not anymore. With our latest update, every change across your entire workspace — tasks, projects, time entries, invoices, clients, team members, chat — syncs instantly to every connected browser tab and device. Zero refresh, zero delay.

How It Works

TRCR has always been built on a WebSocket-first architecture. Every data request flows through a persistent connection. But until now, that connection was only used for request-response — you asked for data, you got data back. Changes made by other users or in other tabs weren't pushed to you.

We've now added a real-time event layer on top of that existing WebSocket infrastructure. When any user in your organization makes a change — whether through the web app, the API, or a future mobile app — an event is broadcast to every connected client in your organization. Your browser automatically refreshes the affected data in the background.

The technical term is “cache invalidation via domain events,” but the experience is simple: what you see is always what's true, right now.

Cross-Tab Timer Sync

One of the most requested features was seeing your running timer across browser tabs. If you start a timer from the Time Tracking page and then switch to a project view in another tab, the timer widget in the top bar now shows your active session immediately — complete with elapsed time, project name, and the stop button.

This also works across devices. Start tracking on your desktop before heading to a meeting, and when you open TRCR on your phone later, you'll see the timer still running. Stop it from either device.

Live Favicon & Tab Title

When you're tracking time, the browser tab itself becomes a status indicator. The favicon switches to a version with a green recording dot, and the tab title shows your elapsed time in real time (e.g., “01:23:45 — Client Project”). When you stop the timer, both revert to their default state.

This means you can always tell at a glance — even from your taskbar — whether you're currently tracking time and for how long.

Multi-Tab Support

A surprisingly common workflow: you keep one tab on the dashboard, another on the task board, and a third in the time tracking view. Previously, each tab maintained its own connection, and opening a second tab for the same account could cause connection conflicts.

We've rebuilt the connection layer to support unlimited concurrent tabs per user. Each tab gets its own independent WebSocket connection with its own room subscriptions. Create a project in tab A, and it appears in tab B within milliseconds.

What Syncs in Real Time

Everything. Here's the full list of entity types that now broadcast live updates:

  • Tasks — creation, updates, status changes, assignments, comments, checklists, dependencies, labels, reordering
  • Projects — creation, updates, deletion, member changes
  • Time Entries — start/stop timer, manual entries, edits, deletion
  • Clients — creation, updates, deletion
  • Invoices — creation, status changes (sent, paid), line item changes
  • Payments — recording, updates
  • Team Members — invitations, role changes, permission updates
  • Labels — creation, updates, deletion
  • Chat Channels — new channels, reactions
  • Organization Settings — name changes, configuration updates

Built for Mobile From Day One

The real-time sync protocol is transport-agnostic. The same WebSocket event format that powers browser sync will power our upcoming mobile apps. When you start a timer on your phone, your desktop browser will see it instantly — and vice versa. The sync layer doesn't care which client made the change; it broadcasts to all of them equally.

Performance & Reliability

Real-time sync adds zero overhead to your daily workflow. The events are lightweight — just an entity type and an ID. Your browser only refetches the specific data that changed, not the entire page. If the WebSocket connection drops (bad network, laptop sleep), TRCR automatically reconnects and re-subscribes to your organization's event stream.

The system is powered by our Rust backend, which handles thousands of concurrent WebSocket connections per server. Broadcasting an event to every connected member of an organization takes microseconds.

What This Means for Your Team

No more “hey, refresh your page” messages on Slack. No more accidentally starting a timer that someone else already started. No more submitting an invoice that a teammate is already editing. TRCR now keeps everyone on the same page, literally, in real time.

Real-time sync is available now for all plans, on every page in the app. There's nothing to enable — it just works.