Why Dromo?

CSV import for Next.js, App Router and Pages Router

Import CSV and Excel files in Next.js without SSR headaches. Works with App Router and Pages Router, client-side parsing, AI column mapping, real-time validation.

View docs
"use client";

import dynamic from "next/dynamic";

const DromoUploader = dynamic(
  () => import("dromo-uploader-react"),
  { ssr: false }
);

What Our Customers Say

G2 High Performer Award 2025 badge for Dromo
4.9 out of 5 stars
5 out of 5 stars
Ryan Chan logo
Ryan Chan
CEO at Upkeep.com
E&Y Entrepreneur of the Year finalist
"We have now rolled out Dromo across our entire customer onboarding experience, and it has made our lives so much easier. Most importantly, our customers love the new experience!"

FAQ

Frequently asked questions

  • Yes. Mark the wrapper component with "use client" and render it like any other client component. Pages Router works with a standard dynamic import.
  • No. The importer runs entirely in the browser. Load it with a dynamic import and ssr: false, or inside a client component, and SSR is unaffected.
  • To your onResults callback as clean JSON, to a webhook, or directly to your own S3, GCS, or Azure bucket with Bring Your Own Storage.
  • Yes. Private Mode runs the whole import in the user's browser, so file contents never reach Dromo.

Ready to Ship a Better Data Import Experience?

AI-powered mapping. Real-time validation. SOC 2 certified. Deploys in minutes.