Impler is a free, open source data engineering & integration project written in TypeScript and released under MIT. It has 291 GitHub stars, 58 forks and 26 open issues, and was last pushed 17 days ago. On this registry it ranks #39 of 39 tracked projects in Data Engineering & Integration, with 5 head-to-head comparisons available.

What is Impler?

Impler is an MIT-licensed, TypeScript-based data import platform that gives SaaS teams a readymade embeddable widget for onboarding customer data from CSV and Excel files, aimed at developers who would otherwise spend months building a guided import flow from scratch.

What it is

Impler is an open-source project that provides an embeddable, scalable and readymade data import experience inside existing products. The repository is a monorepo built with Nx and Lerna, with a NestJS backend, a Next.js frontend, and MongoDB as the data store, all written in TypeScript under the MIT License. The project ships a guided and responsive import widget that walks a user through uploading a spreadsheet, mapping its columns, reviewing the parsed rows, and correcting invalid values before the data reaches the host application.

The concrete problem it solves is the work of building and managing the complex architecture required to import a customer's data. Rather than assembling file parsing, column mapping, validation, review screens, and delivery plumbing by hand, a team integrates Impler and gets the whole flow. It replaces a homegrown import pipeline with a single embeddable component and a set of event hooks, so the effort shifts from months of engineering to configuring a template and adding columns.

Key capabilities

  • Guided, responsive data import widget embedded through the @impler/react package and the useImpler hook, which exposes showWidget and isImplerInitiated.
  • Two import paths: clicking the Import button in the web portal, or embedding the widget directly into a React application.
  • Static and dynamic validations that check all kinds of data before an import completes.
  • Auto-generation of an Excel template with Excel-based validations, so users download a file that is already shaped correctly for the import.
  • Facility to clean invalid data during the import rather than rejecting the whole file.
  • Webhook support to send imported data to the host application once the import finishes.
  • Default and dynamic schema support, event hooks that react to widget status, and formatting of the data the application receives.

Who uses it and how

  • SaaS product teams that want a guided import onboarding step without owning the parsing, mapping and review pipeline themselves.
  • React and Next.js applications that embed the widget with a templateId, projectId and accessToken and drive visibility through useImpler.
  • Teams whose users work in spreadsheets, using the auto-generated Excel template so incoming files already carry column-level validations.
  • Developers evaluating or running the stack locally, using the Gitpod workspace or the documented "Run Impler Locally" path.
  • Contributors looking for an entry point, since the project is tagged hacktoberfest and the README lists open issues, Discord discussion, tutorials and enhancement-tagged feature requests as ways to take part.

Getting started

The README offers two routes: create an account on the web portal at web.impler.io and configure an import by adding columns, or integrate the widget into a React app with npm install @impler/react, a script tag added before the closing body tag, and the useImpler hook configured with a template ID, project ID and access token. The project can also be run locally following the "Run Impler Locally" guide, or opened directly in Gitpod.

How it compares

No list of paid products that this project replaces appears in the facts provided, and no comparable open-source alternatives are named either. Within this registry, Impler stands alone in its niche.

When to use it — and when not to

A self-hoster takes on operating the full stack, which means running a NestJS service, a Next.js frontend, MongoDB, and the Nx and Lerna monorepo build, and the README routes that work to an external docs page rather than describing deployment, storage or mail configuration itself. The documented integration path is React-specific through @impler/react, so teams on other frontend frameworks should confirm support before committing, and anyone wanting a fully managed hosted alternative should note that web.impler.io exists as the hosted portal. The README is also product-feature oriented: it names no versioned release, no migration path and no operational runbook, so teams with strict deployment review processes should expect to read the docs repository alongside it.

project readme (upstream, from github) — read inline

Impler Logo

Impler Contributors Impler Forks Impler Issues Impler Stars

Readymade and scalable data import experience for developers👩‍💻

Simple and intuitive way to onboard users data via guided import widget

Explore the docs »
See it first hand · Meet the team · Report Bug · Request Feature

🤔 Why Impler?

Impler provides embeddable, scalable, and readymade data import experience in products. With Impler you don't need to worry about building and managing complex architecture for importing customers' data. Just integrate impler with few easy steps and the data import experience will be ready in just a few minutes.

✨ Features

  • 🕸️ Guided and responsive data import widget
  • ☠️ Static and Dynamic validations to validate all kinds of data
  • 📔 Auto-generate Excel template along with excel based validations
  • 🧹 Facility to clean the invalid data during import
  • 🪝 Webhook support to send imported data to the application
  • 💪 Ability to provide default and dynamic schema
  • 🧪 Event hooks to react according to widget status
  • 🤸‍♂️ Facility to format data application receives
  • 👨‍💻 Guided and driven by community

🚀 Getting Started

The best way to explore the possibilities of the platform is by creating your Import. Head over to web portal and setup your account.

After setting up your account, you can create an import and add columns to it. Once columns are added you're ready to import data.

There are two ways:

  1. Click on Import button to open the import widget from the web portal
  2. Embed import widget import widget into your application

To integrate impler into your reactjs application, you need to install the package:

npm install @impler/react

Add script in your app before closing body tag

<script type="text/javascript" src="https://embed.impler.io/embed.umd.min.js" async></script>
import { useImpler } from '@impler/react';
        
const { showWidget, isImplerInitiated } = useImpler({
    templateId: "<TEMPLATE_ID>",
    projectId: "<PROJECT_ID>",
    accessToken: "<ACCESS_TOKEN>",
});

<button disabled={!isImplerInitiated} onClick={showWidget}>
    Import
</button>

🏁 Contributing

Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Here are a few ways:

  • Help with open issues or create your own
  • Share your thoughts and suggestions with us over discord
  • Help create tutorials and blog posts
  • Request a feature by opening an issue with the tag enhancement
  • Report a bug by providing steps to reproduce

If you have something in mind that would make it better, please fork the repo and create a pull request. Every hand is appreciated!

💻 Need Help?

We are more than happy to help you. If you are getting any errors or facing problems while working on this project, join our discord server and ask for help. We are open to discussing anything related to the project.

⚡ Immediate working space with Gitpod

Open in Gitpod

🔗 Quick Links

🏡 Home page
🏗️ Contribution Guidelines
💻 Run Impler Locally

🛡️ License

Impler is licensed under the MIT License - see the LICENSE file for details.

🎖️ Thank you

The beauty of open-source software is enhanced through collaborative efforts. Don't forget to give the project a star :star:! Thanks again!

Frequently asked questions

Is Impler free to use?

Impler is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Impler do?

Seamless data import for your applications

What is Impler written in?

Impler is primarily written in TypeScript. Its source is publicly available at https://github.com/implerhq/impler.io, and it has 291 GitHub stars.