4 ms·
Show HN: Datamorph – A clean JSON ⇄ CSV converter with auto-detect
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/ https://datamorphio.vercel.app/
Thanks for checking it out!
- cobertos 11mo agoTried 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 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.
- sumit_entr42 11mo agoSorry for this incorrect output. Earlier my code wasn't compatible with deep nested Json. Thanks for pointing that out and now I have successfully modified codebase to support the similar JSONs. You can try it out!! Please feel free to report any more obstacle in app experience.
- zerratar 11mo 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 11mo agoYour api keys are public
- deleted 11mo ago[deleted]
- cluckindan 11mo agoI love the smell of vibe coding in the morning.
- hermitcrab 11mo agoNo engagement from the OP. I guess they are already vibe coding their next masterwork?
- hermitcrab 11mo agoI 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.
- sumit_entr42 11mo agoSorry for the inconvenience. The problem was that my logic was working for few working types and sets of json. So, it wasn't able to recognize your need. So now I have made the logic more robust, so it can handle wide range of json types. Thanks for feedback. Have a Good Day!!
- louiechristie 11mo agoNo unit tests.