JsonFlow is a fast, privacy-friendly JSON formatter and validator that runs entirely in your browser. No data is sent to any server - all processing happens locally on your device. Perfect for developers who need to quickly format, validate, minify, or convert JSON data.
- π JSON Compare: Compare two JSON documents and visualize differences (added, removed, modified, type changes)
- π Smart JSON Editor: Monaco Editor with syntax highlighting, line numbers, auto-indentation, and bracket matching
- π¨ Format & Beautify: Pretty-print JSON with configurable indentation (2/4/8 spaces or tabs)
- ποΈ Minify: Compress JSON to single-line format
- β Real-time Validation: Instant error detection with line number and error message
- π₯ Copy & Download: One-click copy to clipboard or download as
.json/.txtfile - π³ Tree View: Expandable/collapsible tree view for easy JSON navigation
- π Conversion Tools: Convert JSON to YAML, XML, CSV, or plain text
- π Search & Navigate: Search within JSON, jump to specific lines
- π Dark Mode: Beautiful dark/light theme toggle
- π± Fully Responsive: Works on desktop, tablet, and mobile
- π Privacy First: Your JSON never leaves your browser
- Core: Next.js 15 (App Router), React 19
- Styling: Tailwind CSS 4, Shadcn UI
- Editor: Monaco Editor (same editor as VS Code)
- Icons: Lucide React
- YAML: js-yaml
- Infrastructure: TypeScript for type safety
- Node.js 18+
- pnpm / npm / yarn
-
Clone the repository:
git clone https://github.com/montasim/JsonFlow.git cd JsonFlow -
Install dependencies:
pnpm install
-
Environment Setup: Copy the
.env.examplefile to.env.local:cp .env.example .env.local
Update the variables in
.env.localif needed:NEXT_PUBLIC_APP_NAME=JsonFlow NEXT_PUBLIC_APP_URL=https://github.com/montasim/JsonFlow NEXT_PUBLIC_CONTACT_EMAIL=montasimmamun@gmail.com
-
Run the development server:
pnpm dev
-
Open the browser: Navigate to http://localhost:3000
βββ app/ # Next.js App Router (Pages & Layouts)
β βββ contact/ # Contact page
β βββ privacy/ # Privacy policy
β βββ terms/ # Terms of service
β βββ layout.tsx # Root layout
β βββ page.tsx # Main JSON formatter page
β βββ globals.css # Global styles
βββ components/ # Reusable UI components
β βββ ui/ # shadcn/ui components
β βββ json-editor.tsx # Monaco Editor wrapper
β βββ json-tree-view.tsx # Expandable tree view
β βββ json-toolbar.tsx # Action buttons toolbar
β βββ json-settings.tsx # Indentation settings
β βββ json-converter.tsx # Main component
β βββ layout.tsx # App layout components
βββ lib/ # Logic, helpers, and utilities
β βββ hooks.ts # Custom React hooks
β βββ json-utils.ts # JSON format, minify, validate
β βββ json-conversions.ts # JSON to YAML, XML, CSV converters
β βββ constants.ts # Default settings
β βββ utils.ts # Utility functions
βββ public/ # Static assets
| Shortcut | Action |
|---|---|
Ctrl + Enter |
Format JSON |
Ctrl + Shift + M |
Minify JSON |
Ctrl + C |
Copy to clipboard |
Ctrl + S |
Download JSON |
- No server-side processing: All JSON formatting happens in your browser
- No data storage: Your JSON is never stored or logged
- No tracking: No analytics or tracking scripts
- Open source: All code is transparent and auditable
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by r3tr0
