UStackUStack
Syncline icon

Syncline

Syncline is an open-source, self-hostable observability tool that connects browser session replay with OpenTelemetry distributed traces and database activity on one timeline. It helps engineering teams investigate user-facing problems by following a request from the recorded session through backend services and queries.

Syncline

Session replay connected to distributed traces

Syncline is an open-source, self-hostable observability tool that connects browser session replay with backend distributed tracing. It records a user session as a replay, links requests to W3C trace context, and displays the related network, service, and database activity on a shared timeline.

The product is designed to shorten investigations where a browser symptom must be matched to server-side work. A request can be followed from the user’s interaction through the backend span tree and into database queries, while the viewer distinguishes timing uncertainty instead of relying on a potentially misleading timestamp-only join.

Core capabilities

Synchronized session and trace view

Captures a browser session and places network requests, backend spans, and database activity beneath it on a synchronized viewer timeline.

Browser-to-backend trace linking

The browser SDK patches fetch and XHR for configured origins, attaches W3C trace context, and writes trace identifiers into the rrweb recording.

OTLP ingestion

Accepts standard OpenTelemetry data without requiring a Syncline-specific backend SDK. Existing exporters can send data directly, or a collector can fan out data alongside another tracing vendor.

Request-level investigation

Shows span attributes such as db.statement, HTTP status, service, and trace ID, and lets users click a request to focus the timeline around it.

Separated storage and processing

Uses Postgres for indexing, an S3-compatible object store for recordings, and Redis with BullMQ for queued processing. The API streams payloads to storage and workers handle validation and indexing.

Privacy-oriented capture defaults

Provides masking and constrained capture defaults, including masked inputs, stripped query values, removed URL fragments, and no captured headers or request bodies.

Practical use cases

  • Investigating slow or failed checkout flows

    Start with a user’s recorded interaction, identify the request fired at that moment, and inspect the downstream service and database spans without manually aligning separate tools.

  • Explaining user-reported performance problems

    Use the replay to understand what a user clicked, entered, or abandoned, then examine the corresponding trace to distinguish a browser, network, backend, or database cause.

  • Debugging a specific production request

    Click a request in the viewer to focus the surrounding interval and inspect its full span attributes, including HTTP status, serving service, trace ID, and database statement.

  • Sharing a reproducible incident record

    Export a session recording and share it for investigation; trace identifiers embedded in the rrweb stream allow the recording to retain its trace links rather than depending on a separate correlation table.

  • Self-hosted observability workflows

    Deploy the stack inside an organization’s infrastructure when session recordings should remain on its own Postgres, Redis, and S3-compatible storage rather than leaving the network.

Pros and Cons

Pros

  • Open source and self-hostable under the AGPL-3.0 license.
  • Links replay events to traces by trace identifier rather than relying solely on browser and server clock alignment.
  • Works with standard OpenTelemetry exporters and does not require a Syncline backend SDK.
  • Stores recordings outside the relational database and processes ingestion asynchronously through a worker queue.
  • Provides concrete capture safeguards, including default input masking and exclusion of headers and request bodies.

Cons

  • The documented deployment is self-managed and requires operating Postgres, Redis, MinIO or another S3-compatible store, and multiple Node processes.
  • Backend visibility depends on services exporting OpenTelemetry data with the trace context continuing through the request.
  • The pricing page was not available in the supplied site evidence, so commercial terms are not established.

FAQ

What does Syncline do?

Syncline combines browser session replay with backend distributed tracing and database spans. The browser SDK records the session and links requests to traces using W3C trace context, while the viewer displays the related network, backend, and database activity on one timeline.

How is Syncline installed?

The documented self-hosted setup uses Postgres, Redis, and MinIO in Docker, plus three Node processes for the API, worker, and web app. The quickstart requires Node 22 or newer and pnpm; the documentation describes the setup as taking about five minutes, mostly for pulling images.

Does Syncline require changes to the backend application?

No Syncline backend SDK is required. Existing services can export standard OpenTelemetry data to Syncline, with the quickstart describing the backend configuration as two environment variables and one CORS header. The browser SDK must be configured with the project’s public key, endpoint, and allowed trace origins.

How does Syncline handle recording access and sensitive data?

Recordings use a public project key and an origin allowlist. OpenTelemetry ingestion uses the project’s secret key, which is shown once and stored as a hash. Inputs are masked by default; query values are removed from recorded URLs, fragments are dropped, and headers and request bodies are not captured.

What happens when browser and server clocks do not match?

The browser chooses sampling for recorded sessions, so a recorded request forces sampled=1. This helps ensure that the corresponding backend spans are retained when a session is available for investigation. Span placement can still show an uncertainty band when browser and server timing disagree.

Quick Facts

Category
Developer Tool; Observability
Deployment
Self-hosted
License
AGPL-3.0
Primary workflow
Session replay correlated with OpenTelemetry traces
Core stack
Browser SDK, Node API and worker, web viewer, Postgres, Redis, and S3-compatible object storage
Source domain
syncline.co.in