Plain is headed towards 1.0! Subscribe for development updates →

 1# Plain
 2
 3**Plain is a web framework for building products with Python.**
 4
 5The core `plain` package provides the backbone of a Python web application (similar to [Flask](https://flask.palletsprojects.com/en/stable/)), while the additional first-party packages can power a more fully-featured database-backed app (similar to [Django](https://www.djangoproject.com/)).
 6
 7All Plain packages are designed to work together and use [PEP 420](https://peps.python.org/pep-0420/) to share the `plain` namespace.
 8
 9To quickly get started with Plain, visit [plainframework.com/start/](https://plainframework.com/start/).
10
11## Core Modules
12
13The `plain` package includes everything you need to start handling web requests with Python:
14
15- [assets](./assets/README.md) - Serve static files and assets.
16- [cli](./cli/README.md) - The `plain` CLI, powered by Click.
17- [csrf](./csrf/README.md) - Cross-Site Request Forgery protection.
18- [forms](./forms/README.md) - HTML forms and form validation.
19- [http](./http/README.md) - HTTP request and response handling.
20- [logs](./logs/README.md) - Logging configuration and utilities.
21- [preflight](./preflight/README.md) - Preflight checks for your app.
22- [runtime](./runtime/README.md) - Runtime settings and configuration.
23- [templates](./templates/README.md) - Jinja2 templates and rendering.
24- [test](./test/README.md) - Test utilities and fixtures.
25- [urls](./urls/README.md) - URL routing and request dispatching.
26- [views](./views/README.md) - Class-based views and request handlers.
27
28## Foundational Packages
29
30- [plain.models](/plain-models/plain/models/README.md) - Define and interact with your database models.
31- [plain.cache](/plain-cache/plain/cache/README.md) - A database-driven general purpose cache.
32- [plain.email](/plain-email/plain/email/README.md) - Send emails with SMTP or custom backends.
33- [plain.sessions](/plain-sessions/plain/sessions/README.md) - User sessions and cookies.
34- [plain.worker](/plain-worker/plain/worker/README.md) - Backgrounb jobs stored in the database.
35- [plain.api](/plain-api/plain/api/README.md) - Build APIs with Plain views.
36
37## Auth Packages
38
39- [plain.auth](/plain-auth/plain/auth/README.md) - User authentication and authorization.
40- [plain.oauth](/plain-oauth/plain/oauth/README.md) - OAuth authentication and API access.
41- [plain.passwords](/plain-passwords/plain/passwords/README.md) - Password-based login and registration.
42- [plain.loginlink](/plain-loginlink/plain/loginlink/README.md) - Login links for passwordless authentication.
43
44## Admin Packages
45
46- [plain.admin](/plain-admin/plain/admin/README.md) - An admin interface for back-office tasks.
47- [plain.flags](/plain-flags/plain/flags/README.md) - Feature flags.
48- [plain.support](/plain-support/plain/support/README.md) - Customer support forms.
49- [plain.redirection](/plain-redirection/plain/redirection/README.md) - Redirects managed in the database.
50- [plain.pageviews](/plain-pageviews/plain/pageviews/README.md) - Basic self-hosted page view tracking and reporting.
51
52## Dev Packages
53
54- [plain.dev](/plain-dev/plain/dev/README.md) - A single command for local development.
55- [plain.pytest](/plain-pytest/plain/pytest/README.md) - Pytest fixtures and helpers.
56- [plain.code](/plain-code/plain/code/README.md) - Code formatting and linting.
57- [plain.tunnel](/plain-tunnel/plain/tunnel/README.md) - Expose your local server to the internet.
58
59## Frontend Packages
60
61- [plain.tailwind](/plain-tailwind/plain/tailwind/README.md) - Tailwind CSS integration without Node.js.
62- [plain.htmx](/plain-htmx/plain/htmx/README.md) - HTMX integrated into views and templates.
63- [plain.elements](/plain-elements/plain/elements/README.md) - Server-side HTML components.
64- [plain.pages](/plain-pages/plain/pages/README.md) - Static pages with Markdown and Jinja2.
65- [plain.esbuild](/plain-esbuild/plain/esbuild/README.md) - Simple JavaScript bundling and minification.
66- [plain.vendor](/plain-vendor/plain/vendor/README.md) - Vendor JavaScript and CSS libraries.