AI Has an Enterprise Architecture Bias
We’re building an internal trainer management portal at MicroDegree. Under 500 users. Supabase backend.
I gave Claude a detailed requirements document and asked it to design the system. What came back looked like architecture for a SaaS platform serving millions.
- A separate Python FastAPI backend
- A JavaScript frontend talking to it over REST
- ORM layer
- Repository pattern
- Service abstractions
- Database tables for features three phases away
- Two languages
- Two deployments
- Two CI pipelines
This is for an app with 500 internal users.
When I moved to implementation, I started cutting.
No separate backend — a single Next.js app with Server Actions handles data mutations without a dedicated API layer or a second language.
No ORM — Supabase’s JS client with generated TypeScript types gives us type safety without the extra dependency.
No service abstractions — direct queries behind server components, views and RPCs for anything complex.
Each deletion made the system simpler, faster to build, and easier for a small team to maintain.
But I kept Row Level Security.
When I reviewed the database access policies AI had generated, trainer data isolation wasn’t properly enforced at the database level. A single missed authorization check in the application layer could have exposed one trainer’s data to another. For a platform managing sensitive trainer information, that’s not a bug you patch later. That’s a breach.
RLS enforces isolation at the Postgres level. Even buggy app code or careless queries from authenticated users respect the policy. That’s justified complexity at any user count.
Deleting the ORM: right call. Keeping RLS: right call. AI generated both with identical confidence. That’s the distinction that matters.
AI doesn’t differentiate between premature complexity and essential complexity. It architects everything with the same conviction.
It suggests a separate Python backend for 500 users with the same confidence it uses to recommend database-level security for sensitive data.
Engineering experience doesn’t help you generate architecture faster than AI. It helps you look at what AI generated and know which parts to keep and which parts to throw away.
The future of AI-assisted development isn’t generating more architecture. It’s editing architecture — deleting what serves a future you haven’t earned yet, protecting what can’t be fixed later.