---
title: "OpsOptic: one live dashboard for every product you run"
description: "A small SDK sends events and logs from your apps to OpsOptic. Watch them live in a dashboard or the terminal, with alerts and uptime checks. Early access."
image: "https://opsoptic.com/og-image.png"
---

# One dashboard for every product you run

A small SDK in each of your apps pushes events and logs to OpsOptic. They show up as they arrive in a web dashboard and in your terminal, with alerts and uptime checks alongside.

[Talk to the founder on WhatsApp](https://wa.me/5548992091242?text=Hi!%20I%20saw%20the%20OpsOptic%20site%20and%20I%20would%20like%20to%20talk%20about%20early%20access.%20%28from%3A%20hero%29) [See how it works](https://opsoptic.com/#how)

- Early access, by conversation
- No cookies or trackers on this site

The problem

## You run several products, and each one fails on its own

Requests sit in one log, errors in an inbox, uptime in a pinger, revenue in a billing page and deploys in a CI tab. When a product misbehaves you open them one by one and line the timestamps up by hand.

OpsOptic puts those signals on one timeline per project, so a spike in errors and the deploy before it show up together.

How it works

## From an API key to a live feed in four steps

1. ### Create a project and a key
   A project is one product. Create it in the dashboard and mint an SDK key there, or run `optic key create <project>` from a terminal.
2. ### Add the middleware
   Register the adapter for Hono, Express, Next.js or Bun.serve(), or use the Python or Go port. Every request is recorded with its method, path, status and latency.
3. ### Events arrive over HTTP
   The SDK batches events and posts them to the ingest API with your key in a header. Email addresses and card numbers found in event properties are redacted before anything is stored.
4. ### Watch it live
   Open the Live feed in the dashboard, or run `optic tail <project>`. Both read the same WebSocket stream.

server.ts

```
import { opsoptic } from '@opsoptic/sdk/hono'

const middleware = opsoptic({
  apiKey: process.env.OPSOPTIC_KEY!,
})
app.use('*', middleware)

// Your own events go through the same client
middleware.client.captureError(err)
```

The client packages are not published to a registry yet, so there is no install line here. They come with early access.

What it does

## What you can see once events are flowing

Each project gets its own pages for requests, endpoints, errors, logs, uptime, users and incidents.

Live

### A live feed, not a refresh button

Requests, errors, identified users and revenue events appear in the dashboard as they arrive, over a WebSocket. The dashboard also shows how many distinct users were active in the last five minutes.

Errors

### Errors you can triage

Errors are recorded with their message and URL. Each one carries a status you set: open, investigating, resolved or ignored.

Logs

### Logs next to the events

Send log lines from the SDK logger or as OTLP/JSON. Search them, filter by level from trace to fatal, and follow them in the terminal with `optic tail`.

Uptime

### Uptime checks and status pages

Each project's URL is probed on a 60 second loop. Public status pages come with Pro, and a maintenance window silences alerts and announces itself on the page.

Alerts

### Alerts that reach someone

Rules for error-rate spikes, latency spikes, missing traffic, revenue drops, errors after a deploy and failed uptime checks. Delivery by email, Slack, webhook, Zapier, PagerDuty, SMS or push, with retries. [How alerts work](https://opsoptic.com/alerts-and-incidents/)

Revenue

### Users and revenue in the same place

Identify users, record revenue events or map Stripe webhook events, and read an MRR estimate, a forecast and cohort retention next to your error rate.

Deploys

### Deploys on the timeline

`optic deploy <project>` records a deployment with its commit. An error-rate spike soon after a deploy can fire its own alert.

Access

### Workspaces and roles

Projects live in workspaces with owner, admin and viewer roles. A workspace can restrict access to listed IP addresses, and Enterprise adds SAML single sign-on.

Terminal

## The same feed, from a shell

The `optic` CLI compiles to a standalone binary. After one authentication step, tail, query and manage projects without opening the dashboard.

- `optic status`Live stats for every project
- `optic tail checkout-api`Stream events and logs, like tail -f
- `optic errors checkout-api`Recent errors
- `optic stats checkout-api HOUR`Summary by minute, hour, day or week
- `optic deploy checkout-api`Record a deployment

[SDK and CLI details](https://opsoptic.com/sdk-and-cli/)

Who it is for

## Built for people who run more than one product

### Solo builders and small teams

Start on Free with 3 projects and 10,000 events a month. Pro lifts the project cap, adds alert rules and public status pages, and allows 5 team members.

- One workspace for every product, not one tool per product
- The terminal feed works over SSH and in scripts, with `--json` output

### Teams with stricter requirements

Enterprise has unlimited members, 365-day retention and SAML single sign-on. Workspaces can restrict access to listed IP addresses, and changes to alert rules, API keys and billing are written to an audit log.

- Workspace data exports as NDJSON
- Workspace deletion is scheduled with a 30 day window

Plans

## Three plans, set by events and features

What the product is configured with today. Not final until early access opens. [Full comparison](https://opsoptic.com/pricing/)

### Free

$0 / month

For solo builders testing the waters.

- Up to 3 projects
- 10,000 events a month included
- 7-day data retention
- 1 team member
- Live dashboard and feed, no alert rules

### Pro

$29 / month

For indie hackers and small teams.

- Unlimited projects and alert rules
- 1,000,000 events a month included
- 90-day data retention
- Up to 5 team members
- Public status pages

### Enterprise

Custom

For teams with compliance and scale needs.

- Unlimited projects, events and members
- 365-day data retention
- SAML single sign-on
- Public status pages and unlimited alert rules

Included event volume is metered for visibility. Ingestion does not stop when you pass it, so a traffic spike cannot make monitoring data disappear.

Questions

## What people ask first

**Can I use it today?**

Not yet. The app is closed to the public. Early access starts with a conversation with the founder on WhatsApp, where you say what you run and what you want to see.

**What do I install in my apps?**

A client library: an adapter for Hono, Express, Next.js or Bun.serve(), or the Python or Go port. The packages are not published to npm, PyPI or a Go module proxy yet, so they come with early access and this site shows no install command.

**What data does OpsOptic store?**

Request metadata (method, path, status, latency), error messages and stack traces, custom events, revenue events, log lines and the user identifiers you assign. Email addresses and card numbers found inside event properties are redacted before storage. The [privacy notice](https://opsoptic.com/privacy/) has the full list and the retention per plan.

**What happens if I go over the included events?**

Ingestion keeps working. Included volume is metered so you can see usage, and it does not stop or drop data when you pass it.

**Can I self-host it?**

No. OpsOptic is a hosted service only.

**Does this site track me?**

No cookies, no analytics scripts and no third-party requests. The site's host, Cloudflare, can add its own aggregate traffic beacon without cookies. Details are in the [privacy notice](https://opsoptic.com/privacy/).

## Try it on one of your products

Tell the founder what you run and what you want to see. Early access starts with a conversation on WhatsApp.

[Talk to the founder on WhatsApp](https://wa.me/5548992091242?text=Hi!%20I%20saw%20the%20OpsOptic%20site%20and%20I%20would%20like%20to%20talk%20about%20early%20access.%20%28from%3A%20final%29)

OpsOptic is a product of Mazacode LTDA, CNPJ 45.655.559/0001-98, Florian&oacute;polis/SC, Brazil.
