Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Sean Maxwell’s jet-id generates 28-character Crockford base32 IDs and, in his MacBook M4 Pro benchmark using Node 24, recorded a median of 83,503,288 operations per second versus 52,415,897 for nanoid(). That is the basis for the “~60% faster” claim—not an independently replicated result or a guarantee for other machines, runtimes, or workloads.
What jet-id does
jet-id is a JavaScript and TypeScript package for generating random IDs, with optional timestamped IDs, validation, and timestamp-parsing APIs. Maxwell describes it as having zero runtime dependencies. Install it with:
As an Amazon Associate I earn from qualifying purchases.
npm install jet-id
The ordinary ID is 28 characters: 25 random Crockford base32 characters plus three separators. Maxwell says that format contains 125 random bits. His comparison lists nanoid’s default as 21 characters with 126 random bits, so jet-id’s ordinary output is longer but has one fewer random bit by those stated specifications. The article also describes the package as 6.4 kB packed; that is Maxwell’s package-size claim, not a fresh measurement of the current registry package. Source: Sean Maxwell’s jet-id article
What the benchmark measured—and what it did not
Maxwell reports these throughput medians from a MacBook M4 Pro running Node 24. He says he warmed up for 500 ms, then took the median of seven samples, each lasting at least 500 ms. Source: benchmark and method described by Maxwell
#1 Best Overall
| Function | Reported median | Output noted in the article |
|---|---|---|
jetId() |
83,503,288 operations per second | 28 characters |
nanoid() |
52,415,897 operations per second | 21 characters by default |
Those figures make jet-id about 59% higher in this specific throughput comparison. Maxwell characterizes it as “roughly 60% faster than nanoid’s defaults, even though jet-id’s IDs are longer (28 characters vs. 21).” The result is his local, author-run measurement. The available evidence does not establish independent replication across machines or runtimes, nor does it show that the same difference holds under application workloads, different output formats, or memory pressure.
Maxwell also presents a separate nanoid comparison using Crockford characters and matching segmented output. That changes the comparison from nanoid’s default configuration; the article notes nanoid is not designed for dash-separated output. For a decision, compare like with like: alphabet, separators, ID length, runtime, and whether timestamping is involved—not only the headline operations-per-second figure. Source: Maxwell’s benchmark discussion
Why Maxwell says jet-id is fast
The implementation explanation centers on doing work in batches rather than converting every ID independently. Maxwell says it generates batches of 256 IDs in a shared string and uses one crypto.getRandomValues call to obtain enough random bytes for 1,024 IDs. A lookup table with 1,024 entries maps 10 random bits to two Crockford characters. The generator writes each 28-character ID as seven 32-bit words, including separators, converts the generated chunk to a string once, then slices individual IDs from it. Source: implementation explanation by Maxwell
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
These are the author’s stated reasons for the measured speed, not a separately verified attribution of the benchmark result. Batching and chunk-level conversion can reduce per-ID work, but whether that benefits a particular application depends on how it generates and uses IDs.
Rank #3
Timestamped IDs: time-sortable, not strictly ordered
Timestamped jet-id values put time in the first nine characters and leave 80 random bits, according to Maxwell. They are time-sortable at millisecond granularity, but IDs generated during the same millisecond have no defined order among themselves. They therefore should not be treated as a strict sequence number or as a way to determine which of two same-millisecond events happened first. Source: timestamp format and ordering caveat
Timestamp encoding also changes the randomness trade-off: the ordinary form is stated to contain 125 random bits, while the timestamped form retains 80. If you plan to use timestamped IDs as sort keys, confirm that millisecond-level grouping is enough for the application and that the reduced random component fits your collision-risk requirements.
Rank #4
Memory behavior to consider when retaining IDs
Maxwell says that retaining a single sliced ID retains its shared generated chunk, which he describes as about 7 KB for jet-id compared with 32 KB for nanoid. This is his account of the implementation’s memory behavior; no independent memory profile is established here. It is worth considering in workloads that keep many generated strings for long periods, rather than generating IDs and promptly discarding them. Source: Maxwell’s discussion of retained chunks
When jet-id may fit—and what to verify
jet-id is a candidate when a JavaScript or TypeScript project wants Crockford-style IDs, segmented output, optional timestamp encoding, and built-in validation or timestamp parsing. Its benchmark is useful as a point of comparison, but not enough on its own to determine suitability or expected production performance.
Best Value
- Check the package’s current documentation and supported environments before adopting it; the benchmark details do not establish compatibility with every Node.js or browser version.
- Benchmark the exact API and output format your application will use, on its target runtime and representative hardware.
- Decide whether random IDs or timestamped IDs meet your ordering and randomness requirements.
- If IDs remain live in memory, measure retention behavior in the application rather than assuming the reported chunk sizes apply to your workload.
- Review the package and its maintenance state directly; the cited material does not establish independent adoption or production suitability.
For the project overview and APIs, see Maxwell’s jet-id article; for the performance figures and methodology, see his benchmark discussion.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




