{"version":"1.0","generated":"2026-07-26T07:32:34.838Z","blog":{"title":"Imperfect","url":"https://imperfectblog.vercel.app","description":"A blog about building, thinking, and making things."},"posts":[{"title":"I Built a CLI to Show Me What My AI-Generated Infrastructure Actually Costs","slug":"ai-infrastructure-cost-cli","url":"https://imperfectblog.vercel.app/blog/ai-infrastructure-cost-cli","jsonUrl":"https://imperfectblog.vercel.app/api/posts/ai-infrastructure-cost-cli","description":"AI tools generate working infrastructure fast, but cost stays invisible until the bill arrives. I built Slate to fix that — a CLI that reads your CDK output and shows real prices before you deploy.","publishedAt":"2026-05-14","author":"Paul Kinyatti","tags":["devtools","aws","infrastructure","ai"],"category":"engineering","readTime":4,"wordCount":862,"coverImage":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=1200&h=675&fit=crop"},{"title":"Building for Imperfect Systems","slug":"building-for-imperfect-systems","url":"https://imperfectblog.vercel.app/blog/building-for-imperfect-systems","jsonUrl":"https://imperfectblog.vercel.app/api/posts/building-for-imperfect-systems","description":"Why systems that accept failure build more resilient software than those designed to prevent it.","publishedAt":"2026-04-22","author":"Paul Kinyatti","tags":["engineering","architecture","resilience"],"category":"engineering","readTime":2,"wordCount":370,"coverImage":"https://images.unsplash.com/photo-1558494949-ef010cbdcc31?w=1200&h=675&fit=crop"},{"title":"The Art of Less: Why Minimalism in Design Actually Works","slug":"the-art-of-less","url":"https://imperfectblog.vercel.app/blog/the-art-of-less","jsonUrl":"https://imperfectblog.vercel.app/api/posts/the-art-of-less","description":"Minimalism isn't about removing things. It's about making room for the things that matter.","publishedAt":"2026-04-18","author":"Paul Kinyatti","tags":["design","minimalism","typography"],"category":"design","readTime":2,"wordCount":449,"coverImage":"https://images.unsplash.com/photo-1494438639946-1ebd1d20bf85?w=1200&h=675&fit=crop"},{"title":"On Shipping Early and Often","slug":"on-shipping-early","url":"https://imperfectblog.vercel.app/blog/on-shipping-early","jsonUrl":"https://imperfectblog.vercel.app/api/posts/on-shipping-early","description":"The gap between 'almost done' and 'shipped' is where most projects go to die. Here's how to close it.","publishedAt":"2026-04-12","author":"Paul Kinyatti","tags":["productivity","shipping","mindset"],"category":"notes","readTime":2,"wordCount":470,"coverImage":"https://images.unsplash.com/photo-1504805572947-34fad45aed93?w=1200&h=675&fit=crop"},{"title":"Tools That Disappear","slug":"tools-that-disappear","url":"https://imperfectblog.vercel.app/blog/tools-that-disappear","jsonUrl":"https://imperfectblog.vercel.app/api/posts/tools-that-disappear","description":"The best tools are the ones you forget you're using. On invisible design and the craft of getting out of the way.","publishedAt":"2026-04-10","author":"Paul Kinyatti","tags":["design","tools","craft"],"category":"design","readTime":2,"wordCount":470,"coverImage":"https://images.unsplash.com/photo-1416339306562-f3d12fefd36f?w=1200&h=675&fit=crop"}]}