A modern, interactive web application for visualizing and working with JSON data. Built with Next.js, TypeScript, and cutting-edge browser technologies.
💡 I'm building it myself to learn, experiment, and grow as a developer.

This project is not about reinventing the wheel — it's about understanding how the wheel works.
🔨 Learning Focus Areas:
- TypeScript and React 19 with Next.js 15
- Browser Storage internals (IndexedDB with Dexie)
- Data parsing, validation, and JSON manipulation
- Event-driven architecture and state management (Zustand)
- UI/UX design with Tailwind CSS and Radix UI
- Monaco Editor integration and customization
🧩 Core Concepts Explored:
- File system simulation in the browser
- Real-time JSON validation and parsing
- Tree data structure visualization
- Theme system implementation
- Keyboard shortcuts and accessibility
Feature Category | Feature | Status | Implementation Details |
---|---|---|---|
Core Functionality | Load JSON input (paste/type) | ✅ Complete | Monaco Editor integration with real-time validation |
File upload support | ✅ Complete | Drag & drop and file picker with format validation | |
Display JSON in tree view | ✅ Complete | react-json-tree with custom theming | |
Expand/collapse nodes | ✅ Complete | Configurable expansion levels, keyboard shortcuts | |
JSON formatting | ✅ Complete | Built-in Monaco Editor formatting commands | |
JSON minification | ✅ Complete | Custom implementation with error handling | |
File Management | Multiple file support | ✅ Complete | Browser-based file system using IndexedDB |
File persistence | ✅ Complete | Dexie.js for efficient IndexedDB operations | |
File operations (CRUD) | ✅ Complete | Create, read, update, delete, rename files | |
Auto-save functionality | ✅ Complete | Real-time saving with debounced updates | |
File explorer sidebar | ✅ Complete | Sortable file list with metadata display | |
User Experience | Dark/light theme toggle | ✅ Complete | next-themes with system preference detection |
Responsive design | ✅ Complete | Mobile-first responsive layout | |
Editor toolbar | ✅ Complete | Format, minify, copy, clear actions | |
Status bar | ✅ Complete | Real-time stats: lines, characters, file size | |
Error handling | ✅ Complete | User-friendly error messages and validation | |
Keyboard shortcuts | ✅ Complete | Ctrl+S format, fold/unfold commands | |
Performance | Lazy loading | ✅ Complete | Code splitting with Next.js dynamic imports |
Optimized rendering | ✅ Complete | React memoization and efficient re-renders | |
Large file handling | ✅ Complete | Streaming and chunked processing | |
Developer Experience | TypeScript integration | ✅ Complete | Strict type checking, custom types |
Component architecture | ✅ Complete | Modular, reusable component design | |
State management | ✅ Complete | Zustand for predictable state updates | |
Error boundaries | ✅ Complete | Graceful error recovery | |
Planned Features | Search & filtering | 🚧 Planned | Global search across files and content |
Export functionality | 🚧 Planned | Export to different formats (CSV, XML) | |
JSON Schema validation | 🚧 Planned | Validate against custom schemas | |
Collaboration features | 💭 Future | Share and collaborate on JSON files | |
Plugin system | 💭 Future | Extensible architecture for custom tools |
Legend:
- ✅ Complete: Feature is fully implemented and tested
- 🚧 Planned: Feature is designed and ready for implementation
- 💭 Future: Feature is under consideration for future releases
Frontend Framework:
- Next.js 15.4.4 with App Router
- React 19.1.0 with concurrent features
- TypeScript 5 for type safety
UI & Styling:
- Tailwind CSS 4 for utility-first styling
- Radix UI primitives for accessible components
- next-themes for theme management
- Lucide React for consistent iconography
Data Management:
- Zustand for lightweight state management
- Dexie.js for IndexedDB operations
- Event-driven architecture with custom event emitters
Code Editor:
- Monaco Editor (VS Code engine)
- Custom JSON syntax highlighting
- Built-in formatting and validation
Developer Tools:
- Motion (Framer Motion) for animations
- React JSON Tree for data visualization
- Sonner for toast notifications
# Clone the repository
git clone https://github.com/thatbeautifuldream/jsonvisualiser.git
# Install dependencies
pnpm install
# Start development server
pnpm run dev
# Build for production
pnpm run build
Open http://localhost:3000 to view the application.
File Management:
- Create, rename, and delete JSON files
- Files persist in your browser using IndexedDB
- Automatic file switching and state management
JSON Editing:
- Monaco Editor with syntax highlighting
- Real-time validation and error reporting
- Format and minify and related keyboard shortcuts
Tree Visualization:
- Interactive JSON tree with expand/collapse
- Custom themes matching editor appearance
- Quick navigation through complex data structures
Theme System:
- Light and dark mode support
- Automatic system preference detection
- Consistent theming across all components
This project started as a personal learning journey, but contributions are welcome! Here's how you can help:
- 🐛 Bug Reports: Found an issue? Open a GitHub issue with details
- 💡 Feature Requests: Have an idea? Let's discuss it in the issues
- 🔧 Code Contributions: Fork, improve, and submit a pull request
- 📝 Documentation: Help improve docs and code comments
Development Guidelines:
- Follow TypeScript best practices
- Maintain consistent code formatting
- Update documentation as needed
Browser Storage:
- Uses IndexedDB for efficient local storage
- Automatic cleanup of large files
- Optimized queries with Dexie.js
Memory Management:
- Efficient JSON parsing with error recovery
- Lazy loading of large datasets
- Debounced auto-save to prevent excessive writes
So what if similar tools already exist? This project is about:
🎯 Learning by building — understanding the internals of JSON processing, file systems, and UI frameworks
🔧 Experimenting with modern web technologies — pushing the boundaries of what's possible in the browser
🌱 Growing as a developer — tackling real-world problems with clean, maintainable code
If you stumbled upon this project and find it useful, that's a beautiful bonus. 🌟
Built with ❤️ by Milind Mishra | JSON Visualiser | Report Issues