Live Demo: https://jsonindenter.com/
A professional, secure, and feature-rich JSON formatting, validation, and conversion tool. Built with React + TypeScript, running entirely in your browser with zero data transmission.
- JSON Formatter - Pretty-print and indent JSON with customizable options
- JSON Validator - Validate JSON syntax and structure in real-time
- JSON Minifier - Compress JSON to reduce file size
- Format Conversions:
- JSON ↔ CSV
- JSON ↔ XML
- JSON ↔ YAML
- JSON ↔ TOML
- JSON → TypeScript Types
- JSON Schema Generator - Auto-generate JSON schemas from your data
- Dark Mode - Eye-friendly interface with theme persistence
- 100% Client-Side - All processing happens locally, your data never leaves your browser
- No Registration - Use immediately without creating an account
- Open Source - MIT Licensed, community-driven development
🌐 Try it now: https://jsonindenter.com/ - No installation required!
- Node.js 18+
- npm or pnpm
# Clone the repository
git clone https://github.com/tahmidh/jsonindenter.git
cd jsonindenter
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThe application will be available at http://localhost:5173
Production Site: https://jsonindenter.com/
- Frontend Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- State Management: Zustand + React Context API
- Code Quality: ESLint + TypeScript strict mode
- Routing: React Router v7
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build locally
npm run lint # Run ESLint
npm run generate-sitemap # Generate sitemap
npm run create-blog-post # Create new blog post (automated)src/
├── components/ # Reusable UI components
├── pages/ # Application pages/routes
├── hooks/ # Custom React hooks
├── utils/ # Utility functions
├── store/ # Zustand stores (state management)
├── config/ # Configuration files
├── constants/ # App constants (routes, etc.)
├── data/ # Static data (blog content, etc.)
└── types/ # TypeScript type definitions
This project uses shadcn/ui for consistent, accessible UI components. All components are customizable and built on top of Radix UI.
- Zero Data Collection: All processing happens in your browser
- No Server Uploads: Your data is never sent to any server
- Open Source: Code is transparent and auditable
- No Tracking: No analytics or user tracking (by default)
- HTTPS Only: Secure connections enforced
We welcome contributions! Please see CONTRIBUTING.md for detailed guidelines on:
- How to report bugs
- How to suggest features
- How to submit pull requests
- Code style and standards
- Development workflow
Found a bug? Please open an issue with:
- Description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Browser and OS information
- Screenshots/screen recordings if applicable
Have an idea? Open an issue with:
- Clear description of the feature
- Use cases and benefits
- Examples if applicable
- Any relevant mockups or designs
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with React
- Styled with Tailwind CSS
- Icons from Lucide React
- Editor powered by Monaco Editor
- Code quality maintained with ESLint
For questions or support:
- Live Application: https://jsonindenter.com/
- Open an issue on GitHub
- Email: support@jsonindenter.com
- Check existing issues for solutions
See ROADMAP.md for planned features and improvements.
Made with ❤️ by the JSON Indenter community