Oct 14, 2026 · by Kamil Myśliwiec · View source

NestJS Observe

Zero-config observability built for NestJS

NestJS Observe

Editorial analysis

The observability gap nobody warns you about until Black Friday

Every cross-border operator I know has a war story about the moment their stack quietly broke. Not the dramatic outage — the slow one. Orders landing in Shopify but never reaching the 3PL. A BullMQ queue backing up on a webhook processor while TikTok Shop retries pile on. A cron that was supposed to sync inventory to Amazon Seller Central and simply stopped, with nobody noticing for six hours. By the time a human catches it, you’ve oversold, you’ve missed SLA windows, and you’re writing apology notes in three languages.

Here’s the uncomfortable truth: most DTC and marketplace sellers run surprisingly sophisticated backend systems and monitor them like it’s 2014. We obsess over ad attribution and conversion rates while the actual revenue-critical layer — the middleware that moves orders, inventory, and money between systems — is a black box. That’s why NestJS Observe caught my attention. It’s a monitoring product aimed at a framework most sellers have never heard of, but the problem it solves is one every operator with a custom backend is quietly bleeding money over.

What NestJS Observe actually is, and why it’s not just a dev-tool story

Full disclosure on the framing: NestJS Observe is a developer observability tool, not an e-commerce platform. It was launched by Kamil Myśliwiec, the creator of NestJS itself, and it’s built specifically for applications running on that framework. If your store is pure SaaS — Shopify plus apps, no custom code — this is not your problem today.

But an increasing share of serious cross-border sellers are not pure SaaS. The moment you build a custom order-routing service, a multi-marketplace inventory sync, a returns portal, or an AI-driven pricing engine, you have a backend. And if that backend runs on NestJS — which is common among Node.js shops, agencies, and the contract dev teams many sellers hire — you’ve inherited a monitoring blind spot.

The pitch, in the maker’s own words, is that “over the years we’ve seen thousands of NestJS projects that never got as far as monitoring” because the existing tools “took too much setup for what they showed (a POST /orders and a database call, with nothing in between), or they cost too much.” That “nothing in between” is the entire ballgame for a seller. A POST /orders that takes 520ms tells you nothing about whether the guard rejected it, the interceptor mangled it, or the provider that calls your ERP timed out.

The zero-config angle is the real product

What Observe does is hook into Nest’s own lifecycle. You add @nestjs/observe — or just say yes when nest new asks — drop in an API key, and you get tracing without writing a single span. That means every request and job renders as a waterfall of your controllers, providers, guards, and pipes, with the database queries underneath. Distributed tracing spans HTTP, microservices, and GraphQL, so a request that fans out across services stays one trace. There’s a service map of how your applications call each other, and — this is the part that matters — it separates “own time” from “total time” per class and method, so you can find the actual bottleneck instead of guessing.

One of the commenters, Kareem Ben, nailed why this lands: “Nice that NestJS Observe is zero-config, so I can get real tracing on a NestJS app without wiring up half a dozen exporters first.” The maker’s reply is worth quoting because it explains the mechanism: “Because the agent hooks into Nest’s own lifecycle, your traces show your controllers, guards, interceptors and providers by class and method name, not just ‘GET /users took 520ms’. BullMQ consumers, cron jobs and microservice calls are traced the same way.”

For an operator, “traced the same way” is the whole point. Your BullMQ job that pushes tracking numbers back to eBay is exactly as important as your checkout endpoint, and most generic tools treat it as an afterthought.

How it stacks up against what you’re probably running

Let me be blunt about the comparison set, because this is where most sellers will misjudge the buy.

Against Datadog. The maker himself concedes the product “won’t replace a big Datadog setup across many languages, and it doesn’t cover the frontend.” If you’re running a polyglot stack — a Python pricing service, a Go inventory daemon, a Node API — Datadog is still the umbrella. Observe is a single-framework specialist. That’s a feature, not a bug, but it’s a hard ceiling.

Against the “good enough” default. Most sellers I audit aren’t running Datadog at all. They’re running Sentry for errors, a few CloudWatch alarms, and a Slack channel where someone pastes screenshots. The maker’s critique — tools that “cost too much” for what they show — describes this reality precisely. A Sentry error tells you something broke. It doesn’t tell you the request that broke it was already 40 seconds into a queue wait.

Against DIY OpenTelemetry. The technically confident will say “I can wire up OTel exporters myself.” True. But the maker’s framing — “no collector to run and no exporter pipeline to set up” — is the honest counter. Every hour your team spends on exporter plumbing is an hour not spent on the storefront. For a lean DTC team, that trade is real.

Where the pricing actually lands for a seller

The free tier covers up to 300k events a month with no card required, and there’s a live demo that needs no signup. Logs and alerts sit behind Pro, with SLOs and error budgets on the Scale tier. Specific prices beyond the free tier are not disclosed on the launch page, so I won’t invent them — get a quote before you commit.

The free tier is the sleeper here. 300k events a month is a lot for a mid-size seller’s order-routing service. You can plausibly run production observability on a single custom backend for zero dollars, which changes the ROI math entirely. If you’re paying for a monitoring seat you barely use, run the numbers against this.

What cross-border sellers should actually borrow from this

Strip away the framework specifics and there are three transferable lessons here, each of which applies whether or not you ever touch NestJS.

Why Amazon sellers should care more than Shopify ones

Shopify merchants live inside a walled garden. Shopify’s own admin, its app ecosystem, its Shopify Flow automations — the platform handles a lot of the plumbing and surfaces a lot of the diagnostics. If something breaks, you usually find out from the platform.

Amazon sellers are the opposite. A serious FBA brand typically runs Amazon Seller Central alongside a repricer, a PPC tool like Helium 10, an inventory planner, and increasingly a custom middleware layer gluing SP-API calls to internal systems. That middleware is where oversells, stranded inventory, and Buy Box losses are born. It is also, almost universally, the least-monitored part of the stack. The lesson from Observe’s design: instrument the glue, not just the destinations. Your SP-API sync job deserves the same trace waterfall as your checkout.

Errors with the failing source code inline is the feature to steal

Observe groups errors into defects, shows the failing source code inline, emails you when a new one appears, and lets you turn any error, trace, or job into an issue with an owner, severity, and due date. Every request is tagged with the release that served it, so you can compare releases by errors and latency and see which deploy brought a regression — and resolved issues reopen if the failure comes back.

If you’re not doing release tagging on your own backend, start this week. “Which deploy broke it” is the single most expensive question in incident response, and it’s the easiest to pre-answer. The reopen-on-recurrence behavior is the second-most-valuable detail: it prevents the classic failure mode where a bug gets marked fixed, quietly returns three weeks later, and nobody reopens the ticket.

Alerts on silence are underrated for cross-border

The alerting list includes thresholds, anomalies, log patterns, and — critically — silence: “an app that stops getting traffic, a cron that never runs.” For anyone running scheduled jobs against marketplaces, silence alerts are gold. A cron that never runs is invisible to every threshold-based alert you own, because nothing fires when nothing happens. Your Temu or SHEIN sync dying quietly at 3am is exactly this failure mode. Any monitoring you buy or build should be able to alert on the absence of expected activity, not just the presence of bad activity.

The AI-agent handoff is a preview of where ops is going

One click turns a failure into a prompt for Claude Code or Cursor, and an MCP server on the Pro tier lets the agent query telemetry directly. This is the most forward-looking piece. The practical version for a seller: your on-call engineer (or your agency) gets a failure, and instead of manually reconstructing context, the agent already has the trace. If you’re evaluating tooling for the next 18 months, “can an AI agent read this telemetry” is a legitimate checklist item now.

Where my judgment says this falls short

I like the product’s honesty — the maker volunteers the limitations, and a commenter, Alexander Laugomer, specifically praised “being clear about what it doesn’t cover (frontend, other languages).” That candor is rare and worth rewarding. But candor doesn’t erase the constraints.

It’s a single-framework bet. If your backend is NestJS, great. If your agency built it in something else, or if you’re planning to migrate, you’re buying into a narrower lane than a general-purpose APM. Framework lock-in at the observability layer is a real strategic cost, even when the tool is good.

No frontend coverage. Your checkout, your returns portal, your account pages — the surfaces your customers actually touch — are out of scope. For a DTC brand, that’s a meaningful gap. You’ll still need something else for real user monitoring and session-level frontend errors.

“Nothing is sent on the request path” is a claim worth verifying. The maker states a worker thread ships data in the background, and the SDK is MIT-licensed on GitHub while the dashboard is hosted. MIT SDK plus hosted dashboard is a reasonable split, but it means you’re trusting a hosted service with your telemetry. For sellers handling customer PII across jurisdictions, confirm where that data lives and how it’s redacted — the product says logs are “redacted by default,” which is good, but “default” implies configurability you should understand before signing off with your DPO.

The pricing cliff is undisclosed. Free up to 300k events is generous. Pro and Scale pricing is not on the page. If your event volume spikes during Q4 — and it will — you need to know the overage structure before Black Friday, not after.

Where the math breaks

Do a quick event-volume estimate before you get excited. A single order that touches your backend might generate a trace with a dozen spans, plus logs, plus metrics. Multiply by daily order volume, add your sync jobs and webhook retries, and project to peak season. If you’re a small seller doing 200 orders a day, you’ll likely live comfortably in the free tier. If you’re doing 20,000 orders a day across five marketplaces with a custom middleware layer, you’re a Scale-tier customer, and you should price that against Datadog before deciding.

What I’d watch / test next

This week, three concrete moves.

First, if you have any custom backend — NestJS or not — open your live demo equivalent and ask one question: can I see the full waterfall of a single order from webhook to fulfillment, including the queue wait? If the answer is no, that’s your gap, regardless of vendor.

Second, audit your alerting for silence. List every cron, sync, and scheduled job in your stack and confirm you’d be notified if it simply stopped. Most sellers can’t answer this. The ones who can sleep better in November.

Third, if you’re on NestJS specifically, install @nestjs/observe on a staging service this week — it’s MIT, it’s zero-config, and the free tier means the only cost is an afternoon. Watch what it surfaces. You’ll probably find a provider method eating more “own time” than you assumed, and that finding alone pays for the experiment.

The broader takeaway isn’t “buy this tool.” It’s that the revenue-critical middleware layer of cross-border commerce has been under-instrumented for years, and the sellers who fix that first will be the ones who don’t discover their broken sync from an angry customer email.

Ready to Create Your Own?

Join thousands of brands creating high-performing video ads with VEONIB. No editing skills required.

Start Creating for Free