Skip to content

Repository files navigation

Goshen

An IDE for authoring interactive fiction targeting Inform 7 and the Glulx virtual machine. Provides visual tools (node graphs, tables) that compile one-way into Inform 7 source text.

Tech Stack

  • App Shell: Tauri v2 (Rust backend)
  • Frontend: React 19 + TypeScript
  • State: Zustand with undo/redo (zundo)
  • Validation: Zod schemas
  • Build: Vite
  • Tests: Vitest

Development

npm install
npm run dev          # Start Vite dev server
npm run test         # Run tests
npm run build        # Build frontend

Architecture

  • src/domain/ — Core domain model (Room, Thing, Connection, Scene, ActionRule, etc.)
  • src/compiler/ — One-way compilation engine: domain model → Inform 7 source
  • src/plugins/ — Plugin system for Inform 7 community extensions
  • src/store/ — Zustand state management with undo/redo
  • src/persistence/ — JSON project file save/load with migration
  • src/components/ — React UI shell (resizable panels)
  • src-tauri/ — Tauri backend (file I/O, compiler invocation)

Project Files

Projects are saved as .goshen files (JSON format, human-readable, version-controlled).

About

game

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages