Overview
CleanSheet solves the friction of ingesting irregular tabular data. Built with React, TypeScript, and high-performance in-browser parsing (PapaParse), CleanSheet turns messy customer exports into reliable, strictly validated datasets without uploading raw files to external servers.
The Problem: Fragile Ingestion Pipelines
Every engineering and operations team deals with messy spreadsheets:
- Missing required headers and swapped column positions.
- Invalid email formats, irregular dates (DD/MM vs MM/DD), and unescaped commas.
- Inconsistent casing and trailing whitespace that breaks database uniqueness constraints.
- Sensitive customer data accidentally sent to third-party cloud transformation services.
CleanSheet intercepts this data at the client level, allowing operators and developers to validate and clean data in an isolated browser sandbox before it enters production databases or CRMs.
Verified 5-Step Workflow
- Select or Import File: Drag and drop any CSV or spreadsheet export into the browser window.
- Inspect Columns & Structure: Automatically detect delimiters, headers, and column data types.
- Configure Schema & Rules: Select a preset (e.g., Stripe Customer Import, CRM) or define custom field constraints (required, email, number, date, string).
- Review & Auto-Correct: Review detected invalid rows with highlighted syntax issues, and apply one-click automated fixes.
- Export Clean Data: Download sanitized CSV or structured JSON files directly from memory, or dispatch directly to a configured webhook.
Verified Implementation Features
| Capability | Implementation Details | Technical Verification |
|---|---|---|
| Client-Side Engine | PapaParse in-browser parser with streaming support | Zero network requests during file upload and parsing |
| Schema Validation | Strict type checking (String, Number, Email, Date, Boolean) | Unit tested in cleansheet.test.ts |
| Presets Engine | Stripe Customer Import preset with predefined schema rules | Verified in cleansheet.ts |
| Freemium Quota | 200 rows/day free tier tracked in localStorage |
Enforced client-side before processing |
| Webhook Dispatcher | Direct browser-to-endpoint POST with structured payload | Dispatches directly from client fetch API |
| Local Downloads | Browser blob generation for CSV and JSON outputs | Direct download links created via ObjectURL |
Privacy Architecture & Data Boundaries
Unlike conventional SaaS spreadsheet cleaners, CleanSheet does not require you to upload proprietary files to an Oompha Labs backend.
Exceptions to Local-Only Processing
To maintain transparency, the following actions involve external network communication:
- Webhook Dispatch: If you explicitly enter a webhook URL (such as a Zapier, Make, or custom API endpoint) and click "Dispatch", your browser will send an HTTP POST containing the sanitized data directly to your designated destination. Oompha Labs does not proxy or inspect this traffic.
- Static Assets: Loading the application downloads static JS, CSS, and font bundles from the hosting origin.
- Billing Checkouts: Upgrading via the Stripe payment link redirects to Stripe's secure checkout page.
Quotas & Billing Model
CleanSheet operates on a freemium model:
- Free Tier: Process up to 200 rows per calendar day at no cost. Quota is tracked locally in your browser storage.
- Unlimited Plan: An unlimited processing tier is available via Stripe checkout. Note: Payment configuration and live billing activation require verified merchant credentials before commercial launch.
The current implementation connects to a Stripe Payment Link endpoint configured for review and testing. Live payment activation is subject to completed business registration and merchant account approval.
Repository & Technical Documentation
The source code and test suite for CleanSheet are maintained in the official repository:
Repository: github.com/mojo-jojodev/cleansheet-csv
For questions regarding CleanSheet deployment, enterprise customization, or webhook integrations, contact support@oomphalabs.com.