Skip to content
Search

Plain

lastmod 2025-03-30created 2025-03-301 edits

A web framework for Python

About

  • A web framework designed for building products quickly with Python (a fork of Django)
  • Local development can be started with a single command, and you can move to production through dashboards, feature flags, and more
    • Clone the starter kit to get started quickly
  • Consists of the core plain package and official extension packages that can be installed optionally

Features of the plain package

  • Maps URL patterns to Python view functions
  • Handles HTTP requests and responses
  • HTML rendering with Jinja templates
  • Forms for handling user input
  • Provides a command-line interface (CLI)
  • Can serve static assets such as CSS, JS, and images
  • Extends app functionality through middleware
  • Official and third-party packages can be integrated easily
  • Provides a pre-launch check feature (Preflight check system) before the app starts

Extensions through first-party packages

  • plain.models: provides an ORM for storing data in Postgres, MySQL, and SQLite
  • plain.cache: a caching solution that works with your existing database
  • plain.email: provides app-wide email configuration and sending
  • plain.sessions: enables database-backed session reads and writes
  • plain.worker: a background job solution backed by your existing database
  • plain.api: lets you build JSON APIs using a class-based view architecture

Authentication

  • plain.auth: provides the foundation for adding users, authenticating requests, and restricting views
  • plain.oauth: a flexible OAuth solution supporting modern social login and API access
  • plain.passwords: supports traditional password-based login
  • plain.loginlink: provides one-time login links for logging in without a password
  • plain.passkeys: passwordless login feature planned

Admin

  • plain.admin: provides a fully customizable admin dashboard
  • plain.flags: database-backed feature flags for controlling content per user
  • plain.support: provides customer support without third-party services
  • plain.redirection: 404 monitoring and redirect management from the database
  • plain.pageviews: see what users are viewing and provide better support

Development

  • plain.dev: start a local development environment with a single command
  • plain.pytest: write and run tests with the popular Python testing library
  • plain.code: format and lint Python code with default settings
  • plain.tunnel: expose a local app to the internet for webhook integration

Frontend

  • plain.tailwind: provides first-class integration with the popular CSS framework
  • plain.htmx: build modern user experiences using existing tools
  • plain.elements: provides a new paradigm for reusable components in your app's templates
  • plain.pages: provides file-based routing using HTML and Markdown
  • plain.esbuild: provides a streamlined build process for compiling JavaScript
  • plain.vendor: download and self-host JavaScript and CSS assets without relying on a CDN

See also

Favorite site

author Zer0 sitemap