Build vs Buy a CSV Importer When AI Writes the Code
The deadline I was given to build a data importer from scratch was two months. I had built import screens before, I had a vision for how this one should work, and I had a $100 a month Claude subscription, and that felt like enough.
This is a normal way to start a project now. Teams that would have bought a tool three years ago are building it in-house, and the reasoning sounds the same everywhere. The engineers already have Claude Code or Codex, a first demo appears within days, and a vendor subscription feels like paying for something the team could make themselves. Hand an engineer an AI assistant and a spec, and wish them luck. I am not going to mock that reasoning, because I was that engineer, and part of it is true.
The first version is the cheap part
The build side of build vs buy has changed. A file input, a parser, and a table on the screen take several hours with an AI assistant, where they used to take a sprint. A column mapping screen follows in a day or two, and watching it all come together feels like proof that buying is obsolete.
The companies that sell importers have published cost studies about this decision for years, and I am not going to lean on them. They were written before AI assistants, and when I was the engineer with the deadline I would not have believed them either. The math below uses the cheapest assumptions I can defend, and the cheap version makes the argument on its own.
Doing the math on the build
Price an engineer at $60 an hour, which is still below the fully loaded cost of a senior hire in much of the US, and count a month of focused work as 160 hours. That comes to $9,600, plus $100 for the AI subscription, so one engineer month costs about $9,700.
Updog costs $19 a month per production domain and is free during development. To keep the comparison fair, say your product serves ten clients and each one runs on its own domain, so the subscription is $190 a month. Every month of building buys more than four years of that subscription, and my two month deadline was worth more than eight. The exact numbers move with the team and the market, but the shape holds, and pricing the engineer at a higher rate only stretches the years further.
I would understand the debate if the alternative were expensive. Some import tools cost hundreds of dollars a month and some are priced through a sales call, as the pricing section of my roundup of CSV importers shows, and against those the build case is a real exercise where you model volumes, compare a year of fees to a quarter of engineering, and can end up deciding to build. Against $19 a month the exercise collapses before the spreadsheet is open.
What the two months do not include
The math above assumes the build finishes on time, and this is where my own two months fell apart. That early version reads clean files. Real files arrive from German Excel with semicolons for delimiters, from exports with a title row above the headers, and from spreadsheets where the dates flipped between 3/4 and 4/3 depending on who saved them last. I collected the full list in a separate post about common CSV import errors, and the honest summary is that the supply of broken files does not run out.
Past parsing, the person importing the file needs a way to fix what the validation finds, and the list of what that takes keeps growing. Add an editor where the data can be fixed in place. Add filters that narrow a big file down to the rows that need attention. Add search and replace for the mistakes that repeat across rows, and undo for the fixes that go wrong. Add a way to fix many rows at once, the same way a spreadsheet formula fills a whole column instead of touching each cell by hand. Add clipboard support and cell selection, because the person has used Excel or Google Sheets for years and expects the same here. Add keyboard navigation. Add accessibility, so a screen reader can describe what a cell holds. Add right-to-left rendering, because some of the languages a real product supports are read that way, and a good editor has to know how to draw that too. Add performance that holds at 200,000 rows without the browser tab freezing. None of this is in the first demo, and all of it is the product.
The build is never finished
Say the team ships anyway, late but working. The importer now has an owner, and the owner is the team. Every broken file a user uploads becomes a ticket, and every request that sounded out of scope lands on the same backlog as the product itself, whether that is Excel support, larger files, or a second import flow for a second data type. AI made the first version cheap to write, but it did not make the years after it cheap to own, and every sprint the importer takes is a sprint the product does not get.
When building is the right call
The math is not one sided, and pretending it is would waste your time.
If your users are one known partner sending one known file shape, you do not need an import product yet. An open source parser and a hundred lines of glue is the right build for that one shape, and AI will write most of it for you.
If your import is an ongoing pipeline with scheduled jobs, SFTP drops, or recurring feeds, that is server work, and a browser importer is the wrong shape for it, whether you build it or buy it. There are server side platforms made for that world, and that is not the world Updog is built for.
And if data import is the product you sell, the thing your users choose you for, then build it, own every line of it, and take longer than two months.
The case where building was right
That last case is mine. My two months ran out with a version that handled clean files and a growing list of real ones it could not, and I kept building long past the deadline. The only reason that made sense is that the importer had stopped being a side task and had become the product itself, and that product is Updog.
You are probably not in that case. If import is one step in your product, buy that step and spend the two months on the thing your users pay you for. The first version was never the expensive part. The years after it are, and at $19 a month those are the years I would rather own for you.