Import, clean, and edit
data in your app.

The client-side data importer and spreadsheet editor for React, Vue, Angular, and any framework. 1M+ rows. No server. No usage limits. $0 to start.

$ npm install updog
100% client-side · White-label · No usage limits

Data importer and editor in action.

Import files, fix errors, edit — all in the browser.

Fix Errors With AI

Bring your own AI.

Users describe the problem, the AI writes the fix. Your model, your prompt, your data, your rules.

  • Plug in any LLM backend
  • We never see your prompts
  • Context-aware suggestions based on your schema

The full feature set.

Every feature. Every plan. No gates.

1M+ rows

Canvas rendering, virtual scrolling, Web Worker filtering.

Client or server mode

Keep everything in the browser, or delegate to your backend.

Any frontend framework

Native React component. Web Component wrapper for Vue, Angular, Svelte, or plain HTML.

White-label

Strip all Updog branding. Your users never know we're here.

Five import formats

CSV, XLSX, TSV, JSON, XML. Drop a file, get structured data.

Smart column matching

Auto-maps imported columns to your schema. Fuzzy matching, synonyms, or your own callback.

Value mapping

Map imported values to the options your columns expect.

Multi-source merging

Import multiple files into one grid. Each source tracked, toggled, or removed independently.

Upsert by primary key

Second import? Existing rows update in place. New rows append. No duplicates.

Dynamic columns

Imported file has columns your schema doesn't? Users create them on the fly.

Add / delete rows

Insert above, insert below, duplicate, delete.

Column transforms

Split, merge, trim, uppercase, lowercase. Bulk operations that stay fast at scale.

Typed cell editors

Text, number, date picker, select dropdown. Each column gets the right input control.

Inline editing

Click a cell, start typing. Tab, Enter, arrow keys — it works like a spreadsheet.

Copy / paste

Cells, ranges, rows. Paste from Excel or Google Sheets. Cut moves data, not just copies.

Fill handle

Drag to fill. Source values tile cyclically across the target range.

Undo / redo

Every edit, paste, transform, and delete goes on the stack. Full command history.

Find & replace

Search across all cells. Case-sensitive, exact match, column-scoped. Replace one or all.

Column sorting

Ascending, descending, or clear. Stable sort, locale-aware.

Configurable filters

Select lists, number ranges, date ranges. Define per column, users control from the sidebar.

Built-in validators

Required, unique, type checks.

Custom validators

Write your own validation function per column.

Cross-field validation

Declare dependent fields. When one cell changes, related cells re-validate automatically.

Display formatters

Show "$1,000" in the cell. Store "1000" underneath. Formatters are display-only.

Input transformers

Normalize on entry. Trim whitespace, parse numbers, format dates — before they hit the store.

Clean exports

CSV, XLSX, TSV, JSON, XML. Validated and formatted. Ready for your pipeline.

Sticky columns

Pin columns so identifiers stay visible while users scroll horizontally.

CSS theming

Every element styled through CSS variables. Match your design system, not ours.

Accessibility

Shadow table for screen readers. ARIA roles, live regions, full keyboard navigation.

i18n & RTL

Override every string. Right-to-left layout where the locale demands it.

Read-only mode

One prop. The grid becomes view-only. No editing, no deletion, no import.

Bring your own AI

Stream chat responses into the grid. Your model, your prompts, your data stays yours.

Pricing.

Every plan includes every feature. No credit card required.

Dev

$0 /mo

Perfect for local development and personal side projects.

  • Development domains
  • All features
  • Community Support

Team

$99 /domain/mo

Per production domain. Subdomains included. No bundled tiers.

  • Add domains as you grow
  • All features
  • Email Support

Enterprise

Custom

Complex requirements, compliance, and custom SLAs.

  • Custom terms
  • All features
  • SLA

Frequently Asked Questions

Everything you need to know about Updog.

Is it really 100% client-side?

Yes. Parsing, validation, transformation, and editing all happen in the browser. Your users' data never leaves their machine. No server, no data residency, no third-party processing.

How many rows can it handle?

1M+ rows with no lag or flicker. Canvas-based rendering with virtual scrolling — only visible cells are painted.

Which frameworks are supported?

React as a first-class component. For Vue, Svelte, Angular, or any other framework — a Web Component that works anywhere.

What file formats can users import?

CSV, Excel, JSON, TSV, and XML. Users can also paste directly from Google Sheets or Excel, and merge multiple files into one import.

Is it just an importer or also an editor?

Both. Import messy files and clean them up. Or load existing data and let users edit it — with undo/redo, find & replace, copy/paste, fill handle, and built-in transformation functions.

How does pricing work?

$0 for development. $99/domain/mo for production. No bundled tiers. Every plan includes every feature. No per-row fees. No per-import fees. No usage caps.

Can I remove all Updog branding?

Yes, on every plan including free. No logos, no "Powered by" badges. Full CSS theming — override any visual element to match your brand.

How does the AI assistant work?

You own the prompt. Choose any LLM provider, write a prompt that returns a transformation function. That function is applied against the data — locally, in the browser.

Do I need SOC 2 or compliance audits?

No. Data never leaves the browser, so there is nothing to audit. No PII exposure to third parties. No data residency concerns.

How fast is integration?

npm install updog, define your columns, render the component. Under 10 minutes to a working import flow.