Skip to content

Navid's Blog

Ideas, Experiments, and Lessons Learned

Menu
Menu

We Replaced Our Database with a CSV File

Posted on March 11, 2026 by Navid

Three months ago, I replaced a PostgreSQL database with a single CSV file. The app got faster, simpler, and our team stopped spending weekends fixing deployment issues.

The Situation

We had a small internal dashboard. It tracked employee requests, managed approvals, and stored some basic analytics. Nothing fancy. But somehow, this “simple” app required:

  • A Kubernetes cluster
  • PostgreSQL with read replicas
  • A Redis cache layer
  • Three microservices that barely talked to each other
  • Full CI/CD pipeline with staging and production

For a tool used by 15 people. Daily.

What We Actually Needed

I sat down and asked: what’s the real requirement here?

  • 15 users max
  • Maybe 500 requests per month
  • No concurrent editing conflicts
  • Data changes maybe twice a week
  • Export to Excel was the #1 feature request

We built a spaceship to deliver pizza.

The CSV Approach

Now, I’m not saying CSVs are the answer to everything. But for this case:

  • Data lives in a shared Google Sheet
  • App reads CSV on startup (cached for 5 minutes)
  • Writes go to a temporary file, then replace the main file
  • No database server, no migrations, no connection pools

Deployment? Copy one file to an S3 bucket. That’s it.

The Trade-offs

Let me be honest about what we gave up:

  • No real-time updates — users see data that’s up to 5 minutes old
  • No complex queries — filtering is basic
  • Concurrency issues — two people editing at once means problems
  • No authentication — we relied on “it’s an internal tool, who cares”

But for 15 people doing approvals on a Monday morning? That’s acceptable.

What I Learned

Not every app needs a database. Not every tool needs Kubernetes. Not every team needs microservices.

We spent more time maintaining our infrastructure than building features. We had operational stress over a spreadsheet replacement.

Before you reach for the database, ask yourself: what’s the simplest thing that could actually work? Sometimes the answer is surprisingly primitive.

We’re now a team of 2 people maintaining this tool. It costs us $3/month to run. And it works.

Categories

  • AI Experiments
  • Coding
  • Debugging Stories
  • Hot Takes
  • Ideas
  • Lessons Learned
  • Project Management
  • Uncategorized
  • Vibe Coding

Recent Posts

  • How I Handled My First Production Outage (And What I Learned)
  • I Finally Fixed Our Slow Database Queries — Here’s What Actually Worked
  • I Finally Fixed Our Slow Database Queries — Here’s What Actually Worked
  • Why I Stopped Using Microservices for Small Projects
  • I Gave AI Full Access to Our Production Database. Here’s What Happened