Full stack Python web framework to build websites and web apps with as little boilerplate as possible
A Flask-based (very) opiniated full-stack web framework where all the tech choices have been made. Hyperflask combines multiple Flask extensions and frontend libraries into a seamless experience.
Features and technologies:
- Web framework built on top of Flask as a set of extensions
- File-based and/or app-based routing
- A new file format combining python code in frontmatter and html templates to define routes
- SQL focused ORM with sqlorm, optimized for sqlite
- Modern asset pipeline using esbuild and tailwindcss
- Deep integration with htmx
- Easily create reusable backend and frontend components
- Build frontend components using Web Components, Alpine.js, React and more. Mix technologies at will.
- Component library based on daisyUI with icons from Bootstrap Icons
- Authentication and user management with social logins and MFA
- Static content collections to easily create blogs and manage static content
- File management with built-in image manipulation and S3 integration
- Template based emails with mjml support
- Background tasks using dramatiq with sqlite as the default broker
- Push support for realtime pages using server-sent events
- I18n using gettext
- Static, hybrid or dynamic modes for content serving
Hyperflask-Start should be used to create new projects:
- Dev environment based on Development Containers
- Optimized for VScode with breakpoint debugging for frontend and backend
- Mailpit for email testing
Hyperflask is in BETA and can start to be used for non-critical production apps
Checkout the list of all the projects developed as part of the Hyperflask stack and their current development status on the Hyperflask Github organization homepage.
Hyperflask itself is minimal and mostly a collection of Flask extensions seamlessly integrated together.
A good part of these extensions is developed as part of the Hyperflask project. Checkout the Hyperflask organization page for a list of all these projects.
Name | Description |
---|---|
Flask-Assets-Pipeline | Modern asset pipeline using esbuild |
Flask-Babel-Hyper | Flask-Babel fork with additional utilities |
Flask-Collections | Manage collections of static content |
Flask-Configurator | File based configuration |
Flask-DebugToolbar | Debug Toolbar |
Flask-File-Routes | File-based routing with a new file format combining python and jinja template in a single file |
Flask-Files | Fsspec based files management (upload, storage and image manipulation) |
Frozen-Flask | Generate a static website from your Flask app |
Flask-Geo | Geolocation using Maxmind |
Htmx-Flask | HTMX integration for Flask |
Flask-Login | User session management |
Flask-Mailman | Send emails |
Flask-Mailman-Templates | Email templates for Flask-Mailman |
Flask-Mercure-SSE | Push events via server-sent events using the Mercure protocol |
Flask-SQLORM | Flask integration of sqlorm |
Flask-Super-Macros | Better macro management for Jinja |
Flask-Suspense | Suspense for Flask |
Flask-WTF | WTForms integration |
- Create your project directory:
mkdir example-project && cd example-project
- Create and activate a virtualenv:
python -m venv .venv && source .venv/bin/activate
pip install hyperflask
- Run
npm install esbuild tailwindcss @tailwindcss/cli htmx.org htmx-ext-sse bootstrap-icons daisyui
- Run
mkdir pages && echo "Hello world" > pages/index.jpy
- Start a development server using
hyperflask dev