feat(blog): TypeScript 7 native compiler performance post#8047
Conversation
Adds a succinct post on migrating a large TypeScript monorepo to the TypeScript 7 native (Go) compiler, cutting whole-repo type checking to roughly a third of the time. Authors: Ankur Datta, Sampo Lahtinen. Includes a simple on-brand hero/meta cover. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
WalkthroughChangesTypeScript 7 Migration Article
Estimated code review effort: 1 (Trivial) | ~5 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
…w cover - Restructure into numbers table, migration checklist, config/code diffs, sharp edges, what-didn't-improve, and a should-you-migrate decision block. - Add show-don't-tell snippets (baseUrl diff, compiler-API before/after, typed-array + Buffer fixes, heap-flag removal, install command). - Tighten the Prisma tie-in to a narrow generated-types argument. - Redesign cover in the Rust-migration style: navy + TypeScript blue, TS mark paired with the Prisma wordmark, and a before/after 74s->24s bar chart. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tighten and de-jargon the prose throughout without dropping information: punchier lead, clearer numbers caveat, simpler section transitions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdx`:
- Around line 139-149: Revise the “Nothing changed at runtime. Every fix above
was type-level.” bullet in the “What TypeScript 7 did not change” section to
qualify the claim: note that module-resolution and AST-parser changes affect
build/tooling behavior, while application runtime behavior was validated as
unchanged (for example, in Prisma).
- Around line 24-31: Make the benchmark methodology in the TypeScript
performance comparison explicit: document the exact TypeScript 5.x and 7
versions, GitHub Actions runner label, dependency/build cache and warm-state
assumptions, number of measured runs, and how the median was calculated. Update
the surrounding benchmark text and table so the reported 3x improvement is
reproducible.
- Around line 168-170: The installation command should use the repository’s pnpm
package manager instead of npm and pin the exact TypeScript trial version rather
than using typescript@latest. Update the command in the article’s installation
instructions accordingly.
- Around line 118-121: Clarify the precondition around the `rawKey as
Uint8Array<ArrayBuffer>` cast in the `crypto.subtle.importKey` example: state
that `rawKey` must be backed by a plain `ArrayBuffer`, or replace the cast with
a conversion that copies the bytes into a fresh `Uint8Array`.
- Around line 141-166: Update the “Should you migrate now?” guidance to
explicitly mention editor integrations and framework workflows that may not yet
support TypeScript 7, including Vue, Svelte, Astro, and MDX. Add this caveat to
the appropriate “Wait a bit if” or migration text, noting that CLI type-checking
can use TypeScript 7 while IDE support may still require TypeScript 6.
- Around line 35-48: Clarify in “What we had to change” that TS 6-era
configuration prerequisites are separate from the native compiler migration:
explicitly mention removing baseUrl, accounting for rootDir defaulting to the
tsconfig.json directory, and declaring required packages because types no longer
auto-loads every `@types` package. Revise the checklist wording so readers
distinguish these config changes from native-port compatibility work.
- Line 68: Update the `vite-tsconfig-paths` guidance in the blog content to use
a precise supported version floor instead of the ambiguous “v5”; specify
`v5.1.4+` if that is the minimum tested release, or name the current stable
major, while retaining the note about older versions requiring `baseUrl`.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: e799a4d7-d6c0-4cd0-b8b3-1f510259a5f0
⛔ Files ignored due to path filters (2)
apps/blog/public/typescript-7-native-compiler-faster-type-checking/imgs/hero.svgis excluded by!**/*.svgapps/blog/public/typescript-7-native-compiler-faster-type-checking/imgs/meta.pngis excluded by!**/*.png
📒 Files selected for processing (1)
apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdx
| What TypeScript 7 did **not** change matters just as much: | ||
|
|
||
| - Bundling and the production build are no faster. Those run through Vite and esbuild, and `tsc` emits nothing in our setup. | ||
| - Nothing changed at runtime. Every fix above was type-level. |
There was a problem hiding this comment.
| - Nothing changed at runtime. Every fix above was type-level. | |
| - Nothing changed at runtime, every fix above was type-level. |
|
|
||
| ## What we had to change | ||
|
|
||
| Almost none of it was application code. Here is the checklist we followed, worst surprises last. |
There was a problem hiding this comment.
Too many sentences separated with unnecessary periods, and redudnant rhetorics.
Address reviewer comments (ankur-arch + CodeRabbit): - Trim redundant wording; accept fluency suggestions in the lead, the "what it is", "what improved", and heading sections. - Make the benchmark reproducible: pin TS versions (5.8.2 -> 7.0.2), note warm cache and median-of-several-runs on GitHub Actions. - Separate TS 6-era config prerequisites (baseUrl/rootDir/types) from the native-port work so failures aren't blamed on the Go compiler. - Pin vite-tsconfig-paths floor to v5.1.4+; clarify the rawKey cast assumes a plain ArrayBuffer. - Add an editor/framework caveat (Vue, Svelte, Astro, MDX) to "wait a bit". - Use pnpm and a pinned version for the trial install. - Drop the off-topic Prisma Next tie-in; close with an honest Prisma Console note and a non-salesy pris.ly/pdp CTA. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
What this adds
A succinct Prisma blog post on migrating a large TypeScript monorepo to the TypeScript 7 native (Go) compiler, cutting whole-repo type checking to roughly a third of the time (~3x faster) with no memory tuning. Built on top of the TypeScript 7 launch.
apps/blog/content/blog/typescript-7-native-compiler-faster-type-checking/index.mdxhero.svg+meta.png(1200×630, Eclipse house style, comparison-card motif)Structure
Opens on the TS 7 release, then covers: what changed, how we migrated, where the speedup comes from, key takeaways, and a subtle Prisma ORM / Postgres / Compute callout.
Notes
🤖 Generated with Claude Code
Summary by CodeRabbit