A React-based web application for creating and modifying config.json files for Trunk Recorder.
All Features Complete:
- β Complete schema system with 100+ field definitions
- β Global settings editor with all configuration options
- β Full source/system/plugin editors with conditional fields
- β List views with add/edit/delete functionality
- β Import wizard with drag-and-drop and validation
- β Real-time JSON preview with syntax highlighting
- β Comprehensive validation with error/warning display
- β File export functionality
- β Advanced mode toggle
- β LocalStorage persistence
- β Dedicated validation panel with clickable error navigation
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildOpen http://localhost:5173 to view the application.
No server required - all config editing, validation, and file generation happens in your browser.
Fields automatically show/hide based on other settings:
- SmartNet bandplan options only appear when system type is "smartnet"
- Driver-specific fields only show for the selected SDR driver
- Advanced options can be toggled on/off
- Real-time validation using Zod schemas
- 100+ field-level validations
- Custom validation rules (e.g., conventional systems need channels OR channelFile)
- Error and warning severity levels
- Dedicated validation panel showing all issues with clickable navigation to problem areas
Field definitions are separate from the UI, making it easy to update when Trunk Recorder adds new options.
State Management: Zustand with localStorage persistence
Validation: Zod schemas generated from field definitions
UI Components: Radix UI primitives + Tailwind CSS
Code Editor: CodeMirror 6 for JSON preview
See PROGRESS.md for detailed development progress.
See DEVELOPMENT_PLAN.md for the complete implementation plan.
src/
βββ config/schema/ # Field definitions for all config options
βββ stores/ # Zustand state management
βββ hooks/ # Validation, import, export hooks
βββ components/
β βββ ui/ # Base UI components
β βββ fields/ # Form field components
β βββ editor/ # Editor components
β βββ layout/ # Layout components
βββ styles/ # Tailwind CSS
This project is under active development. See PROGRESS.md for current status and remaining work.