#SourceMaps
jsmap by @zerodaywo1f (⭐️ 48)

Fetch Javascript sourcemaps, bounty hunter style

#go
November 5, 2026 at 10:45 PM
Even after you delete .map files, shipped JS can still name a map URL on the last line (sometimes a full CDN path). Open that comment and curl -sI the exact path.

abbilabs.xyz/tips/js-stil...

#sourcemaps #javascript #vite #nextjs #webdev #AppSec #infosec #devtools
Abbi Labs — security monitoring for AI-built apps
Abbi Labs scans your Lovable, Bolt, v0, Cursor or Replit app from the outside for leaked keys, open Supabase tables and exposed files, weekly and on every deploy.
abbilabs.xyz
November 8, 2026 at 9:05 PM
Oh nice. Does any tooling include this in sourcemaps yet?
October 29, 2026 at 8:03 PM
ECMAScript excitement 😉

Simon Zünd shipped the @tc39.es TG4 Stage 3 “Scopes” proposal in Chrome 158 🎉

TC39-TG4 is a dedicated Task Group that works on Sourcemaps.

Scopes provide extra debug information in the Sourcemap to recover accurate call stacks and variables when debugging 👍
Congrats to Simon Zünd at @developer.chrome.com for enabling the source maps Scopes proposal by default in Chrome 158!

It will greatly simplify debugging when working with transformed code. My two favorite features are re-constructing call stacks and variables as they were in the original code.
October 29, 2026 at 6:24 PM
It turned a tedious cleanup chore into a pragmatic, automated process that just works for every single branch. #glitchreplay #errortracking #sessionreplay #bugmonitoring #sourcemaps #devops 2/2
October 28, 2026 at 9:20 PM
Get your original source code back without the pipeline headache. #glitchreplay #errortracking #sentryalternative #bugmonitoring #cicd #sourcemaps 2/2
October 27, 2026 at 6:40 PM
All of my posts still publish full sourcemaps if you want to see the source, alternately I've updated github.com/samwho/visua... if you prefer that.
GitHub - samwho/visualisations: Code behind my visualisation blog posts
Code behind my visualisation blog posts. Contribute to samwho/visualisations development by creating an account on GitHub.
github.com
October 26, 2026 at 3:14 PM
This creates a 'stale map' that points to the wrong lines of code. Always use the 'enforce: pre' requirement to ensure maps are processed before the code is transformed. #glitchreplay #errortracking #bugmonitoring #sourcemaps #webpack #frontenddevelopment 2/2
October 27, 2026 at 8:46 PM
Usually, it's not a broken upload, but an invisible metadata mismatch between the runtime event and the server artifact. #glitchreplay #errortracking #bugmonitoring #sourcemaps #debugging #frontenddevelopment 2/2
October 23, 2026 at 6:24 PM
Nitro v2.13.5 maintenance release is out 🚀

27 fixes for Vercel, Cloudflare, Bun, Node and Deno, faster dev error sourcemaps, and Node 24 support for more presets.

More backports for the Nitro v2 line will be coming in the next minor, v2.14.
October 19, 2026 at 3:32 AM
One patch covering Vercel, Cloudflare, Bun, Node and Deno means five runtimes to keep green on every backport, so faster sourcemaps on dev errors is probably the change people notice first.
October 20, 2026 at 12:08 AM
I was trying to find some code I saw a while back, instead found this gem in the sourcemaps 😆
October 18, 2026 at 8:00 AM
Sourcemapped now uses maplint to lint your sourcemaps!

github.com/jkup/sourcem...
GitHub - jkup/sourcemapped
Contribute to jkup/sourcemapped development by creating an account on GitHub.
github.com
October 13, 2026 at 10:21 PM
couple of updates to maplint so it can now be used programmatically to validate sourcemaps!

thanks to @jonkuperman.com
maplint - npmx
A tiny linter for validating source maps.
npmx.dev
October 13, 2026 at 10:01 AM
This ensures that even if a token is leaked, the attacker cannot modify your project settings or access sensitive event data. #glitchreplay #errortracking #bugmonitoring #cicd #devsecops #sourcemaps 2/2
October 7, 2026 at 9:25 PM
If you use a "pentest" tool and tell a company that their *frontend* has a security vulnerability because sourcemaps are present, you are wasting everyone's time.
October 5, 2026 at 5:59 PM
Backend Error Capture API: Lightweight Next.js Routes Without Sourcemaps or Replay
Short answer: choose the smallest exception-capture path that can reconstruct one failed financial agent run across every model call, tool call, retry, and outward notification. A lightweight capture API is enough only when it preserves that causal chain, records latency and cost inputs consistently, and fails without delaying the route. If it cannot, the operationally simpler choice is the fuller tracker, even when sourcemaps and replay are deliberately out of scope. This decision is about incident evidence, not feature count. For a Next.js backend route driving an AI agent loop, a stack trace alone cannot explain whether a timeout happened before a payment-risk tool returned, after a model retry, or while an OTP notification was queued. Those boundaries change both the customer response and the accounting. That distinction matters. ## What must survive a failed agent run? Treat the capture contract as an architecture invariant. Every exception event needs a stable run identifier, route and operation names, the failing step, attempt number, duration, exception class, and a cost input such as token counts. It also needs a deployment identifier and an outcome. Never attach raw prompts, OTPs, account numbers, authorization headers, or unrestricted response bodies. Compliance starts at the event boundary. Three failure boundaries matter. The business operation may fail. The capture call may fail. The route may be cancelled while either is in flight. The first must remain visible, the second must not replace the first, and the third must not produce a falsely successful event. Keep cardinality bounded. Prometheus instrumentation guidance explicitly warns against labels with unbounded sets and recommends labels over procedural metric-name generation. The same discipline belongs in exception metadata: `route=agent_run` is useful; a customer ID as a metric label is not. Store high-cardinality correlation data in the event record, subject to retention and access controls, rather than in metric dimensions. One detail is easy to miss: notification delivery is a separate outcome. An exception that prevents an OTP from being queued should carry a notification stage, but delivery status must come from the delivery system. Conflating `queued` with `delivered` creates a clean dashboard and a bad incident timeline. Consider a run with three ordered steps. The first model call records duration and usage, a risk tool then rejects its request, and the loop retries with a narrower request before queuing an OTP. An isolated exception from the first tool attempt does not reveal whether the retry ran, whether another model call added latency and usage, or whether the notification entered its queue. A useful record links each attempt to one run while keeping the outcomes separate. It also distinguishes recorded usage from an inferred monetary total; rates and billing rules can change outside the route. During reconstruction, the engineer should be able to prove that the financial decision preceded the notification, not infer that order from neighboring timestamps. This is the concrete trade-off: a smaller capture API reduces the integration surface, but only by moving correlation, redaction, retention, and alert policy into systems the team already owns. Choose that burden only because those systems are already dependable, not because the ingestion call looks short. ## Should Next.js backend routes use a lightweight error capture API? The options differ less by ingestion syntax than by how much reconstruction work the team accepts. This table is the decision record, not a ranking. Option | Good fit | Incident boundary | Main trade-off ---|---|---|--- Lightweight capture API | A small backend surface with an existing log, metric, and trace correlation model | The team owns normalization, deduplication, retention, access control, and alert routing | Low integration surface, more operational policy in application code Full exception tracker | Several services or teams need shared grouping, triage, release context, and alert workflow | The tracker owns more of the investigation path | More capability to configure and govern Structured logs plus metrics | Exceptions are already reconstructed reliably from a central log pipeline | Correlation and grouping remain pipeline responsibilities | Fewer event paths, weaker ergonomics if stack and retry grouping are ad hoc No sourcemaps narrows the question: server-side source context must come from deployed build metadata and captured stack frames. No replay removes a browser investigation aid that is usually irrelevant to a route-only incident. Neither constraint removes the need for redaction, grouping, rate control, or durable correlation. A useful acceptance test is concrete: given only retained telemetry, can an on-call engineer order all attempts for one run, identify the first failing dependency, calculate observed model latency from recorded durations, and reconcile the recorded usage inputs? If the answer depends on searching by customer email or guessing which retry produced the charge, the design fails. ## How does the critical path stay honest? Capture once at the route boundary, but emit step records inside the loop. Normalize errors before transport, bound every field, and make the transport deadline shorter than the route's remaining budget. The following Python sketch shows the contract; the adapter behind `emit_event` can target an event endpoint, a queue, or the existing telemetry pipeline. from dataclasses import asdict, dataclass from time import monotonic from typing import Callable from uuid import uuid4 @dataclass(frozen=True) class ExceptionEvent: run_id: str operation: str step: str attempt: int duration_ms: int error_type: str deployment: str outcome: str def run_step( operation: str, step: str, attempt: int, deployment: str, action: Callable[[], object], emit_event: Callable[[dict], None], run_id: str | None = None, ) -> object: correlation_id = run_id or str(uuid4()) started = monotonic() try: return action() except Exception as error: event = ExceptionEvent( run_id=correlation_id, operation=operation, step=step, attempt=attempt, duration_ms=round((monotonic() - started) * 1000), error_type=type(error).__name__, deployment=deployment, outcome="failed", ) try: emit_event(asdict(event)) except Exception: pass # Preserve the original business exception. raise The deliberately absent fields matter as much as the present ones. There is no prompt text, bearer token, phone number, free-form exception message, or tool response. Add allowlisted diagnostic fields only after deciding who may read them and how long they remain available. The swallowed transport error is also intentional, but silence must not become invisibility. The capture adapter should maintain a bounded counter for accepted, rejected, timed-out, and dropped events. A backend route must not turn a telemetry outage into a second customer-facing failure. Keep the original failure. ## Operate the evidence, not the dashboard Deploy the schema before switching alert paths. During the overlap, compare counts by bounded dimensions such as operation, outcome, and exception class; do not expect byte-for-byte equality because grouping and retries can differ. Sample successful steps if volume requires it, but preserve failed runs and the steps needed to interpret them under a documented policy. Then rehearse three cases: a model timeout followed by a successful retry, a tool failure after usage has been recorded, and a notification queue rejection after the financial decision is complete. The reconstructed timeline should show which effects happened and which did not. Sharp edges appear here. Latency and cost are measurements, not labels. Record monotonic durations around each operation and retain the usage quantities returned by the component that performed the work. Aggregate them later. Do not put run IDs, exception messages, or account identifiers into metric labels; unbounded cardinality makes the measurement system itself harder to operate. For browser performance, Core Web Vitals uses percentile-based field measurement, including a 75th-percentile assessment. That does not define a backend-agent service objective, but it is a useful reminder that one average hides tail behavior. Choose backend latency percentiles and thresholds from the route's own user and risk requirements, then document them. ## Why reject direct logging as the default? Plain structured logging is valid when a mature pipeline already provides durable ingestion, access controls, correlation, grouping, and alerts. In that environment, another capture channel can duplicate evidence and complicate deletion policy. It is rejected as the default here because those capabilities cannot be assumed. A log line that says `agent failed` may be cheap to emit, yet expensive to investigate when retries interleave and notification effects live elsewhere. The deciding test stays narrow: preserve a redacted, ordered, deployment-aware incident record without extending the customer request's failure surface. Pick whichever capture depth passes that test with the least policy your application team must invent and maintain. ## References * https://prometheus.io/docs/practices/instrumentation/ * https://web.dev/articles/vitals
dev.to
October 1, 2026 at 3:58 PM
A mismatch is worse than omitting it entirely. #glitchreplay #errortracking #sourcemaps #iosdev #debugging #bugmonitoring 3/3
September 30, 2026 at 5:16 PM
September 29, 2026 at 5:20 PM
September 28, 2026 at 10:10 PM
Setting sourcemap: 'hidden' in your Vite config removes the comment link from your bundle, but the .map files still physically exist in your dist folder. If you deploy that folder straight to a CDN, anyone who guesses the filename can download your full source — TypeScript, comments, and all. 1/3
September 29, 2026 at 5:20 PM
You end up with an unresolved trace exactly when you need the stack trace most to fix a production outage. #glitchreplay #errortracking #sessionreplay #sourcemaps #observability #debugging 2/2
September 21, 2026 at 10:05 PM
Bundling NEXT_PUBLIC variables into client code exposes them to anyone inspecting the network tab or sourcemaps.

We built a free check for exactly this: https://keydrift.dev/scan?utm_source=bluesky&utm_campaign=developer-education&utm_medium=social
September 19, 2026 at 12:21 PM
which to be clear: datamining is awesome and you should do it if you'd like, the thing's got full sourcemaps for a reason
September 18, 2026 at 7:42 AM
You'd need to deploy your sourcemaps. But I think it's a great idea
September 8, 2026 at 10:36 AM