# Proa documentation > Public documentation for the Proa Rust web framework. Fetch the linked Markdown for focused context. ## Pages - [Quickstart](https://proa.so/docs/index.md): Create a Proa site, run it, and edit your first route in five minutes\. - [Editor setup](https://proa.so/docs/guides/editor-setup.md): Configure VS Code, Neovim, Vim, Helix, and Zed for Rust navigation and completion inside Proa Markdown templates\. - [Tutorial\: A Product Page](https://proa.so/docs/guides/tutorial.md): Server\-render a catalog, then add a quantity stepper that still works with JavaScript off\. - [HTML rendering](https://proa.so/docs/core/html-rendering.md): Render typed Rust values to HTML with render traits and the html\! macros\. - [Components](https://proa.so/docs/core/components.md): How Proa components are plain structs, how props and children flow, and how the recipe system styles them\. - [Markdown rendering](https://proa.so/docs/core/markdown.md): Compose Markdown as one of a component's render targets, sharing data and typed children across formats\. - [WriteBuf](https://proa.so/docs/core/write-buf.md): Pick the buffer a route renders into\. - [Route responses](https://proa.so/docs/framework/responses.md): Return synchronous, buffered async, or streaming SSR with islands\. - [Streaming SSR](https://proa.so/docs/core/streaming-ssr.md): Flush the page shell first and stream slow sections as they resolve\. - [Sink](https://proa.so/docs/core/sink.md): Render streamed output into recycled pages instead of fresh allocations\. - [Routes and layouts](https://proa.so/docs/framework/routing.md): Define route trees, layouts, and static paths\. - [Linking and navigating](https://proa.so/docs/framework/linking.md): Navigate between Proa pages with anchors, optional prefetching, and Turbo Drive\. - [Route handlers](https://proa.so/docs/framework/route-handlers.md): Build JSON, form, and webhook endpoints with Route\:\:endpoint\. - [Sitemaps](https://proa.so/docs/framework/sitemaps.md): Generate sitemap\.xml, add page metadata, and split large sites into multiple sitemaps\. - [robots\.txt](https://proa.so/docs/framework/robots.md): Generate robots\.txt, configure specific user agents, and publish optional crawler directives\. - [Content negotiation](https://proa.so/docs/framework/content-negotiation.md): Serve HTML and Markdown representations of one resource through HTTP content negotiation\. - [Page caching](https://proa.so/docs/framework/page-caching.md): Cache pages at the edge and refresh them after deployment\. - [Status, redirects, and errors](https://proa.so/docs/framework/errors.md): Set status codes, return redirects, and render error pages\. - [Metadata and OG images](https://proa.so/docs/framework/metadata.md): Compose titles, descriptions, and social preview images\. - [Data loading and streaming](https://proa.so/docs/framework/data-loading.md): Dedupe server loads, seed the browser query cache, apply cache policy, and stream slow page sections with Suspense\. - [Databases](https://proa.so/docs/framework/databases.md): Connect SQLx, Diesel, or Toasty to a Proa DataLoader and render typed rows as components\. - [Data caching](https://proa.so/docs/framework/caching.md): Deduplicate loads, cache data across requests, and invalidate render dependencies\. - [Forms and actions](https://proa.so/docs/guides/forms-actions.md): Build and validate HTML forms, handle submissions with Axum, and attach typed actions\. - [Islands\: when and why](https://proa.so/docs/guides/islands.md): Decide when a page needs browser code, then reach for RSJS\. - [Signals](https://proa.so/docs/rsjs/signals.md): Model owner\-local and typed cross\-owner browser state in RSJS\. - [Shared state](https://proa.so/docs/rsjs/shared-state.md): Share typed synchronous browser state across independent RSJS owners\. - [Event handlers](https://proa.so/docs/rsjs/handlers.md): Attach named typed browser handlers and component callbacks in RSJS\. - [Input bindings](https://proa.so/docs/rsjs/bindings.md): Bind form controls to writable RSJS signals and SharedState fields\. - [Component props](https://proa.so/docs/rsjs/component-props.md): Pass RSJS callbacks and reactive values into child component structs\. - [Client helpers](https://proa.so/docs/rsjs/client-helpers.md): Compile small pure Rust functions into the RSJS browser graph\. - [Browser APIs](https://proa.so/docs/rsjs/browser-apis.md): Reach browser capabilities through the analyzed RSJS surface\. - [Server\-rendered content](https://proa.so/docs/rsjs/server-only.md): Keep ordinary Rust values and renderables outside an RSJS client graph\. - [Hydration strategies](https://proa.so/docs/rsjs/hydration.md): Defer RSJS island hydration until it matters\. - [Queries and mutations](https://proa.so/docs/rsjs/queries-mutations.md): Seed browser queries from server\-rendered data, refetch them, and run invalidating mutations\. - [Runtime wiring](https://proa.so/docs/rsjs/runtime.md): Plan, emit, and activate the exact RSJS assets a response rendered\. - [Tailwind](https://proa.so/docs/guides/tailwind-intellisense.md): Style a Proa app, with autocomplete in Rust files\. - [Class composition](https://proa.so/docs/core/class-composition.md): Compose Tailwind classes with static strings, ClassList, and optional caller classes\. - [Fonts](https://proa.so/docs/framework/fonts.md): Self\-host web fonts with metric\-matched fallbacks and zero runtime requests, declared in code and vendored by the build\. - [Images](https://proa.so/docs/framework/images.md): Serve responsive images from static assets, without a build pipeline\. - [Static assets](https://proa.so/docs/framework/static-assets.md): Serve static files, embedded assets, and external apps safely\. - [Third\-party integrations](https://proa.so/docs/framework/third-party.md): Add consent\-aware Google Analytics, deferred scripts, and click\-to\-load YouTube embeds to Proa pages\. - [FrameworkBuilder configuration](https://proa.so/docs/framework/configuration.md): Configure FrameworkBuilder, security defaults, static mounts, external apps, and response behavior\. - [proa\.config\.json](https://proa.so/docs/framework/project-config.md): Configure the dev server, asset build, and component registries\. - [Environment variables](https://proa.so/docs/framework/environment.md): Configure a deployed Proa app without rebuilding the binary\. - [Security](https://proa.so/docs/guides/security.md): What Proa hardens by default, the CVE classes its design answers, and what stays your job\. - [Escaping and raw HTML](https://proa.so/docs/core/escaping.md): How Proa encodes dynamic values, and the two ways to opt out\. - [Headers and CSP](https://proa.so/docs/framework/security-headers.md): Set frame policy, HSTS, and a nonce\-based Content Security Policy\. - [Cross\-origin and CSRF](https://proa.so/docs/framework/cross-origin.md): Reject forged cross\-origin writes, and add the CSRF defense Proa does not\. - [Testing](https://proa.so/docs/guides/testing.md): Test Proa components with unit, snapshot, accessibility, and benchmark suites\. - [Writing performant pages](https://proa.so/docs/guides/performance.md): How to write zero\-allocation Proa pages that render in microseconds\. Covers format\!\(\) avoidance, SafeText, ClassList, numeric rendering, buffer selection, and pre\-formatting patterns\. - [Accessibility](https://proa.so/docs/guides/accessibility.md): How Proa catches common WCAG, WAI\-ARIA, and ARIA\-in\-HTML issues at compile time\. - [Deploy](https://proa.so/docs/framework/deployment.md): Pick a deployment target, then follow the guide for it\. - [Railway](https://proa.so/docs/framework/railway.md): Deploy a Proa app to Railway from a Dockerfile in about ten minutes\. - [Coolify](https://proa.so/docs/framework/coolify.md): Deploy a Proa app to Coolify on your own VPS\. - [Docker](https://proa.so/docs/framework/docker.md): Run the Proa image yourself, and own everything a platform would have done\. - [CI / GitHub Actions](https://proa.so/docs/guides/ci.md): Gate pull requests with proa check, then deploy from the same pipeline\. - [Agent setup](https://proa.so/docs/agents.md): Configure coding agents to edit Proa projects with local instructions\. - [AI consumption](https://proa.so/docs/llms.md): Serve Proa docs as Markdown context for coding agents\. - [Proa documentation API and MCP](https://proa.so/docs/api.md): Search and read official Proa documentation over HTTP, MCP, or browser tools without credentials\. - [Troubleshooting](https://proa.so/docs/guides/troubleshooting.md): Fix the most common Proa setup, registry, template, component, island, routing, and CI failures\. - [Upgrading](https://proa.so/docs/guides/upgrading.md): Move between Proa versions and find what broke\. - [From React / Next\.js](https://proa.so/docs/migration/react.md): Migrate from React SSR or Next\.js to Proa one route at a time while keeping your existing CSS and DOM contract\. - [From Rails \(ERB\)](https://proa.so/docs/migration/rails.md): Migrate from Rails ERB templates to Proa, run Proa as a rendering service alongside your Rails app\. - [From Python \(Django / Flask\)](https://proa.so/docs/migration/python.md): Run Proa as a sidecar and migrate Python routes gradually\. - [All commands](https://proa.so/docs/cli.md): The main proa subcommands, and where each one is explained\. - [proa new site](https://proa.so/docs/cli/new-site.md): Scaffold an opinionated Proa project\. - [proa generate](https://proa.so/docs/cli/generators.md): Generate components, layouts, and data modules\. - [proa fmt / lint / check](https://proa.so/docs/cli/format-lint-check.md): Format macro bodies, run lints, and gate CI\. - [proa site](https://proa.so/docs/cli/site.md): Validate site structure and print discovered routes\. - [proa chunks](https://proa.so/docs/cli/chunks.md): Inspect static runs and dynamic slots\. - [FFI guide](https://proa.so/docs/ffi.md): Call Proa's SSR engine from Python, Ruby, Go, or any language with C FFI support - [Playground](https://proa.so/docs/ffi/playground.md): Interactive demo with live editing, benchmarks, and three SSR engines side by side - [ABI contract](https://proa.so/docs/ffi/abi.md): Call the playground FFI exports and free their buffers correctly\. - [Memory ownership](https://proa.so/docs/ffi/memory.md): Own, reuse, and free Proa FFI buffers from a host runtime\. - [Packaging](https://proa.so/docs/ffi/packaging.md): Build outputs, dynamic library loading, Docker packaging, and runtime integration notes\. - [Example payloads](https://proa.so/docs/ffi/examples.md): JSON prop shapes for the five benchmark render entry points\. - [Proa Docs](https://proa.so/docs/proa-docs.md): A docs framework for Proa sites, compiled at build time\. - [Quickstart](https://proa.so/docs/proa-docs/quickstart.md): Build a docs site and start authoring its common components\. - [Pages and routes](https://proa.so/docs/proa-docs/pages-and-routes.md): How a file becomes a route, and what frontmatter controls\. - [Navigation](https://proa.so/docs/proa-docs/navigation.md): Order the sidebar, group pages, and split it into sections\. - [Markdown](https://proa.so/docs/proa-docs/markdown.md): The syntax a page supports, and what the build does with it\. - [Code block](https://proa.so/docs/proa-docs/code-block.md): Highlight, title, and annotate a fenced code block\. - [Code explorer](https://proa.so/docs/proa-docs/code-explorer.md): Browse several files of one example in a file switcher\. - [Tabs](https://proa.so/docs/proa-docs/tabs.md): Switch between alternative versions of the same content\. - [Steps](https://proa.so/docs/proa-docs/steps.md): Number a sequence the reader works through in order\. - [Accordions](https://proa.so/docs/proa-docs/accordions.md): Collapse answers the reader only needs sometimes\. - [Callout](https://proa.so/docs/proa-docs/callout.md): Mark a note, warning, or error inside the page flow\. - [Cards](https://proa.so/docs/proa-docs/cards.md): Link onward with a list of cards instead of a paragraph of links\. - [Files](https://proa.so/docs/proa-docs/files.md): Draw a project tree with folder and file icons\. - [Type table](https://proa.so/docs/proa-docs/type-table.md): Render a props or options table from a type definition\. - [Demo](https://proa.so/docs/proa-docs/demo.md): Embed a live page from your own site inside a doc\. - [Agent terminal](https://proa.so/docs/proa-docs/agent-terminal.md): Insert the stock agent\-fetch block on a page\. - [Mermaid](https://proa.so/docs/proa-docs/mermaid.md): Draw flowcharts and sequence diagrams from a code fence\. - [Math](https://proa.so/docs/proa-docs/math.md): Compile TeX to MathML at build time, with nothing shipped to the browser\. - [Rendering pages](https://proa.so/docs/proa-docs/runtime.md): Put a docs site inside your Proa app\. - [Customizing the layout](https://proa.so/docs/proa-docs/customizing.md): Compose the render primitives instead of using the default shell\. - [Styling contract](https://proa.so/docs/proa-docs/styling-contract.md): Every hook the components emit, and what your CSS must do with it\. - [Search](https://proa.so/docs/proa-docs/search.md): Generate static search manifests and serve search documents from the Docs registry\. - [Link validation](https://proa.so/docs/proa-docs/link-validation.md): Validate internal links, heading hashes, relative paths, and app\-specific link attributes at build time\. - [Configuration](https://proa.so/docs/proa-docs/configuration.md): Set up build\.rs, then every option in one place\. - [Authoring](https://proa.so/docs/proa-docs/_retired/authoring.md): Structure documentation files with Markdown, frontmatter, and meta\.json navigation\. - [Config reference](https://proa.so/docs/proa-docs/_retired/config-reference.md): Look up every builder on a proa\_docs\_build configuration\. - [Markdown pipeline](https://proa.so/docs/proa-docs/_retired/markdown-pipeline.md): Follow a Markdown page through the Proa Docs build pass\. - [Page conventions](https://proa.so/docs/proa-docs/_retired/page-conventions.md): File routing, frontmatter fields, meta\.json navigation, and sidebar icons in Proa Docs\.