{"version":"1.0","generated":"2026-09-19T09:40:49.589Z","blog":{"title":"Imperfect","url":"https://blog.paulkinyatti.com","description":"A blog about building, thinking, and making things."},"posts":[{"title":"Creating Organizations in AWS: A Practical Guide to IAM Identity Center and Centralized Access","slug":"creating-organizations-in-aws","url":"https://blog.paulkinyatti.com/blog/creating-organizations-in-aws","jsonUrl":"https://blog.paulkinyatti.com/api/posts/creating-organizations-in-aws","description":"Learn how to create an AWS Organization, enable IAM Identity Center, manage users and groups, assign permission sets, and build a secure foundation for AWS accounts.","publishedAt":"2026-09-17T12:00:00.000Z","updatedAt":"2026-09-17T15:41:34.983Z","author":"Paul Kinyatti","tags":[],"category":"AWS","readTime":9,"wordCount":1630,"coverImage":"https://blog.paulkinyatti.com/images/aws-organizations-identity-center.png"},{"title":"I Built a CLI to Show Me What My AI-Generated Infrastructure Actually Costs","slug":"ai-infrastructure-cost-cli","url":"https://blog.paulkinyatti.com/blog/ai-infrastructure-cost-cli","jsonUrl":"https://blog.paulkinyatti.com/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-14T00:00:00.000Z","updatedAt":"2026-09-17T12:35:09.725Z","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://blog.paulkinyatti.com/blog/building-for-imperfect-systems","jsonUrl":"https://blog.paulkinyatti.com/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-22T00:00:00.000Z","updatedAt":"2026-09-17T12:35:11.043Z","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://blog.paulkinyatti.com/blog/the-art-of-less","jsonUrl":"https://blog.paulkinyatti.com/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-18T00:00:00.000Z","updatedAt":"2026-09-17T12:35:13.372Z","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://blog.paulkinyatti.com/blog/on-shipping-early","jsonUrl":"https://blog.paulkinyatti.com/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-12T00:00:00.000Z","updatedAt":"2026-09-17T12:35:12.233Z","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://blog.paulkinyatti.com/blog/tools-that-disappear","jsonUrl":"https://blog.paulkinyatti.com/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-10T00:00:00.000Z","updatedAt":"2026-09-17T12:35:14.453Z","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"}]}