DEV Community

jack
jack

Posted on

I built SheetViz – turn CSV/Excel into shareable charts in seconds (no signup)

The problem I was solving

I kept running into the same situation: someone shares a CSV, I need a quick visual, but opening Excel or Google Sheets just to make one chart felt like overkill.

I wanted something like:

Drop file → see chart → share link. Done.

That's SheetViz.


What it does

  • Upload CSV or XLSX — or just paste raw data
  • Auto field detection — figures out which columns are strings, numbers, or dates
  • Chart recommendations — suggests bar, line, pie, or scatter based on your data shape
  • PNG export — one click
  • Shareable static links — no account, no login wall

Try it: sheetviz.shop


Tech stack

Layer Choice Why
Framework Next.js 14 (App Router) Fast SSR + static export
Styling Tailwind CSS No-brainer for quick UI
Charts ECharts Powerful, flexible, good defaults
CSV parsing PapaParse Battle-tested, handles edge cases
Excel parsing SheetJS Industry standard for XLSX
Hosting Cloudflare Pages Free, fast, auto-deploy from GitHub

The chart recommendation logic

This was the most interesting part to build. The heuristic:

  1. Count columns by type (numeric vs. categorical vs. date)
  2. Count unique values in categorical columns
  3. Apply rules:
    • Date column + numeric column → line chart
    • One categorical (≤ 6 unique) + one numeric → pie chart
    • One categorical + one numeric → bar chart
    • Two numeric columns → scatter plot
    • Default → bar chart

It's simple but covers 80% of real-world cases. PRs welcome for edge cases.


Lessons learned

What went well:

  • ECharts' responsive config made mobile support almost free
  • PapaParse's dynamicTyping: true handles number detection cleanly
  • Cloudflare Pages + GitHub = zero-config CI/CD

What I'd do differently:

  • Add a data preview step before rendering the chart
  • Support multi-series charts earlier (currently single-series only)
  • Add column selection UI instead of auto-picking

What's next

  • [ ] Multi-series support
  • [ ] More chart types (area, histogram, heatmap)
  • [ ] Shareable embed codes
  • [ ] Data transformation (filter, sort, group by)

Try it / feedback welcome

🔗 sheetviz.shop

Would love feedback on:

  • The chart recommendation logic — what rules would you add?
  • What chart types matter most to you?
  • Any data formats I'm missing?

Built with Next.js, ECharts, and too much coffee.

Top comments (0)