DATA TOOLS / INTERACTIVE DEMO

Data Tidy

A small browser tool for everyday CSV cleanup. Trim extra spaces, remove blank rows and duplicates, then preview and download the result without uploading your data.

Try the demo Behind the build
TypeScriptCSV parsingBrowser APIs
All projects

Parse quoted fields, commas, and embedded line breaks

Choose your cleanup rules and inspect the result

Download CSV with optional spreadsheet formula protection

A SMALL TOOL FOR MESSY DATA

Clean it up. Keep it yours.

Processed in your browser

Comma-separated CSV, including quoted fields and line breaks. Up to 2,000 rows, 50 columns, and 120,000 characters. Your text is not uploaded or saved.

Choose your cleanup
3Data rows ready
1Blank rows removed
1Duplicates removed

Cleaned preview

Updates as you edit
Cleaned CSV preview showing up to ten data rows
NameRoleCity
AdaDeveloperNairobi
SamDesignerAccra
Mina, Jr.CreatorLagos

Showing all 3 data rows. The header is included in your download.

This is a frontend demonstration. There are no accounts, backend APIs, or shared databases.

BEHIND THE BUILD / DATA TIDY

Show what changed before downloading the result.

Look inside the parsing, cleanup rules, and export decisions behind this browser tool.

Download demo source

THE IDEA

Start with a useful interaction.

Small CSV files often need a few practical fixes: extra spaces, blank rows, or duplicated records. Data Tidy makes those choices visible and lets you inspect the result before exporting it.

The browser parses the pasted text, applies the selected cleanup rules, and creates the download locally. The preview and counts update as the input changes. The CSV text is not uploaded by this tool.

CSV parsing · explicit cleanup rules · local export

TRY IT FOR YOURSELF

Three small things to explore.

  1. Start with the sample CSV

    Keep the header, trim cells, and compare the blank-row and duplicate counts.

  2. Include a quoted value with a comma

    A value such as “Mina, Jr.” stays in one field rather than becoming two columns.

  3. Review the preview and export

    The download includes every cleaned row. Check the text-protection option before opening it in a spreadsheet.

Try these steps in the demo

THE CHOICES THAT MATTER

A little reasoning behind the interface.

01

Parse fields before cleaning rows

A CSV field can contain a comma, an escaped quote, or a line break. The parser tracks quoted fields rather than splitting every line on commas. It handles a byte-order mark and common line endings, and explains malformed quotes instead of guessing at their meaning.

02

Let the user choose the transformation

Trimming, blank-row removal, and duplicate removal are separate controls. Duplicate checks compare complete row arrays, and a selected header is kept separate from the data. Rows with unequal widths are shown with padding in the preview while the download preserves their actual fields.

03

Make export behaviour explicit

Optional spreadsheet text protection prefixes formula-like cells with an apostrophe and reports how many cells change. It also affects negative-number text, so the toggle matters. The download correctly quotes special fields and includes all cleaned rows, not just the preview.

The edges deserve attention, too.

  • Quoted commas, doubled quotes, embedded line breaks, empty fields, and CR/LF line endings.
  • Malformed or unclosed quotes, with a useful parsing message instead of a partial export.
  • Header-only files, duplicate data matching a header, and rows with different field counts.
  • Formula markers preceded by whitespace and negative-number text during protected export.

What this version covers.

Comma-separated text only, with limits of 120,000 characters, 2,000 parsed rows, and 50 columns per row.

The preview shows at most ten data rows. This tool does not import Excel workbooks, infer data types, merge near-duplicates, or save your input between visits.

A sensible next step

For a repeated business workflow, agree the data rules first. The same sequence—validate, transform, inspect, export—could then become an automated process with a record of each run.

Open the source. Follow the decisions.

The download contains the demo’s actual source files and a short guide. It is a source extract for reading and reuse within a React project, rather than a separate installed app.

  • src/components/projects/data-tidy.tsx
  • src/lib/demo-utils.ts
  • src/lib/demo-utils.test.ts

Keep exploring.

All projects

HAVE SOMETHING IN MIND?

Need something built around you?

Share the problem. We can work out the right tool together.

Let’s talk (opens in a new tab)