Your demo  data is  embarrassing.

GhostFill replaces test123 with realistic, domain-specific data. One click. Any form. The whole team.

$ npm install ghostfill -D

Works with React, Vue, Angular, vanilla JS — devs install, everyone benefits

Everyone on the team has this problem

It's not just developers. Everyone who touches a form with fake data in front of someone else feels the pain.

The PM demo

"Let me walk you through the new CRM flow..." and there's "John Doe" at "[email protected]" working at "Company Inc" on every single record. The client notices.

The QA session

QA fills every form with "aaa", "123", and "asdf". Edge cases? What edge cases? The data doesn't exercise real validation paths because nothing looks like real input.

The design review

Designer screenshots the form for a deck. Every field says "test". Now they're manually typing realistic data into 40 fields. Again. For the third time this sprint.

Same form. One click apart.

Every team has this story. Right there on the screen, in front of the client: "Cheeseburger" in the company name field.

❌ Without GhostFill
Account
asdfasdf
Contact
test test
Opportunity
deal 1
Est. Revenue
99999
Stage
idk
Description
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
✨ With GhostFill D365 CE preset
Account
Northwind Traders
Contact
Sarah Mitchell
Opportunity
Enterprise CRM Migration
Est. Revenue
$245,000
Stage
Proposal
Description
Migrating from legacy on-prem CRM to D365 Sales Enterprise. 120 users across 3 business units. Phase 1 covers lead-to-opportunity and account management workflows.

Configure once, fill forever

Set your domain preset, select any form, click fill. Every field gets data that fits your industry.

localhost:3000

New Opportunity

/ghostfill
v0.2.1
Highlight Colour
Use AI
Provider OpenAI
API Key
Presets
New Preset
Cancel
Fill Fields 6 fields
Account Contact Email Opportunity Est. Revenue Description
Preset None
Preset: Default

Try it live

Click the ghost icon, select this form, and fill it. This is the real GhostFill library running on the page.

faker.js fills your database.
GhostFill fills the form you're looking at.

Different tool, different problem. GhostFill works in the browser, on the page, for anyone on the team.

GhostFill faker.js Browser Autofill
Who uses it Anyone on the team Developers only Individual user
How it works Visual in-page UI Code library Browser feature
Data quality Domain-aware, contextual Random but typed Your personal data
Form detection Labels, selects, custom dropdowns N/A — you call it in code Standard inputs only
Domain presets D365, Healthcare, E-commerce... Generic schemas N/A
Setup One import, zero config Write generation scripts Already there

Two lines to get going

Install the package and add one line to your entry file. That's it.

// Install
// npm install ghostfill -D

import 'ghostfill';

// That's it. The ghost icon appears in dev mode.
// Click it to start filling forms.
// Install
// npm install ghostfill -D

// In your _app.tsx or layout.tsx:
import 'ghostfill';

// Or conditionally in development only:
if (process.env.NODE_ENV === 'development') {
  require('ghostfill');
}
// Install
// npm install ghostfill -D

// In your main.ts or main.js:
import 'ghostfill';

// GhostFill auto-detects Vue's reactivity
// and triggers proper change events.