---
name: New Horizons Config Editor
summary: A GUI-based editor for New Horizons configs
timespan:
  from: 2022
tags:
  - tauri
  - rust
  - web
  - react
  - bootstrap
  - outer-wilds
links:
  github: Outer-Wilds-New-Horizons/nh-config-editor
image: ./nh-config-editor.webp
---

import ExtLink from "@components/ExtLink.astro";
export const components = { a: ExtLink };

The config editor is a desktop I made to make editing
[New Horizons](https://nh.outerwildsmods.com) config files easier.
It uses React for UI and Bootstrap for styling.
The forms were created
with [React JSON Schema Form](https://github.com/rjsf-team/react-jsonschema-form)].
The backend was made with Rust and it's all tied together by [Tauri](https://tauri.app).

The app auto-generates UI from JSON schemas,
meaning no updates are needed as New Horizons itself updates.
In addition to form-based editing, it also supports editing text directly with
[Monaco](https://microsoft.github.io/monaco-editor/) which provides a VSCode-like
experience. It also validates some other things beyond simple type checking that
VSCode can't do with a JSON schema.

This was my first Tauri app so I made some mistakes that I now know not to make,
but it made me really like Tauri and how it approached application development.
