Free, fast, and secure client-side tools for JSON/Text comparison and Excel/JSON conversion
- Structural JSON comparison with deep object analysis
- Ignore key order, whitespace, and array differences
- Monaco editor with syntax highlighting and IntelliSense
- Export diff results in multiple formats
- Line-by-line text comparison with word-level granularity
- Split and unified view modes
- Web Worker support for large files (10,000+ lines)
- Syntax highlighting for code files
- Bi-directional conversion between JSON and Excel formats
- Support for XLSX, XLS, and CSV files
- Multiple sheet handling
- Large file support (10MB+)
- β 100% Client-Side Processing - No data leaves your browser
- β Privacy-First - GDPR compliant, no tracking, no cookies
- β Zero Backend - Pure static site, no server costs
- β Fast & Modern - Built with Angular 18 standalone components
- β Responsive - Works on desktop, tablet, and mobile
- β Accessible - WCAG 2.1 AA compliant
- β SEO Optimized - Static Site Generation with rich meta tags
- Framework: Angular 18.2+ (Standalone Components)
- Language: TypeScript 5.5+
- UI: Angular Material
- Code Editor: Monaco Editor (VS Code engine)
- Diff Engine: diff-match-patch
- Excel Processing: SheetJS (xlsx)
- Styling: SCSS with Material Design 3
- Build: esbuild (via Angular CLI)
- Deployment: Static hosting (Netlify/Vercel/GitHub Pages)
- Node.js 20.x or higher (LTS recommended)
- npm 10.x or higher
# Clone the repository
git clone https://github.com/thdang1009/diff-toolbox.git
cd diff-toolbox
# Install dependencies
npm install
# Start development server
npm startThe application will open at http://localhost:4200
# Start dev server with hot reload
npm start
# Build with watch mode
npm run watch# Build for production with SSG
npm run build
# Output will be in dist/diff-toolbox/browser/# Run unit tests
npm test
# Run linter
npm run lintdiff-toolbox/
βββ src/
β βββ app/
β β βββ features/ # Lazy-loaded feature modules
β β β βββ json-diff/
β β β βββ text-diff/
β β β βββ converter/
β β βββ core/ # Singleton services (to be added)
β β βββ shared/ # Reusable components (to be added)
β β βββ app.component.* # Root component
β β βββ app.config.* # App configuration
β β βββ app.routes.* # Routing
β βββ environments/ # Environment configs
β βββ styles.scss # Global styles
β βββ index.html # HTML with SEO meta tags
βββ docs/ # Documentation
β βββ PRD.md # Product Requirements
β βββ ENGINEERING.md # Engineering Design
βββ angular.json # Angular configuration
βββ tsconfig.json # TypeScript config
βββ package.json # Dependencies
See PROJECT_STRUCTURE.md for detailed documentation.
This application is pre-configured for static hosting with SSG (Static Site Generation).
# Build command
npm run build
# Publish directory
dist/diff-toolbox/browser# Vercel will auto-detect Angular configuration
vercel# Build
npm run build
# Deploy dist/diff-toolbox/browser/ folder- Setup Complete Guide - Complete setup overview
- Project Structure - Detailed file structure
- Engineering Design - Technical architecture
- Product Requirements - Feature specifications
- Angular 18 project structure
- Standalone components architecture
- SSR/SSG configuration
- Routing with lazy loading
- Global styles and Material theme
- SEO meta tags
- Core services (theme, analytics, error handling)
- Shared components (Monaco wrapper, file upload, diff viewer)
- JSON diff feature with Monaco editor
- Text diff feature with Web Workers
- Excel/JSON converter with xlsx library
- Unit and E2E tests
- Performance optimization
- Accessibility audit
- CI/CD pipeline
- Production deployment
Contributions are welcome! This project is designed to showcase modern Angular development practices.
- Use standalone components (no NgModules)
- Follow TypeScript strict mode
- Write unit tests for all services
- Ensure WCAG 2.1 AA compliance
- Use Angular Material components
- Follow the existing code style (.editorconfig)
- No Backend: All processing happens in your browser
- No Tracking: No analytics cookies or user tracking
- No Data Transmission: Your files never leave your device
- GDPR Compliant: No personal data collection
- Open Source: Full transparency
This project is licensed under the MIT License - see the LICENSE file for details.
- Angular Team - Modern web framework
- Google - diff-match-patch algorithm
- Microsoft - Monaco Editor
- SheetJS - Excel processing library
- Material Design - UI components and design system
- GitHub: thdang1009/diff-toolbox
- Issues: Report a bug
- Discussions: Join the conversation
- JSON structural diff
- Text line-by-line diff
- JSON β Excel conversion
- XML diff support
- YAML diff support
- CSV to JSON conversion
- Diff history (IndexedDB)
- Share diff via URL (base64 encoded)
- Dark/Light theme toggle
- Keyboard shortcuts
- Diff API code generation
- Browser extension
- Collaborative diff (WebRTC)
- VS Code extension
- CLI tool
- Plugin system
If you find this project useful, please consider giving it a star on GitHub!
Built with β€οΈ using Angular 18
Showcasing modern web development practices for the EU freelance market