D

ULID Generator

Generate sortable ULIDs (Universally Unique Lexicographically Sortable Identifiers) in bulk.

Runs 100% in your browser — nothing is uploaded

About this tool

The ULID Generator produces Universally Unique Lexicographically Sortable Identifiers — 26-character Crockford Base32 strings that encode a 48-bit timestamp followed by 80 bits of randomness. ULIDs are designed to be an alternative to UUIDs that are also naturally sortable by creation time.

The format is URL-safe, case-insensitive, and more compact than UUID's 36-character hyphenated form. The timestamp prefix means ULIDs generated in sequence sort correctly without needing a separate created_at column — ideal for database primary keys, event IDs, and distributed system identifiers.

ULIDs generated in a single batch use the monotonic factory to ensure strict ordering even for IDs generated within the same millisecond. The ulid library runs entirely in the browser — no server involved.

Frequently asked questions

What is Crockford Base32?
Crockford Base32 uses 32 characters: 0-9 and A-Z excluding I, L, O, U (to avoid confusion with 0/1 and profanity). It is case-insensitive, URL-safe, and more compact than hex.
How is ULID different from UUID v7?
Both embed a timestamp prefix for sortability. UUID v7 uses the standard 128-bit UUID format (32 hex chars + hyphens, 36 chars total). ULID uses Crockford Base32 (26 chars), is more compact, and has been around longer. UUID v7 has broader framework support due to the UUID standard.
Are ULIDs monotonically increasing within the same millisecond?
Yes — this generator uses the monotonic factory, which increments the random portion when multiple ULIDs are generated in the same millisecond, guaranteeing strict lexicographic ordering.
Is ULID suitable for database primary keys?
Yes. The timestamp prefix gives index locality (new rows cluster near each other in a B-tree index), avoiding the random I/O scatter caused by UUID v4 primary keys. This improves INSERT performance and range query efficiency.