Flask
Open SourceThe Python micro framework for building web applications.
Scores
About
Flask is a lightweight WSGI web framework for Python, first released in 2010. It is deliberately a "micro-framework" — the core provides routing, a development server, request/response handling, Jinja2 templating, and secure signed cookies, but adds nothing else by default. You choose the database, ORM, authentication library, and form validation tool from Flask's large ecosystem of extensions.
Routing uses Python decorators to map URL patterns to view functions. Blueprints organise a larger application into modular components that can be registered independently, enabling clean separation of concerns. The built-in Jinja2 templating engine supports template inheritance, macros, and filters.
Popular extensions include Flask-SQLAlchemy (ORM), Flask-Migrate (Alembic migrations), Flask-Login (session management), and Flask-CORS. Flask apps are deployed via WSGI servers (Gunicorn, uWSGI) behind Nginx or as Docker containers on any cloud platform.
Key Features
- Lightweight and minimal core—only what you need
- Flexible architecture—you choose your own tools and libraries
- Built-in development server and interactive debugger
- Jinja2 templating for server-side rendering
- RESTful request routing with decorator syntax
- Blueprints for organizing larger applications into modules
- Extensive ecosystem of community extensions
- Easy to learn and get started
Pros
- Simplicity—can build a working app in minutes
- Maximum flexibility—choose any database, ORM, or authentication method
- Small learning curve—great for beginners and small projects
- Extensible ecosystem with hundreds of extensions
- Works well for both simple APIs and complex applications
- Mature and stable with large community
- Excellent documentation and examples
- Minimal boilerplate code
Cons
- Less opinionated—requires more architectural decisions from developers
- No built-in components need to be assembled manually (database, auth, etc.)
- Can become messy without proper project structure discipline
- Synchronous by default—no native async support (requires ASGI variant)
- Less built-in security features compared to Django
- Project structure decisions left to developers can lead to inconsistency
- Scaling to large applications requires careful architecture planning
Pricing
Open SourcePossible Stacks
HTMX + Flask
ProjectThe simplest way to add dynamic interactions to a Flask app. HTMX attributes in Jinja2 templates, server returns HTML fragments. Perfect for beginners building server-rendered web apps with Python.
Flask + HTML Templates
ProjectMinimal Flask app serving Jinja2 HTML templates — great for small projects and prototypes.
Flask + Supabase
ProjectA beginner-friendly Python stack for side projects and small apps. Flask handles routing and server logic; Supabase provides managed PostgreSQL, file storage, and a built-in database UI — without the overhead of self-managing a Postgres server. And no seperate frontend is needed - Flask handles it through HTML Jinja2 templates.
