I shipped a 141-row crypto card comparison site on a public CSV instead of a database back in February, and I want to write down what I have learned three months in. The earlier posts covered why I picked CSV ( why a CSV beats a database for this ) and what I would do differently on the architecture side ( six lessons-learned from shipping a Next.js 15 + CSV side project ). This is the operational version. What broke ISR cache went stale faster than I expected. Setting revalidate = 86400 on card detail pages felt safe in dev. In production, when I edited the CSV and pushed, the new content took up to 24 hours to surface on cold pages because Vercel only revalidates on traffic. I added a /api/revalidate webhook that I hit from a small script after every CSV change. That fixed the lag, but it adds a step I forget half the time. PapaParse parsing in a Server Component blew up once when a column contained a comma inside quoted text and the quoting was wrong.…