
How I Rebuilt zenml.io in a Week with Claude Code
I rebuilt zenml.io — 2,224 pages, 20 CMS collections — from Webflow to Astro in a week using Claude Code and a multi-model AI workflow. Here's how.
Compare ZenML and Prefect, two powerful workflow orchestration tools, and discover how ZenML's ML-centric features and seamless integration with the MLOps ecosystem can revolutionize your machine learning pipelines. While Prefect offers a flexible and user-friendly platform for building and managing data workflows, ZenML takes it a step further by providing a specialized solution tailored for ML pipelines. Explore ZenML's intuitive pipeline definition, built-in experiment tracking, and extensive integrations with ML frameworks and tools, empowering you to streamline your end-to-end ML workflows and accelerate your journey to production-ready models.
Feature-by-feature comparison
| ML-Centric Design | Purpose-built for machine learning workflows | General-purpose workflow orchestration |
| Experiment Tracking | Built-in experiment tracking and comparison | Relies on external tools for experiment tracking |
| Model Registry | Integrated model registry for versioning and deployment | No built-in model registry |
| Hyperparameter Tuning | Native support for hyperparameter tuning | Requires custom implementation |
| ML Framework Integration | Deep integration with popular ML frameworks (scikit-learn, TensorFlow, PyTorch) | Supports integration with various ML frameworks |
| Pipeline Definition | Clean and intuitive pipeline definition using Python decorators | Flexible pipeline definition using Python |
| Task Parallelism | Supports parallel execution of pipeline steps | Enables parallel execution of tasks |
| Data Versioning | Integrates with data versioning tools for reproducibility | No built-in data versioning support |
| Cloud Integration | Built-in support for deploying pipelines to cloud platforms | Supports deployment to various cloud platforms |
| Workflow Scheduling | Schedules and triggers ML pipeline runs | Robust scheduling and orchestration of workflows |
Code comparison
from zenml import pipeline, step
from zenml.integrations import mlflow
@step
def preprocess_data(data):
# Preprocess the data
preprocessed_data = ...
return preprocessed_data
@step
def train_model(preprocessed_data):
# Train the model
model = ...
return model
@step
def evaluate_model(model, test_data):
# Evaluate the model
metrics = ...
mlflow.log_metrics(metrics)
return metrics
@pipeline
def ml_pipeline(data, test_data):
preprocessed_data = preprocess_data(data)
model = train_model(preprocessed_data)
metrics = evaluate_model(model, test_data)
# Run the pipeline
ml_pipeline(data, test_data) from prefect import task, Flow
from prefect.tasks.ml import mlflow
@task
def preprocess_data(data):
# Preprocess the data
preprocessed_data = ...
return preprocessed_data
@task
def train_model(preprocessed_data):
# Train the model
model = ...
return model
@task
def evaluate_model(model, test_data):
# Evaluate the model
metrics = ...
mlflow.log_metrics(metrics)
return metrics
with Flow("ml_pipeline") as flow:
data = ...
test_data = ...
preprocessed_data = preprocess_data(data)
model = train_model(preprocessed_data)
metrics = evaluate_model(model, test_data)
# Run the pipeline
flow.run()
ZenML is purpose-built for machine learning workflows, offering a range of ML-specific features such as experiment tracking, model registry, and hyperparameter tuning, which are not natively available in Prefect.
ZenML provides a clean and intuitive way to define ML pipelines using Python decorators, making it easy to encapsulate and reuse pipeline components across different projects and experiments.
ZenML offers deep integration with popular ML frameworks like scikit-learn, TensorFlow, and PyTorch, as well as seamless integration with other MLOps tools, enabling end-to-end orchestration of ML workflows.
With built-in support for data versioning and lineage tracking, ZenML ensures reproducibility, traceability, and governance of your ML pipelines, facilitating compliance and collaboration.
ZenML's extensible architecture allows you to customize and extend its functionality to fit your specific ML workflow requirements, providing flexibility and adaptability as your needs evolve.
Expand Your Knowledge

I rebuilt zenml.io — 2,224 pages, 20 CMS collections — from Webflow to Astro in a week using Claude Code and a multi-model AI workflow. Here's how.


Agentic RAG without guardrails spirals out of control. Here's how ZenML's dynamic pipelines give you fan-out, budget limits, and lineage without limiting the LLMs.