TypeScript 7 Beta (tsgo): What Broke in My Real Monorepo
In short
Five things broke when I pointed the TypeScript 7 beta at my production monorepo, and none of them were the compiler itself. The full type check dropped from 71 seconds to 9.2 seconds across roughly 161,000 lines of TypeScript, a 7.7x improvement that holds up to Microsoft's 10x claim once you account for my smaller project graph. Every failure came from tooling that stands next to the compiler: an editor plugin, a custom transformer, api-extractor, stale build caches, and ts-node. Here are my exact numbers, the exact failures, and whether you should switch before stable lands in a few weeks.

On this page
- What is TypeScript 7, and what exactly is tsgo?
- How fast is tsgo on my real monorepo?
- What actually broke when I switched?
- The CSS modules language-service plugin stopped loading
- My ts-patch transformer was silently skipped
- Compiler-API tools still need tsc installed
- Mixed .tsbuildinfo caches broke incremental --build
- ts-node drifted from the checker
- How do I audit my own repo before switching?
- How much money does tsgo actually save in CI?
- Should you switch now or wait for stable?
- Key takeaways
What is TypeScript 7, and what exactly is tsgo?
TypeScript 7 is the existing TypeScript compiler ported from TypeScript to Go, shipped under the working name tsgo. The Beta was announced on April 21, 2026, and as of June 2026 the stable release is expected in late June or early July 2026. It is roughly 10x faster than tsc and it checks your code identically.
The single most important fact for migration planning: tsgo was ported, not rewritten. Its type-checking logic is structurally identical to TypeScript 6.0, so it accepts the same code and produces the same diagnostics. Microsoft moved the codebase function by function rather than redesigning it, which is why the beta is unusually trustworthy for a major version.
The headline benchmark is Microsoft's own: VS Code's 1.5 million-line codebase type-checks in 7.5 seconds with tsgo versus 78 seconds with tsc, with memory usage roughly halved. The beta is already default-enabled in Visual Studio 2026 18.6 Insiders as of June 2026, which tells you how confident the team is.
Trying it takes two minutes:
npm i -D @typescript/native-preview@beta
npx tsgo -p tsconfig.json --noEmit
You run tsgo wherever you ran tsc. Same flags, same tsconfig, same error codes.
How fast is tsgo on my real monorepo?
7.7x on a cold full check. My test bench is the pnpm monorepo behind my client web development work ↗: a Next.js 16 app at about 96k lines of TS/TSX, a Node and Express API at about 38k lines built the way I structure all my API development projects ↗, and four shared packages (types, UI, config, queue client) totaling about 27k lines. It is the same repo I documented in my Next.js 16 migration guide ↗, so the numbers are comparable across posts.
I measured everything three times on the same machine and took the median:
| Measurement | tsc 6.0 | tsgo 7.0 beta | Speedup | |
Cold full check (--build, all projects) | 71s | 9.2s | 7.7x | |
| Watch mode, edit in shared types package | 4.1s | 0.6s | 6.8x | |
| Editor, project-wide diagnostics refresh | 3 to 5s | under 1s | ~5x | |
| CI type-check job, end to end | 3m 40s | 1m 5s | 3.4x | |
| Peak memory, full check | 3.1 GB | 1.4 GB | ~2.2x less | |
| What to check | Command | It is a blocker if... | ||
| tsserver plugins | grep -r '"plugins"' --include=tsconfig.json . | you rely on a language-service plugin daily | ||
| Custom transformers | grep -r "ts-patch\ | ttypescript" package.json | transformers run in your emit path | |
| Compiler-API tools | grep -E "ts-morph\ | typedoc\ | api-extractor" package.json | the tool has no TS7 support yet |
| Runtime TS execution | grep -r "ts-node" package.json .github/ | scripts depend on ts-node's checking | ||
| Diagnostics parity | run tsc --noEmit and tsgo --noEmit, diff | the error sets differ at all | ||
| Repo type | Verdict | Why | ||
| App codebase, you control the deps | Run tsgo in CI now, keep a tsc fallback gate | Checking is identical; the risk is tooling, and the fallback catches it | ||
| Library author shipping .d.ts | Wait for stable | Declaration-emit consumers and compiler-API tooling downstream of you are not ready | ||
| Plugin or transformer-dependent | Blocked; track your specific tool's TS7 issue | No language-service plugin or transformer hooks in the beta |
With stable expected weeks from now, "wait" is a short wait. My personal take: this is the second time in twelve months that a tool deleted an entire category of work from my hands. React Compiler 1.0 did it to manual memoization ↗, and tsgo just did it to the habit of treating type-checking as a CI-only ceremony. The speedup is real and it changes behavior, not just numbers.
Key takeaways
- TypeScript 7.0 Beta shipped April 21, 2026, with stable expected late June or early July 2026; it is the compiler ported to Go, not a rewrite, so it accepts the same code as 6.0.
- On my 161k-line monorepo, the full check went from 71s to 9.2s and watch mode from 4.1s to 0.6s, consistent with Microsoft's 7.5s-versus-78s VS Code benchmark.
- Nothing broke in type-checking itself. Everything that broke was adjacent tooling: tsserver plugins, transformers, compiler-API tools, mixed caches, and ts-node.
- The CI dollar savings are small (about $11 a month for me); the real win is type-checking returning to the inner loop.
- Verdict: app repos switch CI now with a tsc fallback; library authors and plugin-dependent repos wait for stable plus ecosystem support.
FAQ
Is TypeScript 7 a breaking change for existing code?
Not for the code itself. tsgo was ported function by function from the TypeScript 6.0 codebase, so its type-checking logic is structurally identical and my 161k-line repo produced zero new diagnostics. The breaking changes live in the tooling around the compiler: tsserver plugins, custom transformers, and anything built on the JavaScript compiler API.
How do I try tsgo in my project today?
Install the preview package alongside your existing TypeScript with `npm i -D @typescript/native-preview@beta`, then run `npx tsgo -p tsconfig.json --noEmit` exactly where you would run tsc. Same flags, same tsconfig. Diff its output against tsc's, add it as a non-blocking CI job for a week, then promote it to the required gate.
Why is tsgo 10x faster than tsc?
Two structural reasons: Go compiles to native code with no JavaScript startup or JIT warmup cost, and the port adds shared-memory parallelism so project graphs check across cores instead of mostly single-threaded. Memory drops roughly in half too. The algorithms are unchanged; the runtime underneath them is simply far better suited to a compiler workload.
Working on something like this?
I build web apps, AI features, and mobile products for clients. If this article matches a problem you have, tell me about it.
Start a conversationMalik Hamza Shabbir · Full-Stack & AI Engineer
I build full-stack and AI products solo: a reputation SaaS in production, RAG pipelines, and React Native apps. I write from what I ship, not from documentation summaries.
Related articles
Reliable JSON From LLMs: Structured Outputs Compared 2026
Strict structured outputs hold ~99.9% schema compliance while plain JSON mode fails 8-15% of the time. I compare OpenAI, Claude, and Gemini with one Zod schema.
GEO in 2026: Getting Cited by ChatGPT and Perplexity
GEO means writing answer-first chunks AI engines can lift: 69% of Google searches are zero-click in 2026, but ChatGPT referrals convert at 15.9%.
Leaving Vercel in 2026: The Real Self-Hosting Cost Math
Self-hosting Next.js on Hetzner with Coolify costs me $6-17/mo vs $40-150 on Vercel Pro. The real math, ops hours included, after the April 2026 breach.
