-
-
A local CSV inspection workflow with a clearly labelled fictional sample.
-
The selected cell retains its leading zero; exact text is shown alongside the review queue.
-
Verified text workbook, unchanged original CSV and content-free integrity receipt downloads.
-
Literal values and conversion-risk locations without automatic type inference.
Inspiration
A CSV can contain the right characters while a spreadsheet shows a different value. A postal code like 00604 may look like 604; a long identifier may be interpreted as a number. The first useful question is whether the original file still contains the intended text.
CSV Preflight grew from two public Reddit reports about leading-zero ZIP codes and long account identifiers. These are problem signals, not customer interviews or measured demand. The intended audience is operations staff and analysts reviewing small CSV exports before handing them to another system.
What it does
CSV Preflight opens a local UTF-8, comma-delimited CSV and shows its literal values without guessing column types or treating the first record as a header. Four checks locate leading-zero digit strings, identifiers longer than 15 digits, numeric E-notation patterns, and formula-looking text. Selecting a finding reveals the exact string, including whitespace and embedded line breaks.
The export step produces three separate artifacts:
- The original CSV, with its bytes unchanged.
- A review workbook that stores nonempty cells as text and checks them against the source before enabling download.
- A JSON integrity receipt with source/workbook hashes, dimensions, risk counts and verification results. It excludes cell contents and source filenames.
All file processing happens in the browser tab. The app has no runtime AI service, account, file-upload endpoint or paid API. Reset/reload clears the in-memory session. The static host still receives normal requests for the application and its assets.
How it was built
This is a new project built during the challenge with Codex and the official Devpost Learn Skill Pack. The pack was installed before application code. Scope, product requirements, technical design and build order were reviewed together, then implemented in two verified slices. The first usable prototype received entrant feedback before the integrity handoff was completed. The public repository includes the planning documents, build checklist and application map.
TypeScript and Vite provide the app; Papa Parse handles CSV parsing; ExcelJS and JSZip support workbook creation and bounded XML corrections. Web Crypto creates SHA-256 hashes. Node.js tests and Python/openpyxl provide complementary verification. Git and npm support the development workflow. Real-browser checks and demo captures used Codex's internal browser; FFmpeg assembles the silent demo. An earlier private prototype used ChatGPT Sites. The approved public release uses GitHub Pages and Cloudflare DNS on the entrant's existing domain.
Challenges and build insights
Preserving strings required checking more than the visible table. Mixed record endings and a second literal byte-order-mark character needed careful parser handling. Workbook serialization also changed carriage returns, DEL characters and escape-looking tokens until explicit round-trip checks exposed the differences.
Those defects led to a clearer contract: preserve source bytes separately, compare exported cell values to the parsed source, and use an independent workbook reader in tests. Blank fields are equivalent to blank workbook cells only inside the declared data rectangle. A regression test also rejects a workbook with the correct dimensions but different values.
Results and limits
The final build passes 28 tests, including four workbook fixtures checked independently with openpyxl. Independent review exercised 2,000 deterministic parser round trips. Actual browser downloads were checked for byte identity, exact sample values and matching receipt hashes. A 390-pixel-wide layout was also exercised.
This is a bounded review tool, not a data-repair service. It supports files up to 2 MiB, 5,000 logical records and 50 columns. It cannot recover digits already missing from the source, replace CSV in a CSV-only destination, or guarantee how every spreadsheet product behaves. Native Excel and Google Sheets compatibility has not been directly tested. Microsoft already provides text-import and conversion controls; CSV Preflight adds a focused inspection and verifiable handoff workflow.
Next steps
Potential extensions include explicit delimiter/encoding choices and comparison against a second file. They are outside this proof of concept.
Problem references: leading-zero report and long-identifier report. All bundled and demonstrated data is fictional. Standard libraries and the official skill pack are attributed in the repository; no earlier competition app code was reused.
Built With
- chatgpt-sites
- cloudflare
- codex
- css3
- devpost-learn
- exceljs
- ffmpeg
- git
- github
- html5
- jszip
- node.js
- npm
- openpyxl
- papaparse
- python
- typescript
- vite
- web-crypto-api
Log in or sign up for Devpost to join the conversation.