PLATFORM

Three standalone services. One Lunatrix runtime.

Separate the concerns. Keep the signal flow clean.

The frontend runs on its own port, the backend gateway stays focused on API orchestration, and the model service handles inference independently. Each layer can evolve without pulling the others into the same runtime.

A localhost architecture with clear responsibilities.

The product shell, API layer, and ML runtime communicate over HTTP instead of sharing process state.

Frontend

The Lunatrix landing and future product surfaces run independently and consume APIs through the gateway.

127.0.0.1:4173

Backend gateway

The NestJS layer proxies public routes, keeps integrations stable, and isolates the frontend from model details.

127.0.0.1:8000

Model service

The Python engine owns live inference, training outputs, and signal publication without needing the UI to be present.

127.0.0.1:8100
“Lunatrix is built so the signal intelligence can outlive the landing page. The frontend is only one consumer.”
Architecture principle

Frontend -> Backend

The standalone frontend proxies API calls through the gateway rather than reaching into the model directly.

Backend -> Model

The backend keeps a stable contract for signal consumers while the Python service can continue evolving underneath.

Model -> Published outputs

Fresh signals, artifacts, and live inference remain the model service’s responsibility, not the web shell’s.