Ideas & Insights

Exploring AI-first development, coding guardrails, and the architecture of disposability.

The AI Safety Stack: Types, Contracts, Property Tests, and Mutation Gates

If you want AI-generated code to survive production, do not rely on code review alone. Build a layered safety stack from type constraints through mutation testing and runtime containment.

The most dangerous thing about AI-generated code is not that it is always wrong. It is that it is often good enough to merge. That is exactly what makes it…

Why Great Engineering Ideas Stayed Niche Until AI Made Them Economical

Design by contract, property-based testing, mutation testing, and model checking were not bad ideas. They were too expertise-heavy to sustain. AI changes that equation.

Software engineering is full of ideas that look obviously correct the moment you read them. Of course contracts should define what a function is allowed to…

The Vibe Coder's Guide to React Native App Lifecycle

Your app works fine in dev, but users get a blank screen when they return after lunch. Here's the resume status pattern that handles native lifecycle properly.

You built a beautiful Expo app in Cursor. Claude Code generated the auth flow, the dashboard, the settings screen. You shipped it. Users downloaded it. Then…

Why Your Vibe-Coded React Native App Crashes on Launch (And How to Stop It)

If optional SDKs initialize like core infrastructure, they can crash your app on launch. Here's the dependency tier system that keeps non-critical tools from taking production down.

A common launch failure in vibe-coded mobile apps is that analytics, attribution, or crash reporting gets initialized alongside truly critical services. If one…

Why Vibe Coding with NativeWind in Cursor Will Break Your React Native App at Scale

You shipped an MVP in a weekend with Cursor, but now changing one color breaks 47 files. Here's the styling contract that stops the bleeding.

You opened Cursor, typed a prompt, and watched Claude Code generate a full React Native UI in seconds. Flex layouts, rounded buttons, color themes — all…

Why Claude Code Should Not Review Your Code (And What to Use Instead)

LLM code review is non-deterministic, slow, and misses architectural violations. Here's the O(1) guard stack that actually keeps your code clean.

A developer in my network set up Claude Code as his CI code reviewer. "Just have Claude check the PR," he told me. "It catches things I'd miss." I asked him to…

Delete, Do Not Migrate: The Refactoring Strategy for Vibe-Coded React Native Apps

Refactoring AI-generated code means reverse-engineering intent you never had. Here's the interface-driven replacement pattern that makes deletes safe.

In biology, autotomy is when an animal sheds a body part that's no longer useful. A lizard drops its tail to escape a predator. The tail was useful once, but…

How Cursor and Claude Code Destroy Your React Native Architecture (And How to Fix It)

AI-generated auth feels fine until a new feature reaches into the wrong service. Here's the interface-driven architecture that keeps vendor swaps and feature work from breaking login.

One recurring failure mode in vibe-coded React Native apps is that a new feature imports an existing service directly, reaches into state it does not own, and…

Why Deep Links Crash Vibe-Coded React Native Apps (And How to Validate Them with Zod)

Deep links, push payloads, and shared URLs are all untrusted input. Here's how to validate them at the Expo Router boundary before bad params reach your screens.

Deep-link bugs in vibe-coded apps usually start with boring input problems: a malformed user ID, an outdated campaign URL, a missing enum value in a push…

useSyncExternalStore: The React Hook That Saves Your Vibe-Coded App From State Bugs

Stop writing useEffect subscriptions that leak memory and miss state updates. Here's the React 18 pattern for bulletproof external state.

I used to write network detection hooks the way most vibe coders do: a that subscribes to NetInfo, updates state when connectivity changes, and hopes for the…

From Vibe Code to Production: Why Your AI-Coded React Native App Needs Guardrails to Scale

AI can ship your React Native MVP fast, but without guardrails each small change can break unrelated flows. Here's how declarative constraints keep speed from turning into fragility.

The first stretch of vibe coding feels absurdly productive. Cursor and Claude Code can generate login, dashboard, settings, and push notifications fast enough…