# PyWeb > Full-stack web apps in one Python file: server-rendered pages, reactive UI compiled from Python to JavaScript, and typed RPC to @server functions. Install with `pip install pyweb-stack`; import `pyweb`; command `pyweb`. MCP server: `pyweb mcp`. ## Start here - [AI guide (all rules in one page)](https://maanavkrishna.github.io/PyWeb/llms-full.txt): read this before writing .pyweb code ## Start - [Introduction](https://maanavkrishna.github.io/PyWeb/introduction.html): PyWeb lets you build a complete web application in Python, in one file. - [Quickstart](https://maanavkrishna.github.io/PyWeb/quickstart.html): To try PyWeb without installing anything, open the - [Tutorial](https://maanavkrishna.github.io/PyWeb/tutorial.html): We'll build a small multi-user notes app in one file: a page with - [AI assistants & MCP](https://maanavkrishna.github.io/PyWeb/ai-assistants.html): PyWeb is designed to be easy for AI coding tools to write correctly: one ## Language - [The .pyweb language](https://maanavkrishna.github.io/PyWeb/language.html): A `.pyweb` file is a Python module in which page and component functions - [State & reactivity](https://maanavkrishna.github.io/PyWeb/reactivity.html): You never declare reactive state. The compiler reads each page (and - [Python in the browser](https://maanavkrishna.github.io/PyWeb/browser-python.html): Event handlers, markup expressions, computed values and helpers that - [npm packages](https://maanavkrishna.github.io/PyWeb/npm.html): Browser code can use packages from npm: charts, maps, date pickers, ## Server - [Server functions & RPC](https://maanavkrishna.github.io/PyWeb/server-functions.html): A module-level function decorated with `@server` runs only on the - [Pages, routing & assets](https://maanavkrishna.github.io/PyWeb/routing.html): from pyweb import App, NotFound - [Layouts & navigation](https://maanavkrishna.github.io/PyWeb/layouts.html): Most sites have a header, navigation and footer around every page. A - [Live data](https://maanavkrishna.github.io/PyWeb/live-data.html): A page usually shows a snapshot of the database from when it rendered. - [Building AI apps](https://maanavkrishna.github.io/PyWeb/ai-apps.html): AI features need three things from a web framework: a server side that - [Data & databases](https://maanavkrishna.github.io/PyWeb/data.html): Database code runs on the server: at the top of page functions and in - [Authentication](https://maanavkrishna.github.io/PyWeb/auth.html): needed, so any server process can verify it. ## Ship - [Testing](https://maanavkrishna.github.io/PyWeb/testing.html): Apps created with `pyweb new` include a `test_app.py` that checks the - [Deployment](https://maanavkrishna.github.io/PyWeb/deployment.html): pyweb build app.pyweb --out dist --production - [Security model](https://maanavkrishna.github.io/PyWeb/security.html): Only three things are sent to a browser: - [Command line](https://maanavkrishna.github.io/PyWeb/cli.html): pyweb new NAME [--template T] create NAME/ with app.pyweb, test_app.py, AGENTS.md, CLAUDE.md, static/; ## Reference - [Toolkit & stability](https://maanavkrishna.github.io/PyWeb/toolkit.html): Besides the compiler and server, PyWeb includes small, dependency-free - [Recipe: wallets & web3](https://maanavkrishna.github.io/PyWeb/web3.html): PyWeb has nothing web3-specific built in, and doesn't need it: wallet - [Limitations & roadmap](https://maanavkrishna.github.io/PyWeb/roadmap.html): PyWeb is deliberately focused. These are the current limits, so you ## Examples - [Counter](https://maanavkrishna.github.io/PyWeb/example-counter.html): Signals, a computed value and a bound number input. - [Todos](https://maanavkrishna.github.io/PyWeb/example-todo.html): Components, list mutation, filters and keyed lists. - [Blog](https://maanavkrishna.github.io/PyWeb/example-blog.html): SQL database, server functions, route parameters, 404s and validation errors. - [Accounts](https://maanavkrishna.github.io/PyWeb/example-auth.html): Registration, password hashing, sessions and protected pages. - [Chat rooms](https://maanavkrishna.github.io/PyWeb/example-chat.html): Route parameters, shared server state and live updates over Server-Sent Events. - [Showcase](https://maanavkrishna.github.io/PyWeb/example-showcase.html): Reactive state, derived values and a server-backed search on one page. - [Plant shop](https://maanavkrishna.github.io/PyWeb/example-site.html): A layout, client-side navigation, typed query parameters, page titles and a 404 page. - [Sales dashboard](https://maanavkrishna.github.io/PyWeb/example-dashboard.html): Live queries and a Chart.js chart from npm, updating in every open window. - [AI chat](https://maanavkrishna.github.io/PyWeb/example-ai-chat.html): Streaming replies with a Stop button and Markdown, from Anthropic, an OpenAI-compatible server or a demo model.