crud.md
// crud.md / uuid-ulid

Mint UUIDs and ULIDs. Read the timestamp back out.

Generate UUID v4, time-ordered v7, NIL UUIDs and sortable ULIDs in bulk — up to a thousand at a time — then copy or download them as .txt or .csv. Paste any id back in to see its kind, version and the moment it was minted. It all happens in your browser; nothing is uploaded.

uuid-ulid · v1.0 local-only

FAQ

Is my data sent anywhere?+

No. Every id is generated, and every id you decode is parsed, entirely in your browser — nothing is ever sent to a server. Randomness comes from your browser's own WebCrypto generator. We count anonymous, aggregate usage on our own server (a page view, that a batch was generated) — never the ids themselves, and never what you paste in to decode.

When should I use v7 or a ULID instead of v4?+

UUID v4 is 122 random bits — great when you want unguessable ids and don't care about order. UUID v7 and ULID both put a millisecond timestamp in the leading bits, so ids minted later sort after earlier ones. That makes them far kinder to database indexes (no page splits from random inserts) and lets you read the creation time straight off the id. Reach for v7 if you want a standard UUID your tools already understand; reach for a ULID if you want a compact, 26-character, URL-friendly string.

Are these "real" random UUIDs I can use in production?+

Yes. The random bits come from crypto.getRandomValues — the same cryptographically-strong source a server would use — and the version and variant bits are set per RFC 4122 / RFC 9562, so other libraries will recognise and validate them. The NIL UUID is the all-zero sentinel from the spec. Generating a million is fine; just remember a v7 or ULID timestamp reveals roughly when the id was created, which is usually a feature but occasionally not.