Developer Tools
Vercel Labs Unveils scriptc: TypeScript Compiler That Creates Tiny Native Binaries Without a JavaScript Engine
A new compiler from Vercel transforms TypeScript into lean executables with startup times orders of magnitude faster than Node and Bun, though real-world performance trade-offs are sparking debate.
InfoQ
scriptc, an experimental TypeScript compiler from Vercel Labs, compiles code directly into native binaries that run without any JavaScript engine embedded—achieving dramatic startup improvements at the cost of runtime throughput.
Released in July 2026, the Apache 2.0-licensed tool has attracted nearly 5,000 GitHub stars. It leverages TypeScript's standard compiler for parsing and type-checking, then transforms programs through a typed intermediate representation before emitting C, LLVM IR, assembly, objects, executables, or WebAssembly.
How It Works#
The compiler sorts every language construct into one of three categories: code executed as static native machine code (the default), operations that require a small embedded quickjs-ng runtime (~620KB) when the --dynamic flag is used or when dealing with any types, or code rejected outright with a compiler error and suggested rewrite.
The approach surfaces fundamental trade-offs. While scriptc achieves 1.78ms median CLI startup time compared to 21.29ms for Bun and 61.78ms for Node, frameworks like Hono that rely on flexible typing end up pushing 62% of their execution into QuickJS, cutting throughput to just 18.4k requests per second—less than a quarter of Bun's 70.5k.
Performance Reality#
A developer on Hacker News reported scriptc running about 7.5 times slower than Node on byte-array operations, even after AI-assisted optimization attempts. However, the trade-off is compelling for some use cases: the same code consumed 72 times less memory (2.5 MiB vs 181 MiB) and shipped as a single 370 KB executable with zero runtime dependencies.
Community Skepticism#
Early feedback has been mixed. Observers raised concerns about the reliance on a small interpreter for dynamic cases, with one engineer noting that since any typing is pervasive in existing codebases, many real-world projects will slip into the slower QuickJS island anyway. Coverage also generated hundreds of errors across several tested projects.
Longevity worries loom as well: Vercel's earlier zerolang project ceased development shortly after launch, prompting questions about long-term support. An attempt to compile the TypeScript compiler itself .

