Mouad Ennaciri, founder of Rowslint
about

Hi, I'm Mouad.

I built Rowslint because I got tired of writing the same broken CSV importer at every job. It's the import widget I wanted to drop into my own apps, so I shipped it.

For the last few years I've been the software tech lead at a Y Combinator-backed logistics company. We build a TMS: fleet management, dispatching, planning, billing, customer operations, all the moving parts that keep trucks and drivers running at scale.

Every customer that signs up arrives with their data already living somewhere else. Routes in a spreadsheet from their planner. Vehicles in an export from their old system. Drivers in a CSV one of their ops folks cleaned up by hand. Onboarding that data into our platform was a recurring theme of: their headers don't match our schema, their date format is European, the phone numbers lost their leading zero in Excel, a quoted comma broke the parser on row 387.

We rebuilt the CSV import flow more than once. It was never quite right. The internal tools that did exist were either too closed, too expensive for small teams, or shipped data through a third party I didn't want to send customer files to.

So I started building Rowslint as the import widget I wanted to drop into our own product. Browser-side parsing so customer data never leaves the tab. AI column mapping so the messy headers stop being a roadblock. Inline validation so the user fixes the bad rows before they ever reach a backend. Clean, typed JSON on the other end.

It started as a side project for one specific TMS problem. It turned into the tool I wished I had at every previous job too.

I'm a software engineer, currently the tech lead at a YC-backed logistics platform. The product is a TMS used by transport teams to run their day-to-day operations: planning, dispatching, customer portals, billing, reporting.

Before that, I worked at one of France's largest real estate technology platforms (a unicorn), on business applications used daily by thousands of agents across the country. Different industry, same pattern: real customers, real data, and a lot of spreadsheet uploads that nobody quite wanted to own.

Two very different products. Same recurring bottleneck. That's the part I'm trying to fix with Rowslint.

Rowslint is early, and a real conversation is worth more than any pricing page. If you're shipping a CSV or Excel import inside your own app, or thinking about replacing one that's been giving your team grief, I'd genuinely like to hear about it.

The fastest way to reach me is [email protected]. I read every message myself. If you'd rather start with the product, you can try the free trial without a credit card, or watch the import flow on the homepage.

next step

Drop a CSV importer into your app this afternoon.

If you've ever lost a customer at the import step, you already know the problem. Start with the free trial and wire one real import surface in your product.