wilco
Server-defined React components for Python backends.
Documentation: FastAPI Guide | Django Guide | Flask Guide | Starlette Guide
Features
- Co-locate components with backend logic — Keep UI components next to the Python code that powers them
- No frontend build pipeline — Components bundled on-the-fly with esbuild when requested
- Production-ready — Pre-compile bundles with
wilco buildfor static file serving - Full source map support — Debug TypeScript directly in browser devtools
- Component composition — Components can dynamically load other components
- Framework agnostic — Works with FastAPI, Django, Flask, Starlette, or any ASGI/WSGI-compatible framework
Quick Start
pip install wilco[fastapi] # or wilco[django], wilco[flask], wilco[starlette]
Create a component
my_components/
└── greeting/
├── __init__.py
├── index.tsx
└── schema.json
// index.tsx
interface GreetingProps {
name: string;
formal?: boolean;
}
export default function Greeting({ name, formal = false }: GreetingProps) {
const message = formal ? `Good day, ${name}.` : `Hey ${name}!`;
return <p>{message}</p>;
}
Mount the API
from pathlib import Path
from fastapi import FastAPI
from wilco import ComponentRegistry
from wilco.bridges.fastapi import create_router
app = FastAPI()
registry = ComponentRegistry(Path("./my_components"))
app.include_router(create_router(registry), prefix="/api")
Load in React
import { useComponent } from '@wilcojs/react';
function App() {
const Greeting = useComponent('greeting');
return <Greeting name="World" />;
}
For component schemas, composition patterns, and framework-specific guides, see the documentation.
API Endpoints
| Endpoint | Description |
|---|---|
GET /api/bundles |
List available components |
GET /api/bundles/{name}.js |
Get bundled JavaScript |
GET /api/bundles/{name}/metadata |
Get component metadata |
Requirements
- Python 3.10+
- Node.js (for esbuild bundling)
- React 19 on the frontend (bundled in the standalone loader)
CLI
wilco serve # Start development server (default)
wilco build --output dist/wilco/ # Pre-compile bundles for production
wilco build --output dist/wilco/ --prefix store --no-minify --sourcemap
See the CLI reference for all options.
Development
This project follows strict TDD methodology.
make test # Run all tests
make docs # Build documentation
make help # Show all available commands
License
Makersquad Source License 1.0 — see LICENSE.md for details.
Free for non-commercial use. Commercial use requires a license. Contact licensing@makersquad.fr for inquiries.
Metadata
Release files for wilco 0.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| wilco-0.5.3.tar.gz | 4.9 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wilco-0.5.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.0 MB
Release files / wilco-0.5.3.tar.gz
| Download URL | wilco-0.5.3.tar.gz |
|---|---|
| Size | 4.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4eb4d6e1d34151182cc244e14463d90670369980353579ab3317c60385b49388
|
|
BLAKE2b-256 checksum How to use checksums |
2279c55cf297937f3295533516e9b937e80e33d7130e57987eded9c0b13e798a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 30, 2026.
Transparency logRelease files / wilco-0.5.3-py3-none-any.whl
| Download URL | wilco-0.5.3-py3-none-any.whl |
|---|---|
| Size | 112.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
66eae556ed8917eeea190cb6de7f6f061cbcbf8645465b5d32c821bb81604e5f
|
|
BLAKE2b-256 checksum How to use checksums |
74f931ba2c106b9c1a966a8b7f249e8fa63cc3d1fb071374e7ede1cfacf57acd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 30, 2026.
Transparency logSecurity for wilco 0.5.3
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for wilco-0.5.3.tar.gz
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 Mar 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.