Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 16 additions & 6 deletions src/data/blogPosts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ export interface BlogPost {
}

export const blogPosts: BlogPost[] = [
{
slug: "pilot-vs-tailscale-nebula-zerotier-ai-agents",
title: "Pilot vs Tailscale vs Nebula vs ZeroTier for AI Agents",
description: "Tailscale, Nebula, and ZeroTier are great machine VPNs — but agents need addressing, discovery, and per-peer trust. An honest architecture comparison and decision guide.",
date: "Jun 28",
category: "Blog",
tags: ["comparison", "overlay-network", "vpn", "networking"],
banner: "banners/pilot-vs-tailscale-nebula-zerotier-ai-agents.svg",
},

{
slug: "secure-data-exchange-for-multi-cloud-ai-systems",
title: "Secure data exchange for multi-cloud AI systems",
Expand All @@ -22,7 +32,7 @@ export const blogPosts: BlogPost[] = [

{
slug: "encrypted-data-exchange-for-decentralized-ai-systems",
title: "Encrypted data exchange for decentralized AI systems",
title: "Encrypted Data Exchange for Decentralized AI",
description: "Unlock essential strategies with our guide to encrypted data exchange for decentralized AI systems, safeguarding sensitive data across networks.",
date: "May 10",
category: "Blog",
Expand Down Expand Up @@ -272,7 +282,7 @@ export const blogPosts: BlogPost[] = [

{
slug: "persistent-addresses-distributed-autonomous-systems",
title: "Persistent addresses for distributed and autonomous systems",
title: "Persistent Addresses for Distributed AI Agents",
description: "Learn how persistent addresses solve unstable endpoint problems in distributed and autonomous agent systems across multi-cloud environments with secure P2P solutions.",
date: "Apr 14",
category: "Blog",
Expand Down Expand Up @@ -450,7 +460,7 @@ slug: "secure-ai-agent-networking-workflow-step-by-step",
},
{
slug: "peer-to-peer-agent-communication-no-server",
title: "Peer-to-Peer Agent Communication: No Server Required",
title: "Peer-to-Peer Agent Communication With No Server",
description: "Why hub-and-spoke is a bottleneck for agents. Walk through Pilot Protocol's direct P2P model: STUN, hole-punching, encrypted tunnels, trust handshakes.",
date: "Mar 30",
category: "Architecture",
Expand Down Expand Up @@ -685,7 +695,7 @@ slug: "secure-ai-agent-networking-workflow-step-by-step",
},
{
slug: "move-beyond-rest-persistent-connections-for-agents",
title: "Move Beyond REST: Persistent Connections for Agents",
title: "Beyond REST: Persistent Connections for AI Agents",
description: "REST polling wastes 98.5% of requests. WebSockets break at scale. Persistent bidirectional connections solve real-time agent communication without the infrastructure pain.",
date: "Feb 26",
category: "Architecture",
Expand Down Expand Up @@ -802,7 +812,7 @@ slug: "secure-ai-agent-networking-workflow-step-by-step",
},
{
slug: "connect-agents-across-aws-gcp-azure-without-vpn",
title: "Connect Agents Across AWS, GCP, and Azure Without a VPN",
title: "Connect AI Agents Across AWS, GCP & Azure — No VPN",
description: "Deploy agents across any cloud with two commands. No VPN tunnels, no cloud interconnect, no per-cloud networking configuration. Virtual addresses that work everywhere.",
date: "Feb 19",
category: "Guide",
Expand Down Expand Up @@ -946,7 +956,7 @@ slug: "secure-ai-agent-networking-workflow-step-by-step",
},
{
slug: "mcp-plus-pilot-tools-and-network",
title: "MCP + Pilot: Give Your Agent Tools AND a Network",
title: "MCP + Pilot: Tools and a Network for AI Agents",
description: "MCP handles tool access. Pilot handles peer communication. Together: agents that gather data, share results, and delegate work without a platform in the middle.",
date: "Feb 9",
category: "Integration",
Expand Down
53 changes: 52 additions & 1 deletion src/layouts/BlogLayout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ interface Props {
tags: string[];
canonicalPath?: string;
bannerImage?: string;
faqItems?: { question: string; answer: string }[];
}

const { title, description, date, tags, canonicalPath, bannerImage } = Astro.props;
const { title, description, date, tags, canonicalPath, bannerImage, faqItems = [] } = Astro.props;
const cleanPath = canonicalPath ? canonicalPath.replace(/\.html$/, '') : undefined;
const canonicalUrl = cleanPath ? `https://pilotprotocol.network${cleanPath}` : undefined;
const ogImage = bannerImage
Expand Down Expand Up @@ -65,6 +66,17 @@ const related = blogPosts
{"@type": "ListItem", "position": 3, "name": title, "item": canonicalUrl}
]
})}></script>
{faqItems.length > 0 && (
<script type="application/ld+json" set:html={JSON.stringify({
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": faqItems.map(item => ({
"@type": "Question",
"name": item.question,
"acceptedAnswer": { "@type": "Answer", "text": item.answer }
}))
})}></script>
)}
</head>
<body>
<div class="progress-bar" id="progress-bar"></div>
Expand All @@ -89,6 +101,20 @@ const related = blogPosts
</aside>
</div>

{faqItems.length > 0 && (
<section class="article-faq">
<div class="article-faq-inner">
<h2>Frequently asked questions</h2>
{faqItems.map(item => (
<div class="faq-item">
<h3>{item.question}</h3>
<p set:html={item.answer} />
</div>
))}
</div>
</section>
)}

{related.length > 0 && (
<section class="related-posts">
<div class="related-inner">
Expand Down Expand Up @@ -221,5 +247,30 @@ const related = blogPosts
els.forEach(function(el) { el.classList.add('reveal'); obs.observe(el); });
})();
</script>

<style>
.article-faq {
max-width: 760px;
margin: 0 auto;
padding: 3rem 1.5rem 1rem;
}
.article-faq h2 {
font-size: 1.6rem;
margin-bottom: 1.5rem;
}
.article-faq .faq-item {
border-top: 1px solid var(--line, #1d1d1b);
padding: 1.25rem 0;
}
.article-faq .faq-item h3 {
font-size: 1.05rem;
margin: 0 0 0.5rem;
}
.article-faq .faq-item p {
margin: 0;
color: var(--ink-2, #b9b6ad);
line-height: 1.6;
}
</style>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -430,8 +430,8 @@ const bodyContent = `<p>You have agents on <a href="https://aws.amazon.com" targ
</div>`;
---
<BlogLayout
title="Connect Agents Across AWS, GCP & Azure - Without VPN"
description="One overlay network across all clouds. Pilot Protocol connects agents regardless of provider, region, or VPC."
title="Connect AI Agents Across AWS, GCP & Azure — No VPN"
description="One overlay network spanning every cloud. Connect AI agents across AWS, GCP, and Azure regardless of VPC, region, or provider — no VPN, no peering. A step-by-step guide."
date="February 19, 2026"
tags={["multi-cloud", "networking", "deployment"]}
canonicalPath="/blog/connect-agents-across-aws-gcp-azure-without-vpn"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@ const bodyContent = `<script type="application/ld+json">
</ul>`;
---
<BlogLayout
title="Encrypted data exchange for decentralized AI systems"
description="Unlock essential strategies with our guide to encrypted data exchange for decentralized AI systems, safeguarding sensitive data across networks."
title="Encrypted Data Exchange for Decentralized AI"
description="Move sensitive data between AI agents with no central broker. A practical guide to end-to-end encrypted exchange over peer-to-peer tunnels — X25519, AES-GCM, and working code."
date="May 10, 2026"
tags={["blog"]}
canonicalPath="/blog/encrypted-data-exchange-for-decentralized-ai-systems"
Expand Down
4 changes: 2 additions & 2 deletions src/pages/blog/mcp-plus-pilot-tools-and-network.astro
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,8 @@ async def research_agent():
</div>`;
---
<BlogLayout
title="MCP + Pilot: Tools and Network"
description="Use Anthropic's MCP for agent-tool interaction and Pilot Protocol for agent-to-agent networking. Complementary layers."
title="MCP + Pilot: Tools and a Network for AI Agents"
description="MCP connects an agent to tools; it doesn't connect agents to each other. See how to pair MCP with an agent-native network layer for agent-to-agent messaging — architecture and code."
date="February 9, 2026"
tags={["mcp", "integration", "anthropic"]}
canonicalPath="/blog/mcp-plus-pilot-tools-and-network"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -323,8 +323,8 @@ func runAgentB() {
</div>`;
---
<BlogLayout
title="Move Beyond REST: Persistent Connections for Agents"
description="REST is stateless; agents aren't. Pilot Protocol gives agents persistent, bidirectional, encrypted channels."
title="Beyond REST: Persistent Connections for AI Agents"
description="REST is stateless and request/response; agents aren't. How persistent, bidirectional, encrypted channels replace polling and webhooks for AI agent communication — with examples."
date="February 26, 2026"
tags={["architecture", "real-time", "networking"]}
canonicalPath="/blog/move-beyond-rest-persistent-connections-for-agents"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,8 @@ pip install pilotprotocol</code></pre>
</section>`;
---
<BlogLayout
title="Peer-to-Peer Agent Communication: No Server Required"
description="Why hub-and-spoke is a bottleneck for agents. Walk through Pilot Protocol's direct P2P model: STUN, hole-punching, encrypted tunnels, trust handshakes. Full code examples."
title="Peer-to-Peer Agent Communication With No Server"
description="Hub-and-spoke infrastructure bottlenecks AI agents. A step-by-step guide to direct peer-to-peer agent communication: STUN, hole-punching, encrypted tunnels, and trust handshakes — with full code."
date="Mar 30"
tags={["p2p", "architecture", "networking"]}
canonicalPath="/blog/peer-to-peer-agent-communication-no-server"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,8 @@ const bodyContent = `<script type="application/ld+json">
</ul>`;
---
<BlogLayout
title="Persistent addresses for distributed and autonomous systems"
description="Learn how persistent addresses solve unstable endpoint problems in distributed and autonomous agent systems across multi-cloud environments with secure P2P solutions."
title="Persistent Addresses for Distributed AI Agents"
description="Agent endpoints change every time they move, restart, or cross clouds. See how permanent virtual addresses keep distributed, autonomous systems reachable — a practical guide with examples."
date="April 14, 2026"
tags={["blog"]}
canonicalPath="/blog/persistent-addresses-distributed-autonomous-systems"
Expand Down
Loading