A local desktop app for editing project configuration files as structured data — not raw text.
Modern software projects are held together by configuration files. package.json, tsconfig.json, .env, biome.json — every tool has one, and most projects have dozens.
These files are structured by design. They have types, enums, required fields, and often formal schemas. But we edit them as plain text, which means syntax errors that only surface at runtime, valid files with invalid values, and constant tab-switching between docs and your editor.
ConfigForm treats configuration as what it actually is: structured, typed data.
Open a project folder. ConfigForm finds your config files, understands their structure, and gives you a form-based GUI to edit them safely — with the right input for each field type, validation before save, and no surprises.
For files with known schemas you get full semantic editing: enums show as dropdowns, booleans as toggles, required fields are marked, and invalid values are caught before they reach your terminal.
| File | Description |
|---|---|
package.json |
npm / bun package manifest |
tsconfig.json |
TypeScript compiler options |
.eslintrc / eslint.config.* |
ESLint configuration |
.prettierrc |
Prettier formatting rules |
biome.json |
Biome linter and formatter |
turbo.json |
Turborepo pipeline config |
.editorconfig |
Editor normalization rules |
.npmrc |
npm registry and behavior settings |
bunfig.toml |
Bun runtime configuration |
pnpm-workspace.yaml |
pnpm monorepo workspace definition |
.env |
Environment variables |
Monorepo-aware: ConfigForm scans the full project tree and surfaces configs across all packages, not just the root.
- Tauri 2 — lightweight desktop runtime (Rust backend)
- React 19 — UI
- TypeScript 5.8 — strict mode throughout
- Tailwind CSS v4 + DaisyUI v5 — styling
- Vite — frontend build tool
- Bun — package manager and runtime
- Biome — linting and formatting
- Local only — no network requests, no telemetry, no accounts
- Rust (stable toolchain)
- Bun (
curl -fsSL https://bun.sh/install | bash) - Tauri prerequisites for your OS (system libraries, Xcode/WebView2/etc.)
# Install dependencies
bun install
# Start the app in development mode (hot-reload)
bun tauri dev
# Build a production binary
bun tauri buildThe development build opens a native window connected to the Vite dev server, so frontend changes reflect instantly without restarting Tauri.
src/ # React frontend
components/ # UI components
registry/ # Config type definitions (one file per config)
index.ts # Registry export
types.ts # ConfigTypeDefinition interface
package-json.ts # Example: package.json definition
tsconfig.ts
...
types/ # Shared TypeScript types
src-tauri/ # Rust / Tauri backend
src/lib.rs # Tauri commands (file I/O, recents, folder picker)
Cargo.toml
Each supported file type is a self-contained registry entry. To add support for a new config:
- Create
src/registry/<name>.tsimplementingConfigTypeDefinition - Import and add it to the
CONFIG_REGISTRYarray insrc/registry/index.ts
No core changes required — the app is a renderer, the knowledge lives in the registry.
ConfigForm is not an IDE, a DevOps dashboard, a deployment tool, or a cloud service. It doesn't replace your config files. It makes editing them less painful.
Early development. MVP focused on JS/TS toolchain projects.
MIT — see LICENSE