<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Pengo Blog</title><description>Notes on pricing, AI lead capture, and performance from the team building Pengo.</description><link>https://pengo.chat/</link><language>en-us</language><item><title>Shipping a mobile agent app that matches the web inbox</title><link>https://pengo.chat/blog/shipping-the-mobile-agent-app/</link><guid isPermaLink="true">https://pengo.chat/blog/shipping-the-mobile-agent-app/</guid><description>Search, attachments, assignment, password reset, push deep links, and status labels  -  how the Pengo Flutter app stays in sync with the dashboard agents already use.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate><category>mobile</category><category>product</category></item><item><title>How we built agent analytics without melting Postgres</title><link>https://pengo.chat/blog/agent-analytics-without-melting-postgres/</link><guid isPermaLink="true">https://pengo.chat/blog/agent-analytics-without-melting-postgres/</guid><description>A walkthrough of Pengo&apos;s analytics pipeline: server-side aggregation, agent productivity tables, Recharts on the dashboard, and CSV export  -  without loading entire message histories into the browser.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate><category>engineering</category><category>analytics</category></item><item><title>Designing a chat state machine that agents actually understand</title><link>https://pengo.chat/blog/designing-the-chat-state-machine/</link><guid isPermaLink="true">https://pengo.chat/blog/designing-the-chat-state-machine/</guid><description>Why we replaced ad-hoc status flags with a explicit pending → open → resolved lifecycle, and what that means for routing, analytics, and the mobile app.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate><category>engineering</category><category>product</category></item><item><title>Keeping the chat widget under 5KB gzipped</title><link>https://pengo.chat/blog/keeping-the-widget-under-5kb/</link><guid isPermaLink="true">https://pengo.chat/blog/keeping-the-widget-under-5kb/</guid><description>Most chat widgets ship 100-300KB of JavaScript on every page load. Here&apos;s how Pengo&apos;s facade pattern keeps the initial payload under 5KB  -  and how to verify it yourself.</description><pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate><category>engineering</category><category>performance</category></item><item><title>Why we stopped billing per resolution</title><link>https://pengo.chat/blog/why-we-stopped-billing-per-resolution/</link><guid isPermaLink="true">https://pengo.chat/blog/why-we-stopped-billing-per-resolution/</guid><description>Per-resolution AI billing sounded fair on paper. In practice it created disputes, unpredictable invoices, and a product story we did not want to sell. Here is what we changed and why.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><category>ai</category><category>pricing</category><category>product</category></item><item><title>Why Pengo doesn&apos;t charge per seat</title><link>https://pengo.chat/blog/why-we-dont-charge-per-seat/</link><guid isPermaLink="true">https://pengo.chat/blog/why-we-dont-charge-per-seat/</guid><description>Per-seat pricing punishes the exact behavior you want from a support team: adding more people. Here&apos;s why we built Pengo differently.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate><category>pricing</category><category>product</category></item></channel></rss>