Investigating a TypeScript caching issue that could have a *massive* impact for validators like ArkType, Zod and Valibot.
For projects that heavily rely on schema inference like tRPC, fixing this could have a bigger impact than tsgo.
Trigger Warning: O(3^N)
As of this post, ArkType 2.0 is available and fully stable🎉 (🔗⬇️)
Bring your types to runtime like never before and validate 100x faster.
All with no build step and DX that is 100% guaranteed to blow your mind🤯
Update on TypeScript's O(3^N) issue:
We have a PR🚀
If we can land this, some schema inference using Zod, Valibot, and ArkType will go from infinite depth to trivial overnight🙏
github.com/microsoft/TypeScr…
So we've established ArkType is a lot faster than Zod.
What about Yup?
If somehow you are still using it in 2025, your validation could be 3000x faster🤡
‼️Update on TypeScript's O(3^N) scaling‼️
@AndaristRake's PR has been merged!
If you are struggling with slow types and use one or more of...
✅ a schema library like Zod, Valibot or ArkType
✅ chained methods like .merge
✅ tRPC
The nightly TS build may be a huge W.
1️⃣ridiculously good DX
2️⃣better tsserver performance
3️⃣insanely fast runtime validation
4️⃣well-documented and easy to learn
5️⃣power features like generics and HKTs
6️⃣deep introspection + transformation
7️⃣serializable definitions
8️⃣human-readable errors by default
Choose 8.
Announcing @ark/json-schema, a robust JSON Schema parser for ArkType🔒
If JSON Schema is your source of truth and you want validators that are...
1⃣ crazy fast
2⃣ introspectable
3⃣ great at summarizing errors
today is your lucky day!
Ever wished you could just use your TypeScript types at runtime?
With ArkType, you finally can.
All the power of the type system, fully introspectable from native JS- the possibilities are endless🔥
ALT Declare an arktype schema called `docs.` id set to string "number," content set to string "string." docs is called as a function and returns either ArkErrors or the parsed data
As of this morning, TS Go can check our repo with zero errors— in 2.5 seconds🤯
That includes...
⚡500 cyclic types in the background of this image
⚡dozens of other inference stress tests
⚡1k+ unit tests w/ complex type assertions
Today we're thrilled to announce our effort to port the TypeScript compiler and language service to native code, gaining a 10x speed boost in build times and editor responsiveness!
devblogs.microsoft.com/types…
As TypeScript developers, we rely on our types to know our code will work.
But as our types become complex, how do we know they work?
Unfortunately, existing type testing tools are limited by static analysis- until now.
Introducing @arktype/attest🎉
github.com/arktypeio/arktype…
arkregex is a standalone, type-only package that adds types to RegExp.
if you prefer...
🔎 clarity over opacity
🔒 safety over crashing
using it should be the easiest win of your life.
announcement: arktype.io/docs/blog/arkrege…
ArkType is the only validator that can understand how your types relate to one another and optimize them automatically.
That means it can...
✍️describe itself succinctly
🤖skip redundant logic
⚡implicitly discriminate all unions
🔒fail-fast on bad types
ArkType is fast. Really fast.
But in 2025, our value as developers depends on going deeper than ever before.
What matters most is having tools you love to work with so when the time comes, you're ready to lock the f in.
With the ArkType Playground, that DX is one click away.
Why does ArkType use "strings" over .chaining()?
✅Inferred 1:1 so you hover less
✅Easily serialized
✅Concise (~30-50% shorter than Zod)
✅Typos === type errors
In 2019, five syllables changed how we think about TypeScript schemas:
Parse, don't validate.
In 2025, we're proud to introduce a new era for runtime validation:
Vibe, don't parse.
Available today in arktype@2.1.42069🚀
Why do we reduce every ArkType schema to its simplest form?
⚡optimally discriminated unions
🔒fail-fast on unsatisfiable types
✨clear descriptions and errors
If you are a TypeScript developer who...
🪄thinks typed strings are a party trick
🥸has never defined a schema using ArkType
you may be underestimating just how different it is from the half-baked PathString APIs you're used to.
The bar is native-quality DX. Full stop.
Every part of ArkType's API is designed to mirror TypeScript as closely as possible.
Learning it is less like learning a new library and more like waiting for that parallel to click😌
Do you ever use branded types?
They're great for enforcing constraints that TypeScript can't, but can sometimes feel unwieldy.
Luckily, using them with ArkType couldn't be simpler👌
Zod is a great library.
It is not realistic to be as proficient with a new validator on your first day using it, even with good docs and an intuitive API.
That doesn't mean there aren't significant benefits.
We won't be able to ship 2.2 this week.
We really wanted to, but turns out regex types come with a few edge cases.
Sorry, everyone.
We'll do all we can to ship type-level regex that is as robust as our core parser ASAP🙏
What if instead of hitting instantiation limits on cyclic types, your validator could pass them to optimized, type-safe generics?
Everything you've been told about the limitations of TypeScript is a lie- you just have to be willing to think a bit of outside the box0️⃣1️⃣📦
Most validators use chained().methods(). Why "strings"?
✅Inferred 1:1 so you hover less
✅Easily serialized
✅Concise (about half the length of equivalent Zod on average)
✅Typos === type errors
Not convinced? Try it yourself, then let us know why!
github.com/arktypeio/arktype
ALT Most ArkType definitions just look like their TypeScript equivalent- no plugins or extensions required!