Configuration¶
Place forge.json in the application project folder:
{
"entry": "app:App",
"source": ".",
"title": "My Python UI",
"lang": "en",
"direction": "ltr",
"packages": [],
"javascript": []
}
| Field | Default | Meaning |
|---|---|---|
entry |
app:App |
Python module path and decorated entry component separated by :. |
source |
. |
App Python root inside the project; only client-safe code belongs here. |
title |
PyReact Forge |
Initial HTML document title. |
lang |
en |
HTML language tag, for example fa. |
direction |
ltr |
Document direction, commonly ltr or rtl. |
packages |
[] |
Additional Python requirement strings installed with micropip. |
javascript |
[] |
JS module URLs imported before the Python app. |
The entry module name is relative to source. With source: "frontend" and
entry: "app:App", the entry file is frontend/app.py.
styles.css and public/ are taken from the project root. Source paths outside
the project are rejected. Package compatibility is limited by the browser's
Pyodide runtime; listing an arbitrary native Python package does not make its
platform dependencies available in WebAssembly.
forge-manifest.json is generated output, not the editable configuration. It
contains runtime, entry, development/hydration flags and build metadata. Rebuild
the app instead of manually changing that generated file.
Custom packages and JS registrations are currently unsupported by the supplied SSR CLI. See SSR for the exact boundary.