🧱 Synticore Website Compiler - Project Structure
🎯 Purpose
This page documents the current on-disk structure used by Synticore, including what each folder/file is for, what is generated, and what is safe to delete.
🪵 Two Different Roots To Understand
A. Compiler Root (This Repository)
This is where the Synticore tool itself lives.
Common files/folders:
gulpfile.js- task definitions and compiler pipelinegui.py- GUI applicationconfig/- tool-level defaults and app settingssource/- bundled resources, custom modules, migration/test datawiki/- documentation pages_log/- compiler-level logs (gulpfile.log,gui.log,setup.log)
B. Project Root (Your Selected Website Project)
This is the website content directory Synticore builds.
By default, examples are:
example/fullexample/min
The selected project is typically config/settings.json -> dir_recent[0].
🧩 Standard Project Layout
<project>/
config.json
config.schema.json (optional)
info.json
in/
_html/
asset/
audio/
brand/
css/
file/
font/
font-icon/
image/
js/
module/
video/
*.html
browserconfig.xml
manifest.webmanifest
favicon.ico
out/ (generated)
_cache/ (generated)
project/
dependency_graph.json
file.json
image_dimension.json
manifest_html_tags.json
compiler/
file.json
_log/ (generated)
task_<task-name>.log
_package/ (generated when packaging)
🗂️ Directory And File Responsibilities
📄 config.json
- Project configuration overrides.
- Primary file you edit to control build behavior.
- Read together with tool defaults from
config/default/project/config.json.
🧾 Config.Schema.Json (Optional)
- Project-level schema extensions for custom keys.
- Used by GUI config editor for types/tooltips/editor widgets.
🧾 info.json
- Project metadata, including project version.
- Used by version check and migration logic.
- Used by GUI version status display.
📥 in/
- Source input tree.
- Synticore compiles/transforms from here into
out/.
🧩 in/_html/
- Partial/template/include material.
- Common place for frame/header/footer include fragments.
🗂️ in/asset/
- Typed asset sources.
- Task groups map to these folders (audio/image/js/css/font/etc).
📤 out/
- Build output tree.
- Deployable static site output.
- Safe to delete (recreated by build tasks).
🧠 _cache/
- Incremental build cache and derived metadata.
- Safe to delete (recreated as needed).
- Used to skip unchanged work and speed rebuilds.
project/dependency_graph.jsonstores reference relationships (e.g., HTML -> image/svg) used by watch mode to trigger dependent rebuild tasks.
🧾 _log/
- Per-project task logs.
- Safe to delete.
📦 _package/
- Package output location (zip and/or directory variants depending on config).
🧹 Generated Vs Source (Safe Deletion Guide)
Source files (do not delete unless intentional):
config.jsonconfig.schema.json(if you use custom schema)info.jsonin/**
Generated/safe-to-delete:
out/**_cache/**_log/**_package/**
🧭 Naming And Ignore Conventions
option.path.ignore_prefix(default_) controls automatic ignore behavior for prefixed paths.- Common pattern: keep partials and non-page content under underscore-prefixed names.
- Sitemap exclusion is controlled via
option.path.ignore_sitemap.
✅ Minimal Valid Project Checklist
At minimum, a project should contain:
config.jsonin/
Recommended:
info.jsonconfig.schema.jsonwhen custom keys are used
If these are missing, GUI selection and tasks may fail validation.