Show HN: Datamorph – A clean JSON ⇄ CSV converter with auto-detect

datamorphio.vercel.app

12 points by sumit_entr42 4 days ago

Hi everyone,

I built a small web tool called Datamorph because I kept running into JSON/CSV converters that either broke with nested data, required login, or added weird formatting.

Datamorph is a minimal, fast, no-login tool that can:

• Convert JSON → CSV and CSV → JSON • Auto-detect structure (arrays, nested objects, mixed data) • Handle uploads or manual text input • Beautify / fix invalid JSON • Give clean, flat CSV output for real-world messy data

It’s built with React + Supabase + serverless functions. Everything runs client-side except file parsing, so nothing is stored.

I know there are many similar tools, but I tried focusing on:

• better handling of nested JSON, • simpler UI, • zero ads / zero login, • instant conversion without waiting.

Would love feedback on edge cases it fails on, or features you think would make this actually useful for devs and analysts.

Live tool: https://datamorphio.vercel.app/

Thanks for checking it out!

cobertos 5 hours ago

Tried it on a 9.9MB json file I have. Seemed to handle the size fine, but the output was nothing like what I would want. I made a smaller version of what I uploaded in the below pastebin and the output.

The data is TLD data so it should have at least given me the "com", "net", "..." part

Input

https://pastebin.com/QAWeu8Xt

Output

    category,addedToListPrice,appliesToCustomers,amountRateType,amountRate,type
    fee_tax,false,eu,percent-varies-by-location,~,vat
    fee_tax,false,in,percent,15,gst
    fee_tax,false,au,percent,10,gst
    fee_tax,false,eu,percent-varies-by-location,~,vat
An explanation of _how_ it does the conversion would be nice when choosing a tool like this. As the "just works" didn't seem to work.
hermitcrab an hour ago

I tried converting this:

[

  {

    "name": "Avocado Dip",

    "carb": 2,

    "cholesterol": 5,

    "fiber": 0,

    "minerals": {

      "ca": 0,

      "fe": 0

    },

    "protein": 1,

    "sodium": 210,

    "vitamins": {

      "a": 0,

      "c": 0

    }

  }
]

And I got:

name,carb,cholesterol,fiber,minerals,protein,sodium,vitamins

Avocado Dip,2,5,0,"{""ca"":0,""fe"":0}",1,210,"{""a"":0,""c"":0}"

Which is not what I would expect.

zerratar 3 hours ago

{ "data": { "field1": "hello", "test": [ "what", "is", "this" ] }, "something": "yay" }

becomes

data,something [object Object],yay

I already knew complex types / nested objects would not work. but what makes json stronger than csv is that you can handle more complex data types and most people will use json that way too. Otherwise json would just be a less bloated xml, which is a less bloated csv. lol

kihyug6i 3 hours ago

Your api keys are public