Skip to content

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.