← Back to work
Browser-Only Data Workflow / Finance OperationsLive prototype

RekapFlow

Solo product builder

A live, privacy-first React prototype that turns recurring finance or admin spreadsheets into a normalized control report, correction queue, and reviewed local exports—without uploading the file to a server.

Role

Solo product builder

Outcome & status

Live Vercel demonstrator with a synthetic safe-to-inspect sample. It accepts one CSV/XLS/XLSX first worksheet up to 2,000 rows or 5 MB, processes it only in the active browser tab, and produces local review outputs.

Overview

The problem to solve.

RekapFlow is a deliberately narrow service demonstrator, not a general accounting SaaS. It turns one recurring finance or admin spreadsheet into an in-browser control report, correction queue, and reviewed exports. Imported data stays in React memory and never travels to an application server; the public demo uses synthetic data only.

Problem

Recurring spreadsheets are difficult to review when column names, dates, amount formats, and payment statuses vary. Operators need to surface structural issues, correct rows transparently, and hand off review-ready outputs without creating a new data-exposure path.

People

Finance and admin operators working from recurring CSV or Excel exports

Decisions

The choices behind the interface.

Designed the fixed-scope workflow, built the React/Vite prototype, implemented in-browser parsing, bilingual header mapping, normalization, validation, correction/undo, and local export flows; defined its privacy and Vercel security posture.

RekapFlow intentionally has no authentication, database, analytics, cloud persistence, API, OCR, bank feed, or accounting-advice claim. A structural review is not bookkeeping, audit assurance, or proof that source data is correct.

  • Handling English and Indonesian spreadsheet conventions without silently guessing away ambiguity
  • Keeping corrections reversible while ensuring every downstream finding and total recalculates
  • Making the strongest privacy control the absence of a data receiver, while still supporting useful local exports
RekapFlow correction queue showing a flagged record, in-memory correction form, and unresolved review findings.
Correction workflow: operators repair a flagged record, immediately revalidate it, undo safely, and preserve unresolved findings for review.
Implementation

What I built.

Designed the fixed-scope workflow, built the React/Vite prototype, implemented in-browser parsing, bilingual header mapping, normalization, validation, correction/undo, and local export flows; defined its privacy and Vercel security posture.

  • Built the deterministic pipeline from file or manual row through parsing, bilingual header mapping, normalization, validation, reporting, and local export.
  • Implemented corrections as in-memory record overrides, with immediate revalidation and undo back to the normalized imported row.
  • Added structural checks for duplicate references, missing or invalid fields, unknown statuses, negative amounts, and simple outliers.
  • Defined browser-only privacy constraints and Vercel headers, including a Content Security Policy with connect-src 'none'.
System architecture +

File or manual row → import policy → first-sheet parse → column map → normalize → in-memory correction patches → validate → control report, review queue, and local exports. The SheetJS parser is lazy-loaded only for Excel files.

Results

Results, with context.

Live Vercel demonstrator with a synthetic safe-to-inspect sample. It accepts one CSV/XLS/XLSX first worksheet up to 2,000 rows or 5 MB, processes it only in the active browser tab, and produces local review outputs.

The Vercel prototype is live with synthetic demo data. Repository release evidence records passing logic, UI/security-contract, production-build, and audit gates; browser acceptance covered imports, corrections, undo, exports, responsive behavior, and the absence of local persistence.

2,000

Data-row limit

Bounded import policy for one first worksheet.

5 MB

File-size limit

Rejected before parsing when the selected file exceeds this boundary.

0

Data receivers

No backend, analytics, cookies, account system, or client-data transmission.

Lessons & next steps +
  • For sensitive operational data, a simpler architecture can be a stronger product decision when it removes unnecessary data transfer and retention risk.
  • A correction queue is more trustworthy when it distinguishes normalized output from fully reviewed output and keeps unresolved findings explicit.
Technical details

Under the hood.

Technologies & features +

React / Vite / JavaScript / SheetJS (XLSX) / Vercel / CSP

  • CSV, XLS, and XLSX import with first-worksheet-only handling
  • English and Indonesian header detection plus manual mapping confirmation
  • Date, currency, status, and negative-value normalization
  • Issue queue with immediate correction, revalidation, and undo
  • Normalized records, unresolved queue, JSON handoff, and manager-summary exports
  • Synthetic demo data and no browser persistence after reload or Clear data
Feature status & limitations +

Browser-only spreadsheet workflow

working

The live prototype processes its synthetic sample locally and exposes no data-upload backend.

Correction and local export flow

working

Corrections revalidate in memory; normalized CSV, review queue, JSON, and summary exports are supported.

Buyer-specific workflow configuration

prototype

The public product is a scoped demonstrator; any custom schema, rules, and handoff are a separate fixed-scope delivery.

Keep exploring.