Skip to main content

Dependencies

The core install is what every Feather app uses: Flask, Flask-SQLAlchemy, Flask-Migrate, Flask-Login, Flask-WTF, Werkzeug, SQLAlchemy, Alembic, Authlib, Requests, Jinja2 and urllib3. Everything else is an extra, so an app that renders no PDFs does not install a PDF renderer.
feather new writes a requirements.txt naming the extras your answers enabled, so this is usually handled for you. feather --version and feather security-check report which extras are installed.
Importing a feature whose extra is missing raises an error naming the exact install command, rather than an import traceback.

Frontend libraries

Bundled via npm, no CDN: HTMX, Idiomorph, Apache ECharts. Loaded from Google: Google Fonts and Material Icons.

DEBUG mode behaviour

Understanding this is crucial for production.
Unstyled pages in production happen when DEBUG=False but feather build was never run, or when static/dist/ is missing or outdated. Always run feather build before deploying.

Configuration shorthand

FLASK_CONFIG accepts shorthand names. These are equivalent:
Supported: development/dev, production/prod, testing/test.

Deploy with Docker

Eight files, one machine, Caddy in front.

Full configuration reference

Every key Feather reads, with its default.