Engineering journal documenting the journey of building production systems
with AI-powered development. From zero to a full EKS platform in two sessions.
We were shipping 1.4 MB PNGs to phones and rendering them at 64×84 pixels. The fix was an on-the-fly image transform at the CDN — and a couple of CloudFront gotchas that nearly undid the win.
A multi-repo deploy story: a brand-new user-service microservice, Google ID-token verification on the existing auth service, two new public ingresses, and the entire UX gated behind one Astro build-time flag so it ships dark until launch. The rough edges turned out to be more interesting than the happy path.
We built and shipped a complete Pinterest auto-publisher — Sharp+SVG pin compositor, OAuth refresh, GitOps-managed k8s secrets, the full nine yards. Production E2E rollout went perfectly until POST /v5/pins returned a 403 with a message no one in the spec or docs had warned us about. Here's the trap, the actual rule, and how to avoid it.
We tested four image providers across 25 subjects, almost shipped gpt-image-1, then pivoted to Gemini 2.5 Flash Image at the last minute. Here's the comparison data, the operational landmines, and the surprise capability that decided it.
A Lighthouse score of 76 and a 5.1-second LCP led to three surgical fixes: Astro's build-time image pipeline, a subtly wrong nginx Cache-Control header, and replacing GSAP with 40 lines of CSS keyframes.
We built a fully automated pipeline that generates multilingual SEO content for every puzzle image — long-form stories and coloring page copy in 5 languages, triggered by a cron job, published via GitHub Actions, and rendered as static pages on our Astro marketing site.
We added a dedicated scheduler service to the kids games platform — a lightweight cron runner with a real admin UI, Prometheus metrics, and atomic job locking, built so recurring tasks never touch the app server again.
We pulled user authentication out of the puzzle app and into a standalone auth service — so every game on the platform shares the same user identity without duplicating auth logic.
When a kid gets stuck, the app gently lifts the right tile and drifts it toward its target — then puts it back. No auto-solving. The hint fades away as the player improves. Here's how we built it.
We restructured the kids games codebase into a proper Bun monorepo with shared UI components, types, and analytics — so adding the next game doesn't mean copying half the codebase.
After building the self-filling puzzle pool, we needed a way to see what's been generated, catch bad images, and regenerate them without touching code. Here's the two-step preview/confirm admin we built directly into the webapp server.
SFX synthesized in code, music with fade transitions, ElevenLabs voice encouragement — all wired through a React context with zero external audio dependencies. Here's how we built the sound layer for the puzzle app.
Our kids game went offline and nobody noticed for hours. Here's what broke, how we found it, and how we wired up Prometheus Blackbox Exporter with AlertManager to make sure it never happens silently again.
We wired GA4 and PostHog into the puzzle app in a single session — a thin typed module, dynamic script injection, and build-time secrets baked into Docker. Here's the full setup and why we made each call.
How I built and shipped kidsgamesapp.com in a single session — a fully animated Astro 6 static site with GSAP, floating character art, and a complete GitOps deploy pipeline to our existing EKS cluster.
We extended our admin UI with a Category Assets tab that generates, previews, and deploys theme images to S3 — using multiple AI providers, LLM-powered prompt enhancement, and a carousel preview to match covers with backgrounds before going live.
We replaced client-side AI image generation with a server-driven pool system. The first player to hit a puzzle triggers generation; every player after gets it instantly from S3. Here's how the architecture works and why it makes offline support trivial.
We built a zero-dependency admin tool directly into our ai-service microservice — it generates app icons, splash screens, and store graphics using the service's own image generation API, then exports them as a ZIP with all platform-specific sizes.
We pulled image generation and photo transformation out of the puzzle app and into a standalone AI service — a Bun/TypeScript microservice with provider abstraction, Prometheus metrics, and Langfuse tracing. One session, fully deployed.
Replacing a login wall with progressive authentication — guest sessions, smart save prompts at natural moments, and an AI-generated Adventure Card as the registration reward.
We replaced Stable Diffusion XL with FLUX.1-schnell and rewrote our prompt pipeline so every puzzle image matches its theme — a frozen snowflake gets aurora skies, a Paw Patrol helicopter gets Adventure Bay.
We replaced a static world map with a Netflix-style carousel of kids' themes — Frozen, Paw Patrol, Pokémon and more — each with AI-generated cover art and animated backgrounds.
How we replaced a traditional mobile layout with an immersive full-screen experience, a glassmorphic floating menu, and on-demand AI puzzle generation — while deleting 1,000 lines of code.
How I built a full production-grade AWS platform with EKS, GitOps, and observability in two evening sessions using AI-powered development — work that would typically take a DevOps team months.
We built a reusable platform — now we prove it works. This blog you're reading was deployed as a new app on the same cluster in under an hour, at 11 PM on a Sunday night.