Show HN: Datamorph – A clean JSON ⇄ CSV converter with auto-detect
datamorphio.vercel.appHi 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!
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
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.I tried converting this:
[
]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.
{ "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
Your api keys are public