Colin McDonnell 💎 Zod
@colinhacks.com
💎 Creator of Zod, tRPC (v0)
🔮 OSS Fellow @ Clerk
🦆 Friendly neighborhood TypeScript nerd
🧑🏼💻 Prev @ Bun, EdgeDB, YC, MIT
🔮 OSS Fellow @ Clerk
🦆 Friendly neighborhood TypeScript nerd
🧑🏼💻 Prev @ Bun, EdgeDB, YC, MIT
Introducing Zod 4.1 and its flagship feature: codecs.
z.codec() is a new API for defining *bi-directional transformations* in Zod
z.codec() is a new API for defining *bi-directional transformations* in Zod
August 26, 2025 at 12:44 AM
Introducing Zod 4.1 and its flagship feature: codecs.
z.codec() is a new API for defining *bi-directional transformations* in Zod
z.codec() is a new API for defining *bi-directional transformations* in Zod
in the absence of an existing convention, I'm adding these three fields to Zod's package.json.
making this stuff auto-discoverable would resolve one of the biggest usability issues with today's agents/IDEs. a simple convention here will go a long way! 🤘
making this stuff auto-discoverable would resolve one of the biggest usability issues with today's agents/IDEs. a simple convention here will go a long way! 🤘
July 29, 2025 at 8:45 AM
in the absence of an existing convention, I'm adding these three fields to Zod's package.json.
making this stuff auto-discoverable would resolve one of the biggest usability issues with today's agents/IDEs. a simple convention here will go a long way! 🤘
making this stuff auto-discoverable would resolve one of the biggest usability issues with today's agents/IDEs. a simple convention here will go a long way! 🤘
folks in the Bay Area: come hang out!
lu.ma/waqmeggb
lu.ma/waqmeggb
Zod 4 Release Day Happy Hour · Luma
Zod 4 is here! This new major version of Zod has been under development for over a year, and it’s finally going stable on May 19th. Join me to eat food, drink…
lu.ma
May 17, 2025 at 4:23 AM
folks in the Bay Area: come hang out!
lu.ma/waqmeggb
lu.ma/waqmeggb
Zod 4 stable will be released this Monday, May 19th!
May 15, 2025 at 6:16 PM
Zod 4 stable will be released this Monday, May 19th!
Zod 4 is now in beta!
💎 7x faster object parsing
💎 20x reduction in tsc instantiations
💎 57% smaller core bundle size
💎 metadata via .meta()
💎 z.toJSONSchema()
💎 z.templateLiteral()
💎 z.stringbool()
💎 z.int32(), z.float32(), etc
💎 z.file()
💎 new logo 😇
💎 7x faster object parsing
💎 20x reduction in tsc instantiations
💎 57% smaller core bundle size
💎 metadata via .meta()
💎 z.toJSONSchema()
💎 z.templateLiteral()
💎 z.stringbool()
💎 z.int32(), z.float32(), etc
💎 z.file()
💎 new logo 😇
Introducing Zod 4 beta | Zod Docs
v4.zod.dev
April 10, 2025 at 3:23 PM
Zod 4 is now in beta!
💎 7x faster object parsing
💎 20x reduction in tsc instantiations
💎 57% smaller core bundle size
💎 metadata via .meta()
💎 z.toJSONSchema()
💎 z.templateLiteral()
💎 z.stringbool()
💎 z.int32(), z.float32(), etc
💎 z.file()
💎 new logo 😇
💎 7x faster object parsing
💎 20x reduction in tsc instantiations
💎 57% smaller core bundle size
💎 metadata via .meta()
💎 z.toJSONSchema()
💎 z.templateLiteral()
💎 z.stringbool()
💎 z.int32(), z.float32(), etc
💎 z.file()
💎 new logo 😇
if I may be so bold, I'd like to propose some much-needed nomenclature
February 25, 2025 at 7:48 AM
if I may be so bold, I'd like to propose some much-needed nomenclature
i'm trying out a new OSS funding experiment—a "featured" sponsor slot at the top of the Zod README
✓ features are week-to-week (~140k impressions)
✓ simple auction-based pricing (per-week or standing bids accepted)
✓ artwork subject to approval
DM/email me if your company is interested! 🤙
✓ features are week-to-week (~140k impressions)
✓ simple auction-based pricing (per-week or standing bids accepted)
✓ artwork subject to approval
DM/email me if your company is interested! 🤙
February 24, 2025 at 12:55 AM
i'm trying out a new OSS funding experiment—a "featured" sponsor slot at the top of the Zod README
✓ features are week-to-week (~140k impressions)
✓ simple auction-based pricing (per-week or standing bids accepted)
✓ artwork subject to approval
DM/email me if your company is interested! 🤙
✓ features are week-to-week (~140k impressions)
✓ simple auction-based pricing (per-week or standing bids accepted)
✓ artwork subject to approval
DM/email me if your company is interested! 🤙
who suggested this and why weren't they fired immediately
February 8, 2025 at 10:10 PM
who suggested this and why weren't they fired immediately
I want chain-of-thought for ChatGPT Voice Mode but it just mutters to itself for 30 seconds before answering my question
February 8, 2025 at 2:33 AM
I want chain-of-thought for ChatGPT Voice Mode but it just mutters to itself for 30 seconds before answering my question
star count for Standard Schema—pretty successful launch, i'd say 🤩
February 4, 2025 at 8:53 PM
star count for Standard Schema—pretty successful launch, i'd say 🤩
BIG DAY 😇
Introducing Standard Schema! It’s a specification for a standard interface to be implemented by TypeScript schema libraries. The goal is to make it easier for frameworks and tools to accept user-defined schemas, without writing separate adapters for different libraries.
standardschema.dev
Introducing Standard Schema! It’s a specification for a standard interface to be implemented by TypeScript schema libraries. The goal is to make it easier for frameworks and tools to accept user-defined schemas, without writing separate adapters for different libraries.
standardschema.dev
Standard Schema
A common interface for TypeScript validation libraries
standardschema.dev
January 27, 2025 at 4:24 PM
BIG DAY 😇
Introducing Standard Schema! It’s a specification for a standard interface to be implemented by TypeScript schema libraries. The goal is to make it easier for frameworks and tools to accept user-defined schemas, without writing separate adapters for different libraries.
standardschema.dev
Introducing Standard Schema! It’s a specification for a standard interface to be implemented by TypeScript schema libraries. The goal is to make it easier for frameworks and tools to accept user-defined schemas, without writing separate adapters for different libraries.
standardschema.dev
been building a website for the last 3 days. meticulously crafted UI. 100 lighthouse score. sent it to my non-software friend for feedback.
her response changed my life
her response changed my life
January 27, 2025 at 1:21 AM
been building a website for the last 3 days. meticulously crafted UI. 100 lighthouse score. sent it to my non-software friend for feedback.
her response changed my life
her response changed my life
what loving god would allow this
January 21, 2025 at 9:59 PM
what loving god would allow this
hello here's a list of every pokemon name that still available on npm
January 14, 2025 at 9:28 PM
hello here's a list of every pokemon name that still available on npm
yessssssssss
finally i can structure things internally however I want w/o cluttering autocomplete for end users
finally i can structure things internally however I want w/o cluttering autocomplete for end users
I had it lying on my machine since August, it's time to tie 2024's loose ends 😅 so I finally got myself to push it out and open a PR
cc @colinhacks.com @ssalbdivad.dev @effect-ts.bsky.social
github.com/microsoft/Ty...
cc @colinhacks.com @ssalbdivad.dev @effect-ts.bsky.social
github.com/microsoft/Ty...
Add support for JSDoc `@ignore` to allow for hiding properties from completions by Andarist · Pull Request #60895 · microsoft/TypeScript
closes #47613
github.com
January 2, 2025 at 10:12 PM
yessssssssss
finally i can structure things internally however I want w/o cluttering autocomplete for end users
finally i can structure things internally however I want w/o cluttering autocomplete for end users
Reposted by Colin McDonnell 💎 Zod
I had it lying on my machine since August, it's time to tie 2024's loose ends 😅 so I finally got myself to push it out and open a PR
cc @colinhacks.com @ssalbdivad.dev @effect-ts.bsky.social
github.com/microsoft/Ty...
cc @colinhacks.com @ssalbdivad.dev @effect-ts.bsky.social
github.com/microsoft/Ty...
Add support for JSDoc `@ignore` to allow for hiding properties from completions by Andarist · Pull Request #60895 · microsoft/TypeScript
closes #47613
github.com
January 1, 2025 at 12:03 PM
I had it lying on my machine since August, it's time to tie 2024's loose ends 😅 so I finally got myself to push it out and open a PR
cc @colinhacks.com @ssalbdivad.dev @effect-ts.bsky.social
github.com/microsoft/Ty...
cc @colinhacks.com @ssalbdivad.dev @effect-ts.bsky.social
github.com/microsoft/Ty...
New API proposal 👉 z.envbool()
RFC: `z.envbool()` · Issue #3906 · colinhacks/zod
Alternative name: z.stringbool() A customizable, first-party way to coerce string inputs to boolean, inspired by common environment variable conventions. z.envbool() Default behavior: Returns true ...
github.com
December 12, 2024 at 5:32 AM
New API proposal 👉 z.envbool()
Reposted by Colin McDonnell 💎 Zod
Standard Schema coming to zod. This is huge. Thanks @colinhacks.com 🚀
Implement Standard Schema spec by colinhacks · Pull Request #3850 · colinhacks/zod
Implement the Standard Schema specification.
github.com
December 11, 2024 at 9:53 AM
Standard Schema coming to zod. This is huge. Thanks @colinhacks.com 🚀
Devin implemented this PR for JWT validation in Zod
feat: Add JWT string validator by Mokshit06 · Pull Request #3893 · colinhacks/zod
This PR retroactively implements the jwt string format in Zod v3. Resolves #2946. Link to Devin run: https://preview.devin.ai/sessions/51826709fcd3457abc4be25e587c790c
Supports the following API:
z...
github.com
December 11, 2024 at 1:23 AM
Devin implemented this PR for JWT validation in Zod
A simple general purpose memoizer utility for TypeScript
- lazily computes a value when accessed
- autocaches the result
- typesafe
i use this all the time...unlike a naive getter there's no runtime overhead after the first invokation since the getter itself is overwritten with the memoized value
- lazily computes a value when accessed
- autocaches the result
- typesafe
i use this all the time...unlike a naive getter there's no runtime overhead after the first invokation since the getter itself is overwritten with the memoized value
December 6, 2024 at 10:20 AM
A simple general purpose memoizer utility for TypeScript
- lazily computes a value when accessed
- autocaches the result
- typesafe
i use this all the time...unlike a naive getter there's no runtime overhead after the first invokation since the getter itself is overwritten with the memoized value
- lazily computes a value when accessed
- autocaches the result
- typesafe
i use this all the time...unlike a naive getter there's no runtime overhead after the first invokation since the getter itself is overwritten with the memoized value
December 5, 2024 at 6:33 PM
imagining the world where JavaScript was invented in the UK and variable names can start with any letter and also £ for some bleedin' reason
December 5, 2024 at 6:05 PM
imagining the world where JavaScript was invented in the UK and variable names can start with any letter and also £ for some bleedin' reason
December 5, 2024 at 4:25 AM