heal.dev: How Does It Automatically Catch the Runtime Bugs That Code Review Misses?

heal.dev fills code review's blind spot for runtime defects through sandbox execution and defect reproduction.
The article introduces heal.dev, a new tool on Product Hunt that targets the blind spot of traditional code review—which can only perform static diff analysis—for defects that surface only at runtime, such as failed external service calls, performance regressions, and runtime security vulnerabilities. heal.dev's workflow has three steps: automatically learning how an app starts and its dependencies, building an isolated sandbox with external services replaced by stubs, and actively triggering and reproducing each defect before reporting to reduce false positives from AI tools. The article positions it as a complementary layer to static code review rather than a replacement, suited to microservice, performance-sensitive, and runtime-security-focused teams, while noting that as an early-stage product, its tech stack compatibility, sandbox fidelity, and reproduction coverage remain to be verified.
The Blind Spot of Code Review: Runtime Defects
Code review is an indispensable part of software development, but it focuses primarily on static analysis of code changes (diffs). For defects that only surface when the application is running—such as failed calls to external services, performance regressions, and runtime security vulnerabilities—traditional review is often powerless. heal.dev, a new tool ranked #6 on Product Hunt, targets exactly this pain point.
heal.dev's positioning is clear: code review finds problems in the diff, while heal finds failures that only appear when the application is running. It learns how to run your application, builds a production-like sandbox (with external services replaced by stubs), and then actively hunts for bugs, performance regressions, and runtime vulnerabilities that users might encounter. Most importantly, it reproduces every defect before reporting it, ensuring you get real, fixable bugs rather than a pile of AI-generated guesses.

How It Works: From Learning to Launch to Sandbox Reproduction
heal.dev's core workflow can be broken down into three steps:
1. Learning How to Run Your Application
The tool first automatically analyzes your codebase to understand how the application starts, its dependencies, and its runtime configuration. This step requires no manual writing of complex test scripts—heal tries to "learn" how to run your project on its own.
2. Building a Production-Like Sandbox
Once it has mastered how to run the app, heal creates an isolated sandbox environment in which external services (such as databases and third-party APIs) are simulated as stubs. This ensures test repeatability without affecting the real environment. The sandbox is designed to behave as close to production as possible.
3. Defect Reproduction and Reporting
This is the key differentiator between heal and other AI code analysis tools. It actively performs various operations in the sandbox to trigger potential defects, and it verifies each one through reproduction before reporting. Only problems confirmed to be reproducible are included in the report, avoiding the noise of "AI guessing."
Runtime Defect refers to problems that only surface in a real execution environment. Typical types include crashes caused by timeouts or malformed data returned by external dependencies, races and deadlocks under concurrent conditions, memory leaks and unreleased resources, and performance degradation that appears only under specific configurations or data volumes. What these defects have in common is that they are very hard to infer from statically reading code, because they depend on combinations of runtime state and external inputs. The value of heal.dev lies in advancing detection from "reading code" to "running code," exposing these failures that only hold under dynamic conditions through actual execution.
Differences from Static Code Review
Traditional code review and static analysis tools (such as linters) are good at finding syntax errors, code style issues, and some pattern-based defects. But they know nothing about runtime behavior. heal.dev fills exactly this gap:
- Dynamic execution: heal finds problems while running, rather than merely analyzing code text.
- Real reproduction: every reported issue is reproduced, reducing false positives.
- Coverage of runtime vulnerabilities: including security issues that only surface under specific external service responses or concurrent conditions.
For teams pursuing high-quality delivery, heal can be seen as a complementary layer to code review, not a replacement.
Static Analysis and Dynamic Analysis are two complementary approaches to defect detection. Static analysis examines code text without executing the program; representative tools include linters, type checkers, and SAST security scanners. It excels at finding pattern-based issues such as syntax errors, unused variables, and dangerous function calls—fast, but unable to perceive runtime state. Dynamic analysis observes behavior by actually executing the program, and it can catch issues such as null pointer dereferences, resource races, and performance bottlenecks, at the cost of requiring a runnable environment and having coverage affected by inputs. heal.dev falls into the dynamic analysis category, and its "reproduce before reporting" mechanism is precisely meant to offset the noise caused by false positives and uncertainty in dynamic analysis.
Use Cases and Potential Limitations
heal.dev is especially suited to the following scenarios:
- Applications in microservice architectures that depend on many external services, where the stub mechanism can isolate unstable factors.
- Projects sensitive to performance regressions, where heal can catch performance degradation in the sandbox.
- Teams that want to discover runtime security vulnerabilities early.
However, based on the Product Hunt page information, heal.dev is still an early-stage product (ranked #6, 105 votes, 22 comments). Whether it can accurately learn how to start various complex tech stacks, how faithful the sandbox is, and how broad the reproduction coverage is—all of these need to be verified through actual use. In addition, for frontend or mobile applications, building a runtime sandbox may be more challenging.
Conclusion
heal.dev proposes a valuable direction: advancing defect detection from static analysis to dynamic runtime verification. By automatically learning how to run, building a sandbox, and enforcing reproduction, it attempts to solve the common problem of excessive false positives in AI code review tools. For development teams troubled by runtime bugs, this is worth watching. But as a new product, its actual effectiveness and scope of applicability remain to be tested by the market.

Background Notes
Stub is a simplified implementation used in test or sandbox environments to replace real external dependencies. Compared with real services, a stub can preset return values, simulate timeouts or error responses, and behave in a fully repeatable way. In heal.dev's sandbox, external services such as databases and third-party APIs are replaced by stubs, which brings three benefits: first, tests do not pollute real data or incur costs; second, specific external conditions can be reproduced reliably (such as an endpoint returning 500); third, defect reproduction becomes deterministic, avoiding untrustworthy reports caused by fluctuations in external services. The higher the fidelity of the stubs, the closer the sandbox behavior is to production, and the more reliable the detection results.
Related articles

How ChatGPT and AI Agents Actually Work: A No-Math Breakdown of the Core Mechanics
A no-math breakdown of how ChatGPT and AI Agents actually work: from tokenization, neural network weights, and attention to word-by-word generation and the Agent tool loop. Includes three practical principles for using AI at work to help you understand why models make mistakes, why long conversations fail, and why Agents need strict authorization.

ChatGPT vs. AI Agent: One Word Apart, Worlds Apart
What's the difference between ChatGPT and an AI Agent? Using a Jaipur travel-planning case, we explain why ChatGPT only gives answers while AI Agents take action, and the three capabilities: task decomposition, tool calling, and the execution loop.

The Essence of AI Agents: Model, Tools, and Loop
AI Agents consist of three core parts: a decision model, callable tools, and an execution loop. This article breaks down the basic structure and discusses how to define permission boundaries and stop conditions to avoid losing control.