Nanoid Generator Online — URL-Safe Compact IDs

Generate Nanoid-style IDs with CSPRNG in your browser. Adjust size (2–64) with quick presets, pick an alphabet (URL-safe, alphanumeric, numeric, no-look-alike, or custom), and generate up to 50 IDs at once.

Loading…
Nanoid generator — developer notes
Compact IDs via unbiased sampling over a configurable alphabet. URL-safe by default (64 chars); slider 2–64 with quick presets; custom and no-look-alike alphabets supported.

NanoID vs UUID

NanoID solves the same problem as a UUID—unique IDs—but trades the fixed 128-bit RFC shape for a shorter, URL-safe string. The default alphabet uses 64 URL-friendly characters; you set length with the slider (2–64) or preset chips, and you can switch to numeric, alphanumeric, no-look-alike, or a custom charset (at least two unique symbols after deduplication). Shorter IDs are easier to copy but raise collision risk as volume grows; there is no universal “best” length—match your storage format and entropy budget. Generation uses rejection sampling with crypto.getRandomValues in the browser. When you need standard UUID v4/v7 or time-sortable ULIDs, use the UUID generator or ULID generator.

How generation works

Set size with the slider (2–64) or quick presets, pick an alphabet (including custom or no-look-alike), and choose count up to 50 — the list fills immediately and refreshes when you change an option. Live generation uses rejection sampling + crypto.getRandomValues — never Math.random. Copy per line, copy all, or download .txt.

Options

Size (2–64)
Longer IDs reduce collisions. Use the slider for any length 2–64, or click a preset chip (8/12/16/21/32) as a shortcut.
Alphabet
url = A–Z a–z 0–9 _- (Nanoid default). alphanumeric = without _-. numeric = digits only. no-look-alike removes ambiguous glyphs (0, O, o, I, l, 1). custom lets you paste your own charset.
Count (1–50)
Multiple IDs for fixtures, capped at 50.
Custom alphabet
Paste any string (max 256 characters raw length). At least 2 unique characters after deduplication are required. The entropy tooltip uses the resolved alphabet size.

Examples

Default URL-safe

Settings

size=21, alphabet=url

Output

V1StGXR8_Z5jdHi6B-myT

Short numeric

Settings

size=8, alphabet=numeric

Output

eight digits 0–9

Related utilities

Need UUIDs? See the UUID generator. For time-sortable IDs, the ULID generator.

Nanoid generator FAQ

Compact IDs

Can I type a custom size?

Yes — use the slider or number field for any length from 2 to 64. Preset chips are shortcuts only.

Custom alphabet?

Yes — select Custom and paste your charset (max 256 characters, at least 2 unique symbols). Emoji and other Unicode code points are supported; grapheme clusters spanning multiple code points are not segmented.

Is data uploaded?

No — local generation only.

Why not the npm nanoid package?

A small implementation aligned with the password-generator CSPRNG pattern, with no npm dependency.

What length should I choose?

Longer IDs reduce collision probability. The default URL-safe preset uses 21 characters (a common NanoID default); use the slider for any length from 2 to 64, or pick a chip (8/12/16/21/32) as a shortcut. Numeric-only alphabets need more characters than mixed alphabets for similar entropy.

Timestamps, UUID, ULID, Nanoid, cron, passwords, regex, slugify, number bases, case, text diff, and chmod — all client-side.