Xlork alternative that runs in your page, not in a vendor's iframe

Updog is a real element in your DOM. There is no frame boundary, so your CSS applies and focus order and ARIA relationships work across the page.

100% client-sideWhite-labelNo iframe

Updog and Xlork at a glance

DimensionUpdogXlork
Data privacyFiles are parsed, validated, and edited in the browser. Row data never reaches Updog's servers, so there is no data processor, DPA, or residency to manage.Xlork's marketing describes client-side processing, while its security page states only that imported data is processed transiently and not stored beyond the import session, and its DPA lists Xlork as the data processor. The homepage lists SOC 2 Type II, which is not detailed on its security or DPA pages; GDPR and CCPA are referenced in the DPA. Encrypted with TLS in transit and AES-256 at rest. No data residency options found.
White-labelFull styling through CSS variables and class overrides. No Updog logos or "powered by" on any plan, including the free one.16 named built-in themes selected via a prop, plus a custom theme color and logo replacement to white-label the importer. Branding removal starts on the Startup plan ($9/month).
PricingFree for development, and a 14-day trial with no card when you go live. In production, a flat $19 per domain per month, the same at any volume, and your first paid domain includes a free one for staging.Public and self-serve. Freebie $0 (10 rows per import), Startup $9 (100 rows), Premium $29 (500 rows), and Enterprise $49 (unlimited rows). Paid plans are currently $0 under a launch promotion. Priced per plan and gated on rows per import, with no per-import fees found.
Data mappingSchema in code. Fuzzy column matching with a built-in synonym dictionary you can extend, or connect the AI your organization already approves through a hook, so it runs on infrastructure you control with no new AI vendor to clear. Updog keeps no mapping history. Your app owns that state and can supply saved selections on later imports. Maps incoming values to your options. Auto-detects number and date formats. Combines files by upserting on a key.Schema in code via React props. The site markets AI semantic column matching, though the SDK docs describe manual mapping; date-format configuration is documented and delimiter auto-detection is marketed. Dropdown, select, and autocomplete column types. An OCR image reader extracts tables from images.
Data cleaningCells edit inline through a typed editor per column, text, number, date, select, or multi-select, with clipboard, fill handle, and full undo and redo. Values pass a transform on the way in, then validation runs at three levels, built-in rules, your own checks, and asynchronous ones. Sorting, full-text search, filters on the columns you enable, and formulas. Invalid rows can block submit or come through flagged. Any view also exports in any supported format.Documented validators cover required fields, data types, regex, length, and cross-field rules; no custom or async validators found. Configurable no-code cleanup (trim, normalize, deduplicate, standardize dates and phones) and chained transforms, with a real-time preview. No find & replace, undo/redo, or filter-to-error-rows found.
Scale & performanceAbout one million rows at around 20 columns in the browser, with a filter on every column. No fixed row cap, the browser tab's memory is the ceiling, and fewer columns reach further. Filtering and sorting run in a worker, measured at 30 to 250 milliseconds over a million rows.Browser-based importer that a blog says processes up to 500K rows client-side via Web Workers, with server-side chunking recommended beyond that. Rows per import are capped by plan, from 10 up to unlimited on Enterprise. Marketing cites 50K rows per second; no file-size cap found.
IntegrationReact component, plus a Web Component for Vue, Angular, Svelte, and vanilla JS. Renders inline in your page's DOM. Imports CSV, TSV, Excel, JSON, and XML, plus any other format through a parser you register yourself.React is the only documented SDK (React 16.8+). The site also markets Vue and Node.js/Python SDKs and a REST API, though only React is documented. Renders as a popup by default, or inline in the page.
Languages & RTLEnglish by default, with every interface string overridable, so you can localize into any language. Right-to-left is first-class. It flips layout, text alignment, scrollbars, and column pinning, and carries through to export.A language setting on the SDK, with English, Spanish, French, and German named as examples and no full list published. A blog post says the interface adapts to right-to-left content automatically, though the SDK documents no right-to-left option.
AccessibilityAn ARIA grid with full keyboard navigation and screen-reader support. WCAG 2.2 AA is the level Updog builds to, with automated rule checks over every component and every step of the importer on each test run. Updog holds no independent audit or VPAT.No accessibility statement found. The importer app loads a Handsontable build that predates the ARIA support and keyboard navigation added in that library's version 14.

Xlork's homepage lists SOC 2 Type II, which is not detailed on its security or DPA pages, and markets AI column matching and client-side processing that its SDK docs do not describe. Facts checked against Xlork's public pages in July 2026.

Which one fits your team

Xlork may fit better if

  • You want a low-cost importer, with public paid tiers starting at $9 a month.
  • You want the marketed built-in AI column matching and OCR table extraction from images, rather than bringing your own AI endpoint.
  • You want server-side use via the Node.js SDK or REST API that Xlork markets, accepting that only the React SDK is documented.
  • You only need importing, with rows per import inside your plan's cap.

Updog may fit better if

  • You want an importer and spreadsheet editor embedded in your own app.
  • You want to match your app's design exactly, styling the editor with your own CSS through variables and class overrides.
  • You want to handle large files in the browser, with nothing stored on a server.
  • You want flat, public pricing with no per-import fees.
  • You want to use the AI your organization already approves, with no new vendor to clear.

Questions people ask

Is Updog a drop-in replacement for Xlork?

No. Both embed an importer, but Updog is also a spreadsheet editor and runs only in the browser, with no server mode. Xlork markets a Node.js SDK and REST API for server-side use, though only its React SDK is documented.

How do the two handle data privacy?

Updog has no server mode, so file data is never sent to Updog servers. Xlork's marketing describes client-side processing, while its DPA lists Xlork as the data processor.

How does Updog pricing compare?

Updog is a flat $19 per production domain per month, free in development. Xlork publishes tiers from $9 to $49, priced by rows per import, currently $0 under a launch promotion.

Can Updog handle large files like Xlork?

Yes, about 1 million rows in the browser, bound by the machine's memory. Xlork caps rows per import by plan, and a blog post cites up to 500K rows in the browser with server-side chunking beyond that.

Can Updog be used to view or edit existing data, without an import?

Yes. Load existing data straight into Updog's editor to view and edit it, with a read-only mode. Xlork is built around the import flow.

How customizable is the appearance compared to Xlork?

Updog is plain CSS with BEM class names: override its CSS variables or target its classes directly, up to a full dark theme. Xlork ships 16 named themes plus a custom theme color and your logo, so you customize by selecting a preset.

How do the two handle accessibility?

Updog's grid uses ARIA semantics with full keyboard navigation and screen-reader support, and the importer is checked against WCAG 2.2 A and AA rules on each test run. Updog holds no independent audit or VPAT. No accessibility statement was found for Xlork, and its importer app loads a Handsontable build that predates the ARIA support and keyboard navigation added in that library's version 14.

Can the interface be translated, and does right-to-left work?

Updog ships in English with every interface string overridable, so you can localize into any language, and it renders right-to-left layouts natively. Xlork has a language setting on the SDK, with English, Spanish, French, and German named as examples and no full list published. A blog post says the interface adapts to right-to-left content automatically, though the SDK documents no right-to-left option.

Try Updog for free

Install the package, add your columns, render the component. Free on localhost and preview domains. Every feature included.