Generate realistic fake JSON data (users, emails, roles, timestamps) for tests, demos and prototypes. 100% client-side, no signup, copy or download.
Realistic mock data is the difference between a UI that looks polished in screenshots and one that breaks the moment a real user logs in. Long names, weird emails, edge-case ages — fake records with the right shape catch layout, sorting, and validation bugs before QA ever opens the build.
A JSON array of user-like objects with stable, predictable keys. Every record has a UUID, a plausible name, an email, an age, a city, a role drawn from common access tiers, an active flag, and an ISO createdAt timestamp. The shape covers the majority of CRUD UIs without further tweaking.
Generate 10–50 records and commit the JSON into your test fixtures folder. Stable fixtures make snapshot tests deterministic. For network mocking, wire it into MSW (rest.get('/api/users', () => res(ctx.json(fixture)))) or json-server (npx json-server mock-data.json) for an instant REST endpoint.
This page is for quick, one-off needs — a Figma screenshot, an empty-state demo, a single Jest fixture. If you need locale-specific data, custom schemas, foreign keys between tables, or reproducible seeds, switch to Faker.js, Chance.js, or @snaplet/seed inside your project. They give you full control and run in your build, not the browser.
Nothing here is sent over the network. The dictionaries (names, cities, domains) live in this page's source code. The "emails" use safe demo TLDs that aren't backed by real mail servers. Generate freely.
Each mock user has: id (UUID v4), name, email, age (18–67), city, role (admin/editor/viewer/owner/guest), active (boolean), and an ISO createdAt timestamp within the last two years. A realistic shape for most CRUD UIs.
No. Names, emails and cities are randomly assembled from a small fixed dictionary inside this page. Any resemblance to a real person is coincidental. Never use these emails to send actual messages.
The UI caps at 500 to keep the browser responsive. For larger fixtures, generate twice and concatenate — or open the page source and call buildUser() in a loop in DevTools.
It's fine as a starting point for development databases. For production-like load tests, prefer libraries like Faker.js in your build pipeline so you can deterministically reseed with a known random seed.
No. The generator uses crypto.randomUUID() and Math.random() in your browser. No data is sent to any server.
Browse all free tools · Guides and tutorials · PDF tools · Developer tools · Text tools · SEO tools