Skip to content
Elias Al-Sumairi logoCV (resume PDF download)
← Back to projects

Insightly

Drop in a CSV and get the story, without the file ever leaving your browser.

Live
Year
2026
Role
Solo developer
Links
Live site ↗Code on GitHub ↗

tryinsightly.vercel.app

Insightly screenshot
Open in new tab ↗

Insightly: live demo

The problem

Getting a quick, honest read on a messy dataset usually means uploading it to a service or writing code first.

The solution

Insightly is a privacy-first data profiling tool. You drop in a CSV and it scores data quality, charts the distributions and writes plain-English insights, all inside the browser.

  • Detects the delimiter and column types, with manual override.
  • Gives a 0 to 100 data quality score with a transparent breakdown.
  • Per-column statistics, histograms, category bars, time series, scatter plots, a correlation heatmap and box plots.
  • Writes 8 to 12 ranked plain-English insights ("Whispers"), each a pure function in its own file.
  • Cleaning helpers with a before and after score, a virtualised table for 50,000+ rows, and PDF, HTML and Markdown export.

Key screens

  • Insightly example report with a quality score of 92 and ranked findings
    Example report: quality score, column profile and ranked findings.
  • Insightly landing page in dark mode with a CSV drop zone, three sample files and an example report table highlighting inconsistent values
    Landing page in dark mode: drop a CSV or open a sample.
  • Insightly overview tab for messy-customers.csv showing a quality score of 92, Grade A, 15% missing cells and the top findings
    Overview: quality score with its breakdown and the top findings.
  • Insightly Whispers tab listing 12 plain-English insights ranked by importance, including missing values, outliers and inconsistent casing
    Whispers: 12 plain-English insights, ranked by importance.
  • Insightly Charts tab for ecommerce-sales.csv with a monthly time-series line chart and a correlation heatmap
    Charts: time series by month and a correlation heatmap.
  • Insightly correlation heatmap across three numeric columns, a scatter plot of quantity against unit price and a histogram of quantity
    Correlation heatmap, scatter plot and distribution histogram.
  • Insightly Clean tab showing the quality score rising from 91.6 to 95.3 after one-click cleaning actions
    Clean: one-click fixes with a before and after score (91.6 to 95.3).
  • Privacy proof: a file opened, analysed and exported with 0 requests to other sites, 0 uploads and 0 requests containing file data
    Privacy, measured: zero uploads or third-party requests, recorded with Playwright.
  • Offline proof: with the network off, the page reloads from the local cache and the file is still parsed and analysed
    Works offline: network off, page reloaded, file analysed anyway.
  • Insightly upload screen on a phone
    Mobile: drop a CSV or open a sample.

Technical decisions

Files never leave the browser

Parsing and analysis run in a Web Worker so the interface stays responsive. A Content-Security-Policy restricts network connections, and the README shows how anyone can verify the privacy claim in the browser's Network tab.

Tested like a product

226 unit and component tests, plus 8 Playwright end-to-end and accessibility tests, each run on desktop and a 375px mobile viewport. Strict TypeScript and GitHub Actions CI on every change.

Stack & credits

  • Next.js 14 (static export)
  • TypeScript
  • Tailwind CSS
  • Recharts
  • Papaparse
  • jsPDF
  • Vitest
  • Playwright

More projects