- 🔄 Multi-format Conversion: Convert between JSON, XML, YAML, CSV, and Plain Text
- 🚀 Real-time Processing: Instant conversion as you type
- 🎯 Auto-detection: Automatically detects input format
- 🎨 Syntax Highlighting: Beautiful Monaco Editor with syntax highlighting
- 📱 Responsive Design: Works perfectly on desktop and mobile
- 🌙 Dark Theme: Eye-friendly dark interface
- 📋 Copy to Clipboard: Easy copying of input and output
- ⚡ Fast & Efficient: Built with performance in mind
- 🔄 Swap Panels: Quickly swap input and output
- ✅ Format Validation: Real-time validation with error messages
- Node.js 22+
- pnpm
-
Clone the repository
git clone https://github.com/isaias-alt/format-x.git cd format-x -
Install dependencies
pnpm install
-
Run the development server
pnpm dev
-
Open your browser
Navigate to http://localhost:3000
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS 4
- UI Components: shadcn/ui
- Code Editor: Monaco Editor
- Icons: Lucide React
- Notifications: Sonner
- Deployment: Vercel
format-x/
├── public/
│ ├── logo.png
│ ├── og.webp
│ ├── robots.txt
│ └── site.webmanifest
├── src/
│ ├── app/
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ └── sitemap.ts
│ ├── components/
│ │ ├── converter/
│ │ │ ├── converter-panels.tsx
│ │ │ ├── format-controls.tsx
│ │ │ ├── input-panel.tsx
│ │ │ ├── output-panel.tsx
│ │ │ └── status-bar.tsx
│ │ ├── ui/
│ │ │ ├── button.tsx
│ │ │ └── select.tsx
│ │ ├── code-editor.tsx
│ │ ├── footer.tsx
│ │ ├── header.tsx
│ │ └── monaco-loader.tsx
│ ├── hooks/
│ │ ├── useConverter.ts
│ │ └── useConverterActions.ts
│ └── lib/
│ ├── clipboard.ts
│ ├── constants.ts
│ ├── converters.ts
│ ├── formatDetector.ts
│ ├── formatters.ts
│ └── utils.ts
├── LICENSE
├── README.md
├── CONTRIBUTING.md
└── package.json
{
"name": "John Doe",
"age": 30,
"skills": ["JavaScript", "React", "Node.js"]
}Converts to:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name>John Doe</name>
<age>30</age>
<skills>
<item_0>JavaScript</item_0>
<item_1>React</item_1>
<item_2>Node.js</item_2>
</skills>
</root>name: John Doe
age: 30
skills:
- JavaScript
- React
- Node.jsname: John Doe
age: 30
email: john@example.com
Converts to:
{
"name": "John Doe",
"age": "30",
"email": "john@example.com"
}Please read our Contributing Guide to learn how you can help make Format-X even better.
- Fork the project
- Create your feature branch (
git switch -c feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Thanks goes to these wonderful people:
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework for Production
- Tailwind CSS - A utility-first CSS framework
- Monaco Editor - The code editor that powers VS Code
- shadcn/ui - Beautifully designed components
- Lucide - Beautiful & consistent icons
- Vercel - Platform for deployment and hosting
Lucas Casco
- Website: lucasco.dev
- GitHub: @isaias-alt
- 🐦 or X (whatever the freak you wanna call it): @lucascodev
Made with ❤️ by Lucas Casco
If you found this project helpful, please consider giving it a ⭐!
