Menu

1 / 2

Next.js: I stop AI refactors with a guardrail

DEV Community·Sathish·6 months ago
#j4TjrLAJ
#nextjs#typescript#webdev#tutorial#const
Reading 0:00
15s threshold

I don’t let Cursor/Claude “refactor freely” anymore.

I add cheap guardrails: type-level checks + runtime assertions.

I catch the dumb bugs: undefined envs, wrong shapes, silent 200s.

You can copy my 4-file setup in 10 minutes.

Context

I build small SaaS apps. Usually solo. Usually fast.

AI-assisted coding makes me faster. Also makes me sloppy.

My recurring failure mode: I ask for a “cleanup refactor”. Cursor applies a wide diff. Claude rewrites helpers. Tests don’t exist yet. Then I ship. Then prod logs say something like TypeError: Cannot read properties of undefined (reading 'split') .

Brutal part? The code looks cleaner. The bug hides in the seams.

So I stopped arguing with my own workflow. I added guardrails that are boring, loud, and hard to accidentally remove.

1) I start by making config impossible to “kind of work”

My favorite bug.

Missing env var. Code still boots. Then it fails 12 minutes later.

I used to do this:

// ❌ Don't do this const baseUrl = process . env .…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.