Seeded Deterministic UUID Generator
Enter any string below and get a 100% reproducible UUID — perfect for stable tests and fixtures.
About This Tool
Random UUIDs are great for production security — but they are the number-one cause of flaky tests. A test that passes locally can fail in CI simply because crypto.randomUUID() generated a different value.
This Seeded Deterministic UUID Generator solves that problem once and for all. Instead of randomness, it uses SHA-256 hashing of your chosen seed string to produce a standards-compliant UUIDv5-style identifier. The result? Same seed → same UUID forever, across every machine, browser, and year.
Built entirely in the browser with zero server round-trips, zero cookies, and zero analytics, your seeds never leave your device. The algorithm truncates the SHA-256 hash to 128 bits and applies the correct version (5) and variant bits according to RFC 4122 — meaning the output is accepted by PostgreSQL, MySQL, MongoDB, Prisma, TypeORM, and every other system that understands UUIDs.
Thousands of developers already use this exact pattern to make Jest/Vitest snapshots stable, keep database fixtures consistent across environments, eliminate foreign-key mismatches in CI, and make end-to-end tests with Cypress or Playwright reliable. Whether you're writing unit tests, integration tests, or seeding production-like data for staging, deterministic UUIDs turn non-determinism from a bug into a solved problem.
The tool is open-source (MIT licensed), hosted on GitHub, and deliberately lightweight — no npm packages beyond SvelteKit and Bootstrap via CDN. It works offline after the first load and is designed to stay fast and simple forever.
In short: If you ever find yourself debugging a test failure that disappears when you re-run it, you probably need deterministic UUIDs. This tool gives them to you instantly.
How to Use
Four simple steps — and your tests become reproducible forever.
- Choose a meaningful seed.
Use names that make sense in context:user-alice,order-2025-007,invoice-EU-042,session-happy-path. The clearer the seed, the easier debugging becomes. - Generate the UUID here or in code.
Paste the seed above → click Generate → copy the result. Or import the samegenerateDeterministicUUIDfunction directly in your Node.js or browser tests (the algorithm is identical). - Use the UUID everywhere you need stability.
• Factory libraries (FactoryBot, Rosie)
• Prisma / TypeORM / Sequelize seed files
• Jest & Vitest setup files
• Cypress/Playwright data attributes
• Snapshot testing
• Review-app databases - Save the seed, not the UUID.
Store the seed string in your documentation or constants file. Anyone on your team (or future you) can regenerate the exact same UUID instantly, without copying long hex strings.
seeds.ts file in your repo with constants likeexport const USER_ALICE = 'user-alice';export const ORDER_2025_001 = 'order-2025-001';Then every test uses
await generateDeterministicUUID(USER_ALICE) — no more magic strings scattered around.Once you adopt this pattern, flaky tests caused by random IDs disappear permanently. Your CI becomes greener, code reviews faster, and onboarding painless.
Frequently Asked Questions
crypto.randomUUID() or equivalent.crypto.createHash('sha256')) and get bit-for-bit identical results.