The Chronos Atlas auxiliary backend is a locally-run Java process that acts as a file system bridge between the browser-sandboxed frontend and the real operating system disk. Because the browser cannot write arbitrary files to user-chosen paths, the Java server fills that role: it receives data from the frontend over HTTP, performs disk I/O, and returns results as downloadable streams. It also handles computationally expensive tasks — document compilation, font rendering, and image processing — that are impractical to run inside the browser.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Fixius50/WorlBuilding-Writting-App/llms.txt
Use this file to discover all available pages before exploring further.
Technology Stack
| Component | Technology | Version |
|---|---|---|
| Language | Java | 21 |
| Web Framework | Spring Web MVC | 5.3.31 |
| Embedded Server | Eclipse Jetty | 9.4.58.v20250814 |
| JSON Serialisation | Jackson Databind | 2.15.2 |
| Utilities | Project Lombok | 1.18.30 |
| Logging | SLF4J + Logback | 1.7.36 / 1.2.13 |
| PDF Rendering | Flying Saucer (openpdf) | 9.1.22 |
| HTML Parsing | jsoup | 1.17.2 |
| Build | Maven Shade Plugin | 3.5.1 (fat JAR) |
/api/* requests to http://localhost:8080 during development.
Domain Structure
The backend follows a domain-driven package layout undercom.worldbuilding. The Spring context is bootstrapped by AuxServerApplication with a component scan over both com.worldbuilding.core and com.worldbuilding.domains:
core controllers
Handle database lifecycle (backup/restore/ZIP), JSON sync archiving, HTML-to-PDF export, and system health.
domains.mapeditor
Upload and serve map images; create blank PNG canvases. Assets stored in
maps_assets/.domains.worldbible
Compile a project’s world bible content tree into EPUB, PDF, DOCX, or offline HTML.
domains.linguistics
Accept SVG glyph paths + font metadata and return a compiled TrueType
.ttf font file.CORS and Isolation Headers
The Jetty bootstrap filter sets the following response headers globally for all requests:OPTIONS preflight requests are intercepted and answered with 200 OK immediately, before the Spring dispatcher runs.
The filter also sets isolation headers required by SQLite WASM:
Running the Backend
Windows — run-app.bat (recommended)
From the project root, execute the provided batch script. It launches both the Java backend and the Vite frontend in a single command:
The backend also serves the Vite production build as static files from
./dist when running in production mode. During development, the Vite dev server on port 5173 proxies /api/* to the backend on port 8080.File Storage
The backend stores files relative to the working directory from which the JAR is launched:| Directory | Contents |
|---|---|
backup/ | Project .sqlite database backups and .sync.json payload archives |
maps_assets/ | Map image assets — named {projectName}_{fileName} |
System Endpoints
Two lightweight system endpoints are available on thecore controllers for health checks: