PyBlade
The reactive template engine for Python web frameworks.
PyBlade is a lightweight, reactive template engine for Python. It brings reusable UI components and server-driven interactivity to your web apps using Python and HTML, without requiring a frontend framework.
[!WARNING] Beta: PyBlade is still experimental. APIs may change between releases and it is not yet recommended for production applications.
Installation
Install PyBlade from PyPI:
pip install pyblade
PyBlade integrates into your existing Python web application rather than replacing your application framework.
CLI
PyBlade includes a CLI for common development tasks:
pyblade init
pyblade serve
pyblade make:template
pyblade make:component
pyblade make:livecomponent
To see the available commands and options, run pyblade --help or pyblade <COMMAND> --help.
See the CLI documentation for more details.
Templates
PyBlade templates are regular .html files with additional syntax for layouts, conditions, loops, and components.
Layouts
@extends('layouts.base')
@block('content')
<h1>Hello, {{ user.name }}!</h1>
@endblock
Conditions
@if(user.is_authenticated)
<p>Welcome back, {{ user.name }}.</p>
@else
<p>Please sign in.</p>
@endif
Loops
@for(post in posts)
<article>
<h2>{{ post.title }}</h2>
</article>
@empty
<p>No posts found.</p>
@endfor
Components
Reusable components as well as live components can be rendered directly from templates:
<pb-user-profile :user="user" />
They can also be invoked with the component directive:
@component('user-profile', {'user': user})
Framework Integration
PyBlade is designed to work with Python web frameworks and can be introduced into an existing application.
Only django is fully supported for now, we will add other frameworks support incrementally.
Editor Support
PyBlade IntelliSense for VS Code provides:
- Syntax highlighting
- Snippets
- Directive completion
- Component completion
Additional editor integrations are planned.
Project Status
PyBlade is currently in beta.
The template engine, component system, CLI, Live Components, and framework integrations are actively evolving. APIs and conventions may change before the first stable release.
If you want to follow the project, report a bug, request a feature, or share feedback, visit the GitHub repository or PyBlade Feedback.
Contributing
Contributions are welcome, including bug reports, fixes, documentation, examples, editor tooling, and new ideas.
Before contributing, please read:
You can also contribute to the wider PyBlade ecosystem:
-
PyBlade Documentation, the source for docs.pyblade.com
If you discover a security vulnerability, please follow the Security Policy instead of opening a public issue.
Acknowledgements
PyBlade's template syntax is inspired by Laravel Blade, while its Live Components are inspired by Livewire.
PyBlade builds on ideas and work from the Python, Django, and Laravel communities.
Special thanks to Michael Dimchuk for graciously releasing the PyBlade name on PyPI for this project.
License
PyBlade is licensed under the BSD 3-Clause License.
Metadata
Release files for PyBlade 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyblade-0.3.0.tar.gz | 188.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyblade-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 412.5 kB
Release files / pyblade-0.3.0.tar.gz
| Download URL | pyblade-0.3.0.tar.gz |
|---|---|
| Size | 188.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6fcdb48b59fcab4b90bd2e14e8b91bff0dd0b9262467b09f27a8ddef6bf2c03a
|
|
BLAKE2b-256 checksum How to use checksums |
c0a06af80cd33d825c7455567942c011b9067d9cd07c0a830e10fccf1bc452c5
|
| 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 Oct 2, 2026.
Transparency logRelease files / pyblade-0.3.0-py3-none-any.whl
| Download URL | pyblade-0.3.0-py3-none-any.whl |
|---|---|
| Size | 224.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd78b8ce185ca1ed276ad9477a8d19629c3b7d8ac86fb021c1a748a6d3519c94
|
|
BLAKE2b-256 checksum How to use checksums |
6e437c254359ef89eda30de600a050e651382202617c688ea342343e24f4336e
|
| 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 Oct 2, 2026.
Transparency log