+ Production-grade observability and systematic evaluation. Monitor
+ performance with OpenTelemetry and test agent behavior with built-in
+ evaluation suites.
+
+
+ {/* Checkmarks list */}
+
+
+
+
+
+
+ Distributed tracing (OTLP) with automatic context propagation
+
+
+
+
+
+
+
+
+ ADK-TS semantic spans for agents, tools, and models
+
+
+
+
+
+
+
+
+ Structured logs correlated with traces and requests
+
+ Interactive simulations of real multi-agent execution flows. See how
+ agents coordinate, call tools, and generate structured outputs step by
+ step.
+
+ Production-ready MCP servers built by IQ AI for DeFi, market data,
+ messaging, prediction markets, and more. Use them with ADK-TS, other
+ agent frameworks, or any MCP-compatible runtime.
+
+ ADK-TS connects to any MCP server from the ecosystem —
+ Anthropic's official servers, community servers, or servers you
+ build yourself using the{" "}
+ mcp-starter template.
+
+
);
};
-
export default MCPServersSection;
diff --git a/apps/docs/app/new-landing/_components/navbar.tsx b/apps/docs/app/new-landing/_components/navbar.tsx
index 7088ccb49..2d183b99d 100644
--- a/apps/docs/app/new-landing/_components/navbar.tsx
+++ b/apps/docs/app/new-landing/_components/navbar.tsx
@@ -24,7 +24,11 @@ const NAV_LINKS = [
{ text: "Docs", href: "/docs" },
{ text: "MCP", href: "/docs/mcp-servers" },
{ text: "API", href: "https://iqaicom.github.io/adk-ts/", external: true },
- { text: "Blog", href: "https://blog.iqai.com/", external: true },
+ {
+ text: "Blog",
+ href: "https://blog.iqai.com/tag/dev//tag/dev/",
+ external: true,
+ },
];
type ResourceLinkType = {
diff --git a/apps/docs/app/new-landing/_components/project-features.tsx b/apps/docs/app/new-landing/_components/project-features.tsx
index ab57853e1..42ac30901 100644
--- a/apps/docs/app/new-landing/_components/project-features.tsx
+++ b/apps/docs/app/new-landing/_components/project-features.tsx
@@ -1,11 +1,316 @@
+"use client";
+
+import { motion, useScroll, useTransform } from "motion/react";
+import { useRef, useLayoutEffect, useState } from "react";
+import { ArrowRight, ExternalLink } from "lucide-react";
+import Link from "next/link";
import { SectionWrapper } from "./section-wrapper";
+import { projects } from "@/app/showcase/_schema";
+import Image from "next/image";
+
+const showcaseProjects = projects.slice(0, 6); // Show top 6 projects
const ProjectFeaturesSection = () => {
+ const sectionRef = useRef(null);
+ const trackRef = useRef(null);
+ const rightColRef = useRef(null);
+ const [maxScroll, setMaxScroll] = useState(0);
+
+ // Scroll progress for the section
+ const { scrollYProgress } = useScroll({
+ target: sectionRef,
+ offset: ["start start", "end end"],
+ });
+
+ // Horizontal transform - converts scroll progress to horizontal movement
+ const x = useTransform(scrollYProgress, [0, 1], [0, -maxScroll]);
+
+ useLayoutEffect(() => {
+ const calculateDimensions = () => {
+ if (!sectionRef.current || !trackRef.current || !rightColRef.current)
+ return;
+
+ const trackWidth = trackRef.current.scrollWidth;
+ const visibleWidth = rightColRef.current.offsetWidth;
+
+ // Total horizontal movement = total track minus visible area
+ const horizontalDistance = trackWidth - visibleWidth;
+
+ // Set the section height = viewport height + horizontal distance
+ // This creates scroll space for the horizontal movement
+ sectionRef.current.style.height = `${horizontalDistance + window.innerHeight}px`;
+
+ // Update the max scroll distance for the transform
+ setMaxScroll(horizontalDistance);
+ };
+
+ // Calculate on mount
+ calculateDimensions();
+
+ // Recalculate on resize
+ window.addEventListener("resize", calculateDimensions);
+
+ // Small delay to ensure content is fully loaded
+ const timeout = setTimeout(calculateDimensions, 100);
+
+ return () => {
+ window.removeEventListener("resize", calculateDimensions);
+ clearTimeout(timeout);
+ };
+ }, []);
+
return (
-
-
+
+ );
+}
diff --git a/apps/docs/app/new-landing/_components/why-adkts.tsx b/apps/docs/app/new-landing/_components/why-adkts.tsx
index 8cf7a385a..511206269 100644
--- a/apps/docs/app/new-landing/_components/why-adkts.tsx
+++ b/apps/docs/app/new-landing/_components/why-adkts.tsx
@@ -12,7 +12,7 @@ const features = [
label: "AgentBuilder API",
title: "AgentBuilder API",
description:
- "Build single-prompt agents and full multi-team orchestrators with the same fluent AgentBuilder interface, without any rewrites or boilerplate changes.",
+ "Build a single-prompt agent or a full multi-team orchestrator using the same fluent AgentBuilder interface — no rewrites, no boilerplate changes.",
image: "/landing-page/agentbuilder.svg",
},
{
@@ -21,7 +21,7 @@ const features = [
label: "Multi-LLM Support",
title: "Multi-LLM Support",
description:
- "Seamlessly switch between any LLM provider by changing one string, while your agent logic, tools, and memory remain unchanged.",
+ "Switch between any LLM provider by changing one string. Your agent logic, tools, and memory stay exactly the same.",
image: "/landing-page/multi-llm-support.svg",
},
{
@@ -30,7 +30,7 @@ const features = [
label: "Production-Ready Architecture",
title: "Production-Ready Architecture",
description:
- "Deploy to Node.js, serverless, or containers without changing your agent code, with sessions, memory, streaming, and Zod-typed outputs all built in.",
+ "Sessions, memory, streaming, and Zod-typed outputs are all built in. Deploy to Node.js, serverless, or containers without changing a line of your agent code.",
image: "/landing-page/production-ready.svg",
},
{
@@ -39,7 +39,7 @@ const features = [
label: "Advanced Tooling",
title: "Advanced Tooling",
description:
- "Turn any function into a typed agent tool with automatic schema generation via ADK-TS, and connect to 20+ built-in MCP servers or any external API from a single unified tool registry.",
+ "Turn any function into a typed agent tool — ADK-TS generates the schema automatically. Connect to 20+ built-in MCP servers or any external API from the same tool registry.",
image: "/landing-page/advanced-tooling.svg",
},
{
@@ -48,7 +48,7 @@ const features = [
label: "Multi-Agent Workflows",
title: "Multi-Agent Workflows",
description:
- "Run tasks sequentially, in parallel, or in loops using the same AgentBuilder API, with four execution patterns: sequential pipelines, parallel fan-outs, iterative loops, and custom DAGs.",
+ "Run tasks sequentially, in parallel, or in loops — all using the same AgentBuilder API. Four execution patterns: sequential pipelines, parallel fan-outs, iterative loops, and custom DAGs.",
image: "/landing-page/multi-agent-workflows.svg",
},
{
@@ -57,7 +57,7 @@ const features = [
label: "Workflow Control",
title: "Workflow Control",
description:
- "Pause and resume agent workflows at any step with built-in suspend/resume primitives, enabling human-in-the-loop systems, approval gates, and long-running pipelines using persistent state snapshots and an agent scheduler for cron-style execution.",
+ "Pause and resume agent workflows at any step with built-in suspend/resume primitives. Build human-in-the-loop systems, approval gates, and long-running pipelines — with persistent state snapshots and an agent scheduler for cron-style execution.",
image: "/landing-page/workflow-control.svg",
},
];
diff --git a/apps/docs/app/new-landing/landing.css b/apps/docs/app/new-landing/landing.css
index 2abed955e..cc985e455 100644
--- a/apps/docs/app/new-landing/landing.css
+++ b/apps/docs/app/new-landing/landing.css
@@ -128,7 +128,7 @@ body {
}
.landing-section-header p {
- @apply text-sm sm:text-base lg:text-lg text-muted-foreground max-w-xl;
+ @apply text-sm sm:text-base lg:text-lg text-muted-foreground max-w-3xl;
}
/* Reusable pink glow — bleeds only downward */
diff --git a/apps/docs/package.json b/apps/docs/package.json
index da0133c3f..0965453b0 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -22,6 +22,7 @@
"gray-matter": "^4.0.3",
"lucide-react": "^0.525.0",
"mermaid": "^11.10.1",
+ "motion": "^12.38.0",
"next": "16.1.1",
"next-themes": "^0.4.6",
"posthog-js": "^1.257.0",
diff --git a/apps/docs/public/landing-page/advanced-tooling.svg b/apps/docs/public/landing-page/advanced-tooling.svg
index abd29c85f..f043ebabb 100644
--- a/apps/docs/public/landing-page/advanced-tooling.svg
+++ b/apps/docs/public/landing-page/advanced-tooling.svg
@@ -9,6 +9,7 @@
}
/* Moving dot on arc */
.dot-1 { offset-path: path('M192,182.145 C245.818,160.618 317.574,160.618 371.392,182.145'); animation: moveDot 3s linear infinite; filter: drop-shadow(0 0 4px #FF1A88); }
+ .dot-2 { offset-path: path('M522,182.145 C565,160.618 590,160.618 630,182.145'); animation: moveDot 3s linear infinite 0.5s; filter: drop-shadow(0 0 4px #FF1A88); }
@keyframes moveDot { from { offset-distance: 0%; } to { offset-distance: 100%; } }
/* Left panel: 5 tool status dots light up in sequence */
.tool-1 { animation: toolBlink 5s ease-in-out infinite 0s; }
@@ -59,6 +60,12 @@
+
+
+
+
+
+
@@ -97,6 +104,7 @@
+
diff --git a/apps/examples/README.md b/apps/examples/README.md
index 74fe2fd0e..93a00398d 100644
--- a/apps/examples/README.md
+++ b/apps/examples/README.md
@@ -34,7 +34,7 @@ _Note: this project uses [**pnpm**](https://pnpm.io/) as the package manager. Yo
pnpm install
```
-2. **Build the ADK-TS Package**
+1. **Build the ADK-TS Package**
For the examples to work correctly, you need to build the core ADK-TS package first. This step compiles the TypeScript code and prepares the necessary files.
@@ -42,7 +42,7 @@ For the examples to work correctly, you need to build the core ADK-TS package fi
pnpm build
```
-3. **Configure Environment Variables**
+1. **Configure Environment Variables**
Create a `.env` file in the **examples directory** (not in the root folder) and add your API keys and optional model configuration. This file is used to set environment variables that the examples will use.
@@ -62,7 +62,7 @@ The default LLM is Google Gemini. You can get a Google API key from [Google AI S
> Note: Some examples require additional configuration or dependencies. Please check the [`.env.example`](.env.example) file for specific instructions.
-4. **Run Examples**
+1. **Run Examples**
To explore the examples, you can either browse all available examples or run a specific one directly:
@@ -107,7 +107,7 @@ We have **9 comprehensive examples** that cover the complete ADK-TS feature set,
## 🤝 Contributing
-If you would like to add examples or improve existing ones, please check out our [Contributing Guide](../../CONTRIBUTION.md) for details on how to get started.
+If you would like to add examples or improve existing ones, please check out our [Contributing Guide](../../CONTRIBUTING.md) for details on how to get started.
---
diff --git a/packages/adk-cli/README.md b/packages/adk-cli/README.md
index fdc5df6bd..9f383d10e 100644
--- a/packages/adk-cli/README.md
+++ b/packages/adk-cli/README.md
@@ -315,7 +315,7 @@ Tests are organized alongside source files:
- **[ADK-TS Repository](https://github.com/IQAIcom/adk-ts)** - Main framework repository
- **[Live Documentation](https://adk.iqai.com)** - Published documentation site
- **[CLI Documentation](https://adk.iqai.com/docs/cli)** - User-facing CLI docs
-- **[Contributing Guide](../../CONTRIBUTION.md)** - General project contribution guidelines
+- **[Contributing Guide](../../CONTRIBUTING.md)** - General project contribution guidelines
- **[Examples](../../apps/examples/)** - Code examples and tutorials
### Technical Resources
diff --git a/packages/adk/README.md b/packages/adk/README.md
index 310a409f0..327426764 100644
--- a/packages/adk/README.md
+++ b/packages/adk/README.md
@@ -322,7 +322,7 @@ pnpm install && pnpm dev
## 🤝 Contributing
-Contributions are welcome! See our [Contributing Guide](https://github.com/IQAIcom/adk-ts/blob/main/CONTRIBUTION.md) for details.
+Contributions are welcome! See our [Contributing Guide](https://github.com/IQAIcom/adk-ts/blob/main/CONTRIBUTING.md) for details.
## 📜 License
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ca5a27070..648302183 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -252,6 +252,9 @@ importers:
mermaid:
specifier: ^11.10.1
version: 11.12.2
+ motion:
+ specifier: ^12.38.0
+ version: 12.38.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
next:
specifier: 16.1.1
version: 16.1.1(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -6651,6 +6654,20 @@ packages:
motion-utils@12.36.0:
resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==}
+ motion@12.38.0:
+ resolution: {integrity: sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -15896,6 +15913,14 @@ snapshots:
motion-utils@12.36.0: {}
+ motion@12.38.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ framer-motion: 12.38.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ tslib: 2.8.1
+ optionalDependencies:
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+
mri@1.2.0: {}
ms@2.1.3: {}