A powerful tool for converting between different data formats
Live Demo β’ Report Bug β’ Request Feature
- π 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 β!