Synticore Builder Guide - GUI Guide
Purpose
This page explains how to use the browser GUI as a project launcher, task runner, config editor, and local documentation viewer.
Primary entry:
npm run gui:web
Shell launcher entries:
./gui.sh
gui.cmd
The browser GUI must be available before the launcher can serve it. If you are maintaining the GUI itself rather than using it, use the developer-facing GUI/browser docs instead of this page.
GUI Surface
Synticore exposes the browser GUI through npm run gui:web and the root gui.cmd / gui.sh launchers.
The browser GUI mirrors the main launcher/config workflow closely enough to use as a real day-to-day tool for:
- project selection and recent-project recall
- grouped task launching
- project-config editing
- log-config editing
- repo-root wiki reading
- runtime status and log inspection
- new-project scaffolding
- local theme switching
Before You Start
Complete environment setup first:
- run
./setup.shorsetup.cmd - choose a valid project directory containing
config.jsonandin/
See Synticore Builder Guide - Setup Guide.
Main UI Areas
Project Selection
- recent-project dropdown
- browse button to choose a project directory
- open-directory button
- open-terminal button
- new-project button to create a project from
template/*
The selected project is the path used for launched tasks and config editing.
Task Buttons
The GUI exposes grouped compiler tasks and runs them against the selected project.
Equivalent terminal pattern:
npm run gulp <task> -- --project "<selected-project-path>"
Config Editor
The config editor lets you change project settings through schema-driven controls instead of editing JSON manually for every change.
In normal use, this means project-facing settings from <project>/config.json. If a project provides config.schema.json, the editor can also reflect project-specific schema extensions.
The GUI also has a mode switch between:
Projectfor the selected project'sconfig.jsonLogfor the tool-levelconfig/log.json
Runtime Log Surface
The browser GUI includes a log tab for runtime GUI events and status output.
This log surface is for the browser GUI itself. For compiler-task output and persistent tool logs, keep using Synticore Builder Guide - Log Guide.
Local Wiki Surface
The browser GUI includes a wiki tab that renders repository docs live from disk.
Routing rules:
README.mdrenders as the wiki homewiki/*.mdandwiki/**/*.mdrender as their matching wiki paths- internal markdown wiki links continue to work through the GUI tab
The wiki tab is intended for local builder documentation, not end-user content authoring. Reloading happens when you navigate or use the reload action.
The wiki surface also includes:
- breadcrumb navigation for the current doc path
- an in-page table of contents generated from markdown headings
- README home-page routing back to the repo root docs
Browser GUI Access Notes
The browser GUI launcher can also expose a LAN-gated browser path with a separate access screen for unauthorized LAN requests.
In practical terms:
- unauthorized LAN clients are redirected to the access page
- unmatched GUI routes resolve to a GUI-specific not-found page
- implementation details for those pages belong in the maintainer docs, not this builder guide
Version Status
The GUI shows whether the selected project is:
- up to date
- older than the compiler
- newer than the compiler
Typical GUI Flow
- Launch
npm run gui:web,./gui.sh, orgui.cmd. - Select a project directory.
- Confirm the version status.
- Run a task such as
buildorwatch. - Open the Config tab and choose
ProjectorLogmode if needed. - Save changes and rerun the affected task.
New Project Flow
Use the New Project action when you want to scaffold a new site from one of the bundled templates.
The popup:
- chooses a destination directory
- lets you pick a template from
template/* - reads template metadata from each template's
template.schema.json - runs
npm run project:new -- --dir ... --template ... - can pass
--forcewhen overwrite is explicitly enabled
Common Problems
Invalid Project Selection
- confirm the directory contains
config.json - confirm the directory contains
in/
Task Launch Errors
- install missing Node dependencies with
npm install - check PATH issues for Node or GraphicsMagick
Config Editor Load Or Save Errors
- check for malformed project JSON
- check project schema extensions if you use them
- check whether you are editing
Projectconfig orLogconfig mode
Need More Detailed Runtime Evidence
Use Synticore Builder Guide - Log Guide for the relevant log files.
GUI Vs Terminal
Use the GUI when you want:
- fast task selection
- visual config editing
- visible version status
Use the terminal when you want:
- scriptable automation
- direct command control
- CI-friendly execution
See Synticore Builder Guide - Terminal Task Reference.
Advanced Notes
Version Status
The version indicator is there to help you notice when a selected project is older or newer than the current compiler. Use Synticore Builder Guide - Migration Guide when the selected project needs upgrade work.
Config Save Scope
The GUI is primarily a safer way to edit project-facing config without hand-editing JSON for every change.
- project build behavior belongs in
<project>/config.json - optional project schema extensions belong in
<project>/config.schema.json - GUI app state belongs in
config/gui.json - tool log-config editing writes to
config/log.json - project-local config editor UI state is cached in
<project>/_cache/project/gui.json
The project-local GUI cache is UI-only state such as collapsed-section preferences. It is not the authored source of truth for project behavior.
When debugging ownership questions, use Synticore Builder Guide - Config Ownership.
For browser GUI internals, implementation layout, and hidden maintainer-only tools, use Synticore Developer Docs - Browser Tooling Notes and _development/wiki/gui.md.