JSON + juxtapose
A secure, modern and high-performance JSON comparison tool that displays differences between JSON objects in a side-by-side view.
- Side-by-Side Comparison: Clear visual comparison between old and new JSON versions
- Performance Optimized: Handles large JSON files efficiently with virtualization
- Visual Difference Highlighting: Color-coded changes for easy identification
- Context-Aware Diff View: Show only differences with configurable context lines
- Complete JSON Display: No abbreviation of objects or arrays
- Deep Nested Structure Support: Properly displays and compares nested objects and arrays
- Theme Support: Multiple themes including light and dark modes
- Responsive Design: Works on devices of all sizes
# Clone repository
git clone https://github.com/handsupmin/json-tapose.git
cd json-tapose
# Install dependencies
pnpm install
# Start development server
pnpm dev- Enter or paste JSON in both panels
- Click "Compare" to see the differences
- Use the controls to:
- Toggle between showing differences only (default) or all content
- Adjust context lines around differences
- Switch between different themes
- React 19: Latest React version with performance improvements
- TypeScript: For type safety and better developer experience
- TailwindCSS & daisyUI: For styling and components
- Virtualization: Efficient rendering for large datasets
- Context API: For state management
src/
├── components/ # React components
├── contexts/ # React Context for state management
├── hooks/ # Custom React hooks
├── types/ # TypeScript type definitions
└── utils/ # Utility functions including JSON comparison
- Component Composition: Breaking down complex UI into focused components
- Custom Hooks: Separated logic for better reusability
- Virtualized Rendering: Only renders visible items in the viewport
- Memoization: Prevents unnecessary calculations and re-renders
- Efficient Diff Algorithm: Optimized JSON comparison with caching
This project follows strict development guidelines to maintain code quality and consistency:
- Use TypeScript for all new code
- Follow ESLint and Prettier configurations
- Write meaningful commit messages
- Keep functions small and focused
- Use meaningful variable and function names
- Document complex logic with comments
- Keep components pure and reusable
- Use proper error handling
- Follow React best practices and hooks guidelines
- All code, comments, and documentation must be in English
- Variable and function names must be in English
- Commit messages must be in English
- Only user-facing text can be localized
- Fork the repo
- Create a branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Open a Pull Request
- Read CONTRIBUTING.md for detailed guidelines
This project is licensed under the MIT License.
