Open-source Python application platform combining interactive frontend generation with scenario and data pipeline orchestration.
- Language
- Python
- License
- Apache-2.0
- Running for
- 2 years 6 months
- Team
- 6-20 people
Why this architecture
Taipy enables Python data scientists to build full-stack web applications and data DAG pipelines using pure Python bindings.
Tech stack by layer
7 technologies · audited Sep 17, 2026- ReactReactive UI rendering runtime compiled with React Compiler and Webpack
- Material UIComponent library powering dashboard controls, date pickers, and tree navigation
- TypeScriptWeb client islands, custom data visualizers, and Arrow deserialization bridges
- SQLAlchemyRelational persistence adapter supporting scenario and pipeline metadata storage
- PandasHigh-throughput tabular data manipulation and transformation pipelines
Taipy architecture diagram
Open SVGDiagram as text
- Taipy GUI (React · MUI) → GUI server (Flask · Socket.IO): Socket.IO
- Your Python app (taipy) → GUI server (Flask · Socket.IO): pages
- Your Python app (taipy) → Taipy Core (scenarios · DAG): scenarios
- Taipy Core (scenarios · DAG) → Orchestrator (NetworkX DAG jobs): submit jobs
- Taipy Core (scenarios · DAG) → Repository (SQLAlchemy): metadata
- Orchestrator (NetworkX DAG jobs) → Data nodes (Pandas · Arrow): read / write
- GUI server (Flask · Socket.IO) → Data nodes (Pandas · Arrow): Arrow payloads
Key architectural decisions
4 decisions- 01
Modular Architecture Separating Core and GUI
Decouples pipeline orchestration and scenario management in taipy-core from web presentation in taipy-gui, allowing headless or interactive execution.
- 02
Bidirectional WebSockets with Flask-SocketIO
Synchronizes Python variable states directly with React frontend components over WebSockets without manual REST endpoint boilerplate.
- 03
Columnar Serialization via Apache Arrow
Transmits large tabular datasets and dataframes to browser clients using Apache Arrow binary streaming for rapid visual rendering.
- 04
DAG Workflow Orchestration with NetworkX
Models computational pipelines as directed acyclic graphs to manage execution task dependencies, caching, and conditional execution.
How Taipy is built
How Taipy is structured
Taipy is organized as a modular Python platform composed of several specialized packages maintained within a unified repository:
taipy.core: The foundation runtime responsible for data nodes, tasks, pipeline execution DAGs, scenario comparison, and scheduling.taipy.gui: The interactive web application generator that parses Python-defined layouts (Markdown or Python HTML builders) and orchestrates client-server state bindings.taipy.rest: RESTful API endpoints generated via apispec and Flask-RESTful to allow external services to trigger scenarios and query job states.taipy.common: Shared data types, configuration schemas, and utility classes across packages.frontend/taipy-guiandfrontend/taipy: React 19 single-page applications compiled with Webpack that render controls, Plotly charts, and interactive DAG pipeline graphs using@projectstorm/react-diagrams.
Frontend
The frontend is an enterprise dashboard client built with React 19 and Material UI (@mui/material). The interface is bundled via Webpack and distributed directly within the taipy-gui Python package distribution:
- Visual Components: Provides rich data grids, date pickers, hierarchical tree views, and reactive markdown renderers.
- Plotly Integration: Embeds
react-plotly.jsfor interactive statistical charts, timeseries plots, and scatter visuals. - Arrow Deserialization: Ingests Apache Arrow binary buffers directly in the browser, allowing millions of table cells to render without JSON serialization bottlenecks.
- Pipeline Visualizer: Uses
@projectstorm/react-diagramsintaipy-gui-coreto render interactive scenario flowcharts and data node dependencies.
Backend & APIs
The backend execution layer runs in Python on top of Flask and Gevent or Simple-WebSocket:
- State Synchronization: Dual-channel communication via Flask-SocketIO pushes Python variable mutations to the browser while receiving user interactions (button clicks, slider changes) to invoke Python callbacks.
- REST Services: Exposes OpenAPI-documented endpoints for querying pipeline executions, submitting scenario parameters, and monitoring worker job statuses.
- Task Runner: A local or standalone orchestrator executing Python tasks concurrently with thread pools or subprocess workers.
Data & persistence
Taipy decouples algorithm definitions from data storage through abstract Data Nodes:
- Relational Databases: Supported via SQLAlchemy, with native connectors for PostgreSQL, MySQL, and Microsoft SQL Server.
- Document & Cloud Stores: Pluggable adapters for MongoDB (
pymongo) and Amazon S3 (boto3). - File Backends: High-performance tabular storage using Apache Parquet (
pyarrow,fastparquet), CSV, Excel (openpyxl), and JSON formats. - State Versioning: Automatically tracks scenario parameters, run histories, and data artifacts for auditability and what-if simulation comparisons.
Realtime / collaboration
Realtime interactivity is established via WebSockets using flask-socketio on the server and socket.io-client in the React frontend. When user sessions submit inputs or when background pipelines update computed data nodes, delta update events are dispatched across active client sessions, ensuring synchronized views across multi-user web dashboards.
Build, test & deploy
The build and deployment pipelines support both Python wheels and npm assets:
- Frontend assets are compiled using Webpack (
webpack --mode production) and bundled into static assets insidetaipy/gui/webapp. - Python packages use
setuptoolswithpyproject.tomland Ruff for linting and formatting. - Unit and integration tests run across Python versions 3.9 through 3.12 using
pytestandplaywrightfor headless browser verification. - Continuous integration workflows on GitHub Actions manage multi-package releases, dependency auditing, and automated benchmark tracking.
Self-hosting notes
Taipy applications are self-contained Python services:
- Run locally or in production containers with
python app.pyor through the entrypoint CLItaipy run. - Production deployments typically front the Flask/Gevent server with Nginx or Caddy to terminate SSL and handle persistent WebSocket upgrades.
- Scenarios and pipeline metadata can be persisted to an external PostgreSQL instance to ensure state durability across container restarts.
What to copy (and what not to)
What to copy:
- The binary data transmission pattern using Apache Arrow buffers between Python backend engines and React frontend grids to eliminate JSON serialization overhead.
- Clean architectural decoupling between headless orchestration (
taipy-core) and presentation layers (taipy-gui). - Providing both markdown-based quick-authoring and programmatic Python builders for defining UI components.
What not to copy:
- Distributing pre-compiled frontend Webpack artifacts inside Python package directories, which complicates local frontend hacking and increases wheel archive sizes.
Sources & repo audit
- Audited
- Sep 17, 2026
- Commit
- 5bcb574
- License
- Apache-2.0
- pyproject.toml (Taipy workspace definition and metadata)
- Pipfile (Backend Python runtime dependencies)
- frontend/taipy-gui/package.json (React frontend and component dependencies)
- frontend/taipy/package.json (Core GUI diagram visualizers)
Independent analysis of repository at github.com/Avaiga/taipy. Spotted an inaccuracy? Use the claim form to request a correction.
Show this stack on your README or website
[](https://stackitfast.com/project/taipy)Paste it into your README. It shows your current stack and links to this page.
Scaffold it with your agent
Paste this prompt into Claude Code, Cursor, Windsurf or AGY to start a project with Taipy's architecture.
- 1Copy the promptThe full markdown spec, with every layer and decision.
- 2Open your AI toolClaude Code, Cursor, Windsurf or Copilot, in a new repo.
- 3Paste and scaffoldUse it as the first instruction; review before you ship.
# MISSION: Scaffold "Taipy" Production Architecture
You are an expert Senior Staff Software Architect and Full-Stack Engineer. Your mission is to scaffold and implement a production-grade, highly reliable, and modular codebase following the proven architecture of **Taipy**.
---
## 1. PROJECT SPECIFICATIONS & BENCHMARK
- **Reference Architecture**: Taipy
- **What It Does**: Open-source Python application platform combining interactive frontend generation with scenario and data pipeline orchestration.
- **Domain & Category**: AI Application Framework
- **Production Scale**: 6-20 people
- **Development Mode**: HYBRID
- **Architectural Rationale**: Taipy enables Python data scientists to build full-stack web applications and data DAG pipelines using pure Python bindings.
- **Live Website Reference**: https://www.taipy.io
- **Source Repository**: https://github.com/Avaiga/taipy
---
## 2. PRODUCTION TECH STACK
- **Full Stack Array**: Python, TypeScript, React, Flask, Material UI, SQLAlchemy, Pandas
- **Primary Language(s)**: Python, TypeScript, CSS, JavaScript, Jupyter Notebook, Jinja
- **License of the reference repo**: Apache-2.0
- **Frontend**: React — Reactive UI rendering runtime compiled with React Compiler and Webpack; Material UI — Component library powering dashboard controls, date pickers, and tree navigation; TypeScript — Web client islands, custom data visualizers, and Arrow deserialization bridges
- **Backend & APIs**: Python — Core scenario orchestrator, execution DAG engine, and server-side state runtime; Flask — Embedded web framework serving API endpoints and Socket.IO bidirectional channels
- **Data & persistence**: SQLAlchemy — Relational persistence adapter supporting scenario and pipeline metadata storage; Pandas — High-throughput tabular data manipulation and transformation pipelines
---
## 3. KEY ARCHITECTURAL DECISIONS (audited from https://github.com/Avaiga/taipy @ 5bcb574)
1. **Modular Architecture Separating Core and GUI**: Decouples pipeline orchestration and scenario management in taipy-core from web presentation in taipy-gui, allowing headless or interactive execution.
2. **Bidirectional WebSockets with Flask-SocketIO**: Synchronizes Python variable states directly with React frontend components over WebSockets without manual REST endpoint boilerplate.
3. **Columnar Serialization via Apache Arrow**: Transmits large tabular datasets and dataframes to browser clients using Apache Arrow binary streaming for rapid visual rendering.
4. **DAG Workflow Orchestration with NetworkX**: Models computational pipelines as directed acyclic graphs to manage execution task dependencies, caching, and conditional execution.
---
## 4. NON-NEGOTIABLE ARCHITECTURAL GUARDRAILS
1. **Monorepo & Modular Separation**:
- Structure as a Turborepo monorepo with strict package boundaries:
- `apps/web`: Application UI, routing, layouts, and server endpoints.
- `packages/ui`: Shared design tokens, CSS variables, and Radix UI primitive components.
- `packages/db`: Database schemas, client singleton, declarative migrations, and seed scripts.
- `packages/config`: Shared TypeScript, ESLint, and build configurations.
2. **Strict Type Safety & Zero `any` Policy**:
- Enable `strict: true`, `noImplicitAny: true`, and `strictNullChecks: true`.
- Validate ALL external inputs, API request bodies, and query parameters with **Zod** schemas before execution.
3. **Frontend & Rendering Guidelines**:
- Isolate interactive UI state to leaf components. Keep core pages lightweight and performant.
4. **Design System & Aesthetics**:
- Keep every color, radius, shadow and font in a single token file (CSS variables) and consume tokens everywhere; never hardcode hex values in components.
- Prefer crisp 1px borders and one subtle shadow scale over blurry default shadows. Pair one sans-serif for body/headings with one monospace for tags, badges, metrics, and code.
5. **Data Layer & Reliability**:
- Write declarative schema definitions with foreign keys, composite indexes on queried filters, and automated timestamp triggers.
- Use connection pooling and prepared statements for serverless database execution.
---
## 5. STEP-BY-STEP SCAFFOLDING ROADMAP
- **Phase 1: Workspace & Root Config**: Initialize package manager, monorepo configuration (`turbo.json`, `tsconfig.base.json`, `package.json`).
- **Phase 2: Database Schema & Client**: Set up the data layer (SQLAlchemy, Pandas): client, connection pool, models, and migration scripts.
- **Phase 3: Design Tokens & UI Primitives**: Build accessible `Button`, `Input`, `Card`, `Badge`, and layout wrappers inside `packages/ui`.
- **Phase 4: Core Application Routes & Handlers**: Implement primary authentication, user session handling, and application routes.
- **Phase 5: Quality Assurance & Build Verification**: Run `tsc --noEmit`, ESLint, Prettier, and smoke test suites to ensure zero compilation or runtime errors.
---
## 6. EXECUTION INSTRUCTIONS
1. Review all specifications, architectural guardrails, and stack choices above.
2. Present the full monorepo directory tree structure.
3. Systematically generate the complete, production-ready codebase according to the 5-phase roadmap above — starting with the root workspace setup, followed by the database schema, UI design system package, and full-stack application routes until the repository is fully scaffolded and ready to run.Frequently asked about Taipy
Can Taipy execute computational pipelines without launching a web server?
Yes, taipy-core can run as a headless pipeline runner and scenario management engine inside batch scripts or Jupyter notebooks.
How does Taipy handle frontend updates when Python variables mutate?
The server tracks variable bindings and broadcasts mutation events through Flask-SocketIO to trigger reactive React UI re-renders.
One email a month: new deep dives and stack trends
New source-audited architectures, head-to-head comparisons and the monthly stack report. No spam, unsubscribe anytime.
Similar architectures
- Dify.aiAI-agentLLM App Builder · 20+ peopleShares TypeScript · Python · Flask
- Open WebUIAI-agentSelf-Hosted AI Interface & Agent Hub · 2-5 peopleShares Python · TypeScript · SQLAlchemy
- CopilotKitAI-agentAI Copilot & Assistant SDK · 2-5 peopleShares TypeScript · React · Python
- MindsHub (formerly MindsDB)AI-agentDesktop & Web AI Agent Workspace · 20+ PeopleShares Python · TypeScript · React
- OllamaAI-agentLocal AI Inference Engine · 1-5 peopleShares TypeScript · React
- FlowiseAI-agentLLM Workflow & Orchestration UI · 2-5 peopleShares TypeScript · React