Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Replacing Excel with a Next.js Web App: A Dev's Playbook

Description and use

Migrated from a 40‑tab Excel file to a Next.js web app with PostgreSQL, adding audit logs, role‑based access, and parallel runs for a smooth transition.

Problem

A business relies on a 40‑tab Excel file for orders, inventory, staff, and reporting, leading to silent formula errors and a three‑day month‑end copy‑paste ritual.

Outcome

The migration reduced manual errors, provided an audit trail, enabled role‑based access, and improved usability on mobile devices, delivering value within weeks.

Workflow

  • Map every sheet and interview users to identify entities and relationships.
  • Build a data model (customers, orders, products, users, approvals).
  • Create an import pipeline using SheetJS, normalize data, dedupe with fuzzy matching, and present a diff for review.
  • Set up Next.js (App Router) with server components and server actions.
  • Configure PostgreSQL with constraints and audit trails.
  • Implement row‑level security policies for role‑based access.
  • Add background jobs for reminders, report generation, and integrations.
  • Run the new app alongside the old sheets, investigate discrepancies.
  • Log actor, timestamp, old value, and new value on every mutation.
  • Write Playwright end‑to‑end tests for critical business paths.
  • Phase the migration by replacing the most painful workflow first.
  • Decommission the spreadsheet after parallel runs.

Evidence

Data cleanup is 40% of the work. Years of free‑text entries mean 'Acme Corp', 'ACME', and 'acme corp.' are three different customers.

Source

We log actor, timestamp, old value, new value on every meaningful mutation.

Source

We run Playwright end‑to‑end tests over the critical paths — submit order to approve to dispatch — because that's what the business actually does.

Source

  • Record date: 2026-10-23T07:11:27.211Z