# Forma 3.2 documentation

Forma combines reactive TypeScript interfaces, a compiler that produces native rendering inputs, and a Rust server that returns complete HTML responses. The optional router adds navigation between compatible pages while retaining their shared layouts. Routing remains an application choice; ordinary documents and zero-JavaScript routes remain supported.

## Choose your path

| What you are building                            | Start here                                          |
| ------------------------------------------------ | --------------------------------------------------- |
| A typed Rust application with persistent layouts | [Create a routed app](/docs/3.2/getting-started/)   |
| Browser routes or generated static documents     | [Choose a routing adapter](/docs/3.2/routing/)      |
| An existing Forma application                    | [Upgrade the coordinated set](/docs/3.2/upgrading/) |
| Code that needs exact declarations               | [Public API reference](/docs/3.2/api-overview/)     |

The API reference is generated from the actual installed **3.2.0-rc.2** declarations. It includes `@getforma/router` and the opt-in `@getforma/core/navigation` entry. The separate [3.0 documentation](/docs/3.0/overview/) preserves its original source and API snapshot; it does not describe the new router. Published 3.1.0 does not include the router either.

## Render on the server, navigate in the browser

A native application compiles a shell and its leaves as independently typed owners. Rust binds each owner's declared props and produces an ordered branch. The first request is a complete document. An enhanced navigation requests the same typed destination, validates its policy and build identity, and adopts its new islands. Compatible shell nodes and state survive; departing leaf resources are disposed.

The [native router lab](/lab/router/) demonstrates a retained shell, two different interactive leaves, fresh server props, ordinary GET forms, direct entry and explicit document controls. Its [downloadable application](/examples/native-router/) contains the connected build, client and Rust source. The existing [zero-JavaScript page](/lab/native/no-js/) demonstrates the ordinary document path.

## Keep application responsibilities explicit

Forma does not supply a database, account system or deployment service. Rust/Axum handlers still own authentication, authorization, CSRF, request validation and business logic. Browser route ownership manages effects and DOM lifetime; it does not authorize a request.

Deploy a matching server executable, manifest and asset set together. Keep one navigation coordinator per document and use document navigation when crossing incompatible rendering, policy or context boundaries. See the [routing guide](/docs/3.2/routing/) before changing an existing navigator.

## More detailed references

The guides above cover the new connected workflow. Existing framework topics are available from the version-pinned source: [core APIs](https://github.com/getforma-dev/forma/blob/3b6c7766a1b47558e666f76236a53697b3737bde/packages/core/docs/API.md), [native compiler](https://github.com/getforma-dev/forma/blob/3b6c7766a1b47558e666f76236a53697b3737bde/packages/compiler/README.md), [build configuration](https://github.com/getforma-dev/forma/blob/3b6c7766a1b47558e666f76236a53697b3737bde/packages/build/README.md) and [Rust server](https://github.com/getforma-dev/forma/blob/3b6c7766a1b47558e666f76236a53697b3737bde/crates/forma-server/README.md). These links intentionally target the coordinated release reference, rather than relabeling the historical guides as 3.2.
