Skip to main content

Bino full-stack framework CLI - Python backend + Rust/SWC React SSR

Project description

🚀 Tavo

Tavo is a modern full-stack framework CLI that combines:

  • Python backend (FastAPI/Starlette base)
  • 🦀 Rust + SWC powered SSR for React (with App Router support)
  • 🔥 Client hydration & HMR with no Node.js required
  • 🛠️ CLI scaffolding for apps, routes, components, and APIs

Think of it as Laravel Breeze + React + Python but lighter, faster, and developer-friendly.


✨ Features

  • SSR with React App Router (layouts, nested routes, use client)
  • Hydration scripts compiled with SWC (no Node.js needed)
  • File-based routing for both backend and frontend
  • Hot Module Replacement (HMR) via inline WebSocket
  • One CLI (tavo) to rule them all — scaffold projects, run dev server, and build
  • Python backend with Starlette/FastAPI style APIs out of the box
  • Template system for rapidly creating new apps

📦 Installation

pip install tavo

Or from source:

git clone https://github.com/cyberwizdev/tavo
cd tavo
pip install -e .

⚡ Quick Start

1. Create a new project

tavo new myapp

This sets up a project with:

  • Python backend (tavo_core)
  • React frontend with SSR
  • HMR + WebSocket inline dev server
  • Preconfigured templates

2. Run dev server

cd myapp
tavo dev

Visit: http://localhost:3000 Changes reload instantly ⚡.


3. Build for production

tavo build

This generates:

  • ✅ Compiled backend (Python)
  • ✅ Optimized frontend bundle (SWC)
  • ✅ Static + SSR-ready HTML

🗂️ Project Structure

A new tavo project looks like this:

myapp/
│── app/                  # React components (App Router)
│   ├── layout.tsx
│   ├── page.tsx
│   └── ...
│── backend/              # Python backend (APIs, DB, services)
│   ├── main.py
│   └── routes/
│── public/               # Static assets
│── templates/            # Scaffolding templates
│── package.json          # For frontend deps (optional, only if needed)
│── pyproject.toml        # Python project config
│── tavo.config.json      # Tavo project config

🛠️ CLI Commands

Command Description
tavo new <name> Create a new project
tavo dev Run development server with HMR
tavo build Build backend + frontend for production
tavo add <name> Add a component, page, or API route
tavo doctor Check environment & setup

⚙️ Configuration

Tavo uses a tavo.config.json file:

{
  "name": "myapp",
  "backend": "fastapi",
  "frontend": "react",
  "ssr": true,
  "hmr": true
}

🤝 Contributing

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/foo)
  3. Commit changes (git commit -m 'Add foo')
  4. Push to branch (git push origin feature/foo)
  5. Open a PR 🚀

📜 License

MIT © CyberwizDev


🌟 Why the name Tavo?

Short, catchy, and inspired by “Tabula Volans” — “a flying tablet/page” in Latin. Just like how Tavo makes pages fly from Python to React ⚡.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tavo-0.1.31.tar.gz (131.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tavo-0.1.31-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file tavo-0.1.31.tar.gz.

File metadata

  • Download URL: tavo-0.1.31.tar.gz
  • Upload date:
  • Size: 131.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for tavo-0.1.31.tar.gz
Algorithm Hash digest
SHA256 2e7d21e0e4f4430c5436ec198f910126c45f0276c3c1cc8ee4afd7d5670a2cc2
MD5 5efbb01057c1f09086bb2346f71bf48e
BLAKE2b-256 d56cb4059e42c700a16b186b171f84c8038f7819dc2f087a9489b6807bfbb58e

See more details on using hashes here.

File details

Details for the file tavo-0.1.31-py3-none-any.whl.

File metadata

  • Download URL: tavo-0.1.31-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for tavo-0.1.31-py3-none-any.whl
Algorithm Hash digest
SHA256 c8a02b30b8248d0203cd4825f3dee1e925c6d403c1622d0f442922c001024d8d
MD5 5fa78a9a19e99baeea2a774f15615e01
BLAKE2b-256 639c59ab5bf7e7c35869a1925257a7ad6cb1b568a8e272a0af7a8f02d3b88cc5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page