Documentation
Source code and markdown docs, combined.
All of Plain's docs are written directly in the source code. You're encouraged to read the source — either on this site, the GitHub repo, or in your local virtual environment for the version of Plain you're using.
Core
By itself, this is the bare minimum to get a Python web app up and running. It can respond to HTTP requests and render templates, but doesn't include a database. You can think of this as an alternative to Flask.
assets
Serve static assets (CSS, JS, images, etc.) directly or from a CDN.
cli
The `plain` CLI and how to add your own commands to it.
csrf
Cross-Site Request Forgery (CSRF) protection.
forms
HTML form handling and validation.
http
HTTP request and response handling.
logs
Logging configuration and utilities.
packages
Install Python modules as Plain packages.
preflight
System checks for Plain applications.
runtime
Access app and package settings at runtime.
signals
Run code when certain events happen.
templates
Render HTML templates using Jinja.
test
Testing utilities for Plain.
urls
Route requests to views.
utils
Various utilities for text manipulation, parsing, dates, and more.
views
Take a request, return a response.
Packages
These packages are separate and can be installed individually. They're often included in the starters.
admin
v0.25.0
An admin interface for admin users.
api
v0.8.0
auth
v0.12.0
Add users to your app and define which views they can access.
cache
v0.14.0
A simple cache using the database.
code
v0.6.0
dev
v0.26.1
A single command that runs everything you need for local development.
elements
v0.6.0
```python
email
v0.9.1
Everything you need to send email.
esbuild
v0.5.0
Build JavaScript files with esbuild.
flags
v0.15.0
Local feature flags via database models.
htmx
v0.7.0
Integrate HTMX with templates and views.
importmap
v0.8.0
Use import maps in templates.
loginlink
v0.8.0
Link-based authentication for Plain.
models
v0.27.1
Model your data and store it in a database.
oauth
v0.18.0
Let users log in with OAuth providers.
pages
v0.10.1
pageviews
v0.13.0
Track pageviews from the client-side.
passwords
v0.7.3
Password authentication for Plain.
pytest
v0.6.1
Write and run tests with pytest.
redirection
v0.13.0
sessions
v0.18.0
Manage sessions and save them in the database.
support
v0.10.0
Provides support forms for your application.
tailwind
v0.11.1
Integrate Tailwind CSS without JavaScript or npm.
tunnel
v0.5.0
vendor
v0.8.0
Download those CDN scripts and styles.
worker
v0.20.0
Process background jobs with a database-driven worker.