Feather
A Python web framework built for AI-assisted development.
Documentation · Website · Quickstart · Tutorial
Flask handles the backend, Tailwind CSS the styling, HTMX the interactions that need the server, and vanilla JavaScript the few that need the browser. Authentication, an admin panel, background jobs, multi-tenancy and deployment are already written.
Every generated project carries a CLAUDE.md and an identical AGENTS.md describing the
conventions, and feather check enforces thirteen of them, reporting a file, a line and a
fix for each problem. An assistant writing a feature has somewhere to put each file and a
rule set to write it against, and you get a command that says whether it followed them.
Install
pip install feather-framework
feather new myapp
cd myapp && feather dev
Requires Python 3.11+ and Node.js 22+.
What's included
Every feature is optional, enabled when you create the project or added later.
| Authentication | Google OAuth, approval workflows, roles and permissions |
| Admin panel | User approvals, role changes, analytics and error logs |
| Multi-tenancy | Tenants by email domain, isolated at route, service and model layers |
| Background jobs | Thread pool with concurrency limits, or RQ on Redis |
| Caching | Function and response caching, memory or Redis |
| File storage | One interface over local files and Google Cloud Storage |
| Transactional email through Resend | |
| Dark mode | Cookie-persisted toggle on every page, including the admin |
| Security headers | CSP, HSTS and the rest, applied in production |
| Rate limiting | A decorator, or Flask-Limiter with Redis across workers |
| Events | Pub/sub with synchronous and background listeners |
| Error logging | Database-backed, tenant-scoped, with stack traces |
| Health checks | /health, /health/live and /health/ready |
| Request tracking | A unique ID per request, in headers and every log line |
The frontend, in three layers
Start with components for anything static. Reach for HTMX when you need server data without a page reload. Use islands only when state has to live in the browser. Most features never get past the first two.
Read more in How the frontend works.
Documentation
Everything lives at docs.featherframework.org.
| Quickstart | Scaffold a project and get the dev server running |
| Kanban tutorial | Six parts, from a static page to a deployed SaaS, with the prompts to use |
| Working with AI assistants | How the conventions and feather check fit together |
| CLI reference | Every command, grouped by what you are doing |
| Configuration | Every key Feather reads, with its default |
| Deployment | Docker and Caddy on one server, with automatic HTTPS |
| Upgrading | What to check when you bump the pin |
The tutorials are also in this repository, under tutorials/, with every
code block written out.
Contributing
git clone https://github.com/RolandFlyBoy/Feather.git
cd Feather
pipx install -e .
feather test --framework
The docs site is built from docs/ in this repository, so a change to the
framework and a change to its documentation belong in the same pull request.
Bug reports from real applications are the most useful thing you can send. Open an issue.
License
MIT. See LICENSE.
Release files for feather-framework 0.9.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| feather_framework-0.9.13.tar.gz | 297.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| feather_framework-0.9.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 676.4 kB
Release files / feather_framework-0.9.13.tar.gz
| Download URL | feather_framework-0.9.13.tar.gz |
|---|---|
| Size | 297.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68df0e36c1722709b836fbd9fa2bf8bb20e89e55b063fed142b447d2733c9a83
|
|
BLAKE2b-256 checksum How to use checksums |
8735b9f4ef95dfb2561950535fca608d14a10c11f1c4954000a66712eade95fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / feather_framework-0.9.13-py3-none-any.whl
| Download URL | feather_framework-0.9.13-py3-none-any.whl |
|---|---|
| Size | 379.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c11296c0262b9243a36a3d071038e9d3b377a7b0f768cdd6e896f637011a18c
|
|
BLAKE2b-256 checksum How to use checksums |
8cc14ece503caa55621028e45483d88d495736567fee30762f7ba478a7f5b4d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency log