Getting Started with Full Stack

Full Stack projects compose multiple Loom projects into a single deployable application. Import existing projects as layers — a Weave AI backend, a Streamlit frontend, a NetworkX analytics service — wire their boundaries together, and generate a runner that starts everything with one command.

When to Use Full Stack

Use a Full Stack project when you have multiple Loom projects that need to run together as a single application. Common patterns:

  • Backend + Frontend — A Weave AI server graph providing an API, a Streamlit or Gradio app for the UI
  • Service mesh — Multiple agent projects coordinating through shared environment variables
  • Pipeline — A data processing project feeding results to a visualization project

Creating a Full Stack Project

  1. On the dashboard, click New Project
  2. Select Full Stack App as the project type
  3. Name your application

The Full Stack Editor

The editor has a different layout than framework-specific editors:

  • Layers panel — Lists imported project references
  • Config panel — Startup order and shared environment variables
  • Variables panel — Named input/output variables for the composite
  • Composite graph — The canvas where you wire layers together

Quick Start

  1. Import layers — Open the Layers panel and click Add Layer. Select any saved project with named variables (inputs and outputs). Each imported project becomes a Layer Reference node on the canvas.

  2. Wire the graph — Add a Launcher node (entry point), connect its exec output to each Layer Reference node. If layers need to exchange data, wire output ports from one layer to input ports on another — these become environment variable bindings in the generated runner.

  3. Configure — Set startup order (parallel or sequential) and any shared environment variables in the Config panel.

  4. Generate — Click Generate to produce the full application. Each layer's code is generated independently, placed in a layers/ directory, and a runner.py orchestrates startup and wiring.

Generated Output

layers/
  backend/        # Layer 1's generated code
  frontend/       # Layer 2's generated code
runner.py         # Starts all layers, wires config
requirements.txt  # Combined dependencies
README.md

Running the Output

pip install -r requirements.txt
python runner.py

The runner handles starting each layer process, injecting shared environment variables, and wiring data between layers via environment variable bindings.