Thanks for your interest! This guide gets you running and explains how changes flow through the codebase.
- Rust toolchain (stable) — required to run the Tauri desktop app: https://rustup.rs
- Bun — package manager and runtime: https://bun.sh
# macOS / Linux
git clone https://github.com/vishesh-sachan/Project_Igniter
cd project-installer
bun install
bun run tauri dev
# Windows
# clone, cd project-installer, bun install, then:
bun run tauri devbun run tauri dev compiles the Rust side on first start, then serves the Vite frontend and opens a native desktop window.
Dogfooding: Project Igniter bootstraps its own repo. The
setup.sh/setup.ps1at the repo root are generated by the app itself. Keep them in sync as you change the converter.
| Area | Location |
|---|---|
| Frontend entry | src/main.tsx, src/App.tsx |
| Pages | src/pages/ (ProjectSelection, ProjectOverview, WorkflowBuilder) |
| Editor components | src/features/workflow/components/ |
| Properties panes | src/features/properties/components/ |
| Model types | src/features/workflow/types/workflow.ts |
| Tree utils | src/features/workflow/utils/workflowUtils.ts |
| State store | src/features/workflow/store/useWorkflowStore.ts |
| Persistence | src/services/workflowService.ts |
| Script generation | src/services/generateScriptsService.ts |
| Converter | src/converter/ (see its README.md) |
| Rust commands | src-tauri/src/ |
- Extend the model in
src/features/workflow/types/workflow.ts. - Add editing logic in the tree utilities and store.
- For a new step type: add a
createStepcase inworkflowFactory.ts, a converter insrc/converter/steps/, wire it intobash.ts/powershell.ts, and add a properties panel. - Add/adjust the UI in the appropriate feature or page.
- Persistence lives in
workflowService.ts; generation ingetScriptsService.ts.
- Immutability — editing utilities return new objects; they never mutate in place.
- Pure converter —
src/converter/does not touch the filesystem. It returns{ path, content }pairs; the caller performs I/O. - Schema changes —
index.schemainworkflows.jsonis bumped only on Generate Scripts. - Follow the existing 2-space indentation and use
import(type-only) for types.
bun run build # tsc && vite buildBefore opening a PR, generate scripts for a scratch project and run bash setup.sh to confirm the emitted code behaves.
- Create a branch:
git checkout -b feat/your-change. - Keep the data path consistent: model → converter → orchestrator.
- Verify with
bun run buildand a manual script run. - Commit with a concise, imperative message describing the user-visible change.
- Push and open a pull request against
main.
For schema-level or converter-shaping changes, open an issue first to discuss migration impact.
Good first contributions:
- Fixing a step converter bug (see
src/converter/steps/). - Improving error/drift messaging in the generated scripts.
- Adding a property or validator to a step's properties panel.
- New
docs/guides or ADRs.
In-depth architecture, guides, reference, and patterns live in docs/. Keep docs in sync with any behavior change.
Please read and follow our Code of Conduct. Everyone is expected to keep the community respectful and constructive.