Frozen-Flask
Freezes a Flask application into a set of static files.
What it is and what it does
Frozen-Flask takes a running Flask application and converts it into a static site—a directory of HTML, CSS, and JavaScript files. Instead of serving pages dynamically from Python, the frozen output can be hosted on any web server without any server-side runtime. This is useful when you want the simplicity and performance of static hosting but prefer to author your site in Flask.
The package works by discovering routes in your Flask app, visiting each one, and writing the rendered output to disk. It depends only on flask and integrates directly into your Flask application code. The project has been maintained since 2011 and is currently supported by CourtBouillon, though releases are infrequent.
Use it for:
- Convert a Flask blog or documentation site into static files for hosting on GitHub Pages or a CDN
- Generate a static snapshot of a Flask application for archival or offline distribution
- Deploy a Flask site to environments that only support static file serving, reducing infrastructure complexity
- Build a static site workflow where Flask handles templating and routing logic
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts a Flask application into a directory of static files that can be served by any traditional web server without a Python runtime.
Yes, if you need to convert a Flask app to static files for hosting on simple web servers or CDNs. The low install friction, permissive BSD 3-clause license, and active maintenance make it a straightforward choice for this specific task. Best suited to applications with predictable, enumerable routes.
Install
frozen-flask on PyPI
pip
pip install frozen-flaskuv
uv add frozen-flaskpoetry
poetry add frozen-flaskInstalling Frozen-Flask
Before you install
Low friction install with a single runtime dependency on flask. The project is dormant (917 days since last release) but remains actively maintained by CourtBouillon; the repository is not archived and has received recent commits.
License in practice
BSD 3-clause license is permissive; you may use, modify, and distribute the package freely in commercial and private projects, provided you retain the copyright notice and disclaimer.
Quickstart
pip install frozen-flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World'
Verify before relying
- How the package handles dynamic routes, query parameters, or client-side routing in frozen output
- Performance characteristics when freezing applications with many routes
- Compatibility with modern Flask extensions and middleware
- Whether custom route discovery or URL enumeration is required for non-standard routing patterns
Package facts
| License | Copyright (c) 2010-2012 by Simon Sapin and contributors. See AUTHORS for more details. Some rights reserved. Redistribution and use in source and binary forms, with or without modification, are… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — flask |
| Maintenance | dormant — 917 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 226,257/month — #9,203 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: frozen_flask-1.0.2-py3-none-any.whl
Keywords: flask, static
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pytest-freezerpytest-freezer provides a pytest fixture that…
permissive · top 5,000 on PyPI
Flask-SessionFlask-Session adds server-side session storage…
permissive · top 5,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
Flask-SilkProvides a Flask integration to serve Silk icon…
permissive · top 15,000 on PyPI
Flask-AssetsIntegrates asset management into Flask…
permissive · top 15,000 on PyPI
Flask-AutoIndexFlask-AutoIndex generates directory listing…
permissive · top 15,000 on PyPI
weasyprintWeasyPrint converts HTML and CSS into PDF…
permissive · top 1,000 on PyPI
freezegunFreezeGun mocks Python's datetime and time…
permissive · top 1,000 on PyPI
Flask-WTFFlask-WTF integrates WTForms with Flask to…
permissive · top 5,000 on PyPI
Flask-CompressFlask-Compress automatically compresses Flask…
permissive · top 5,000 on PyPI