Dev.to WebDev πŸ›  Dev πŸ‘ 0

Architecture starts paying rent when a user workflow reaches it

My TypeScript Candidate Tracker passed 100 tests before it had a page I could actually use. The repository contracts, Result types, validation services, Prisma adapter, and PostgreSQL integration all had valueβ€”but the p

My TypeScript Candidate Tracker passed 100 tests before it had a page I could actually use.

The repository contracts, Result types, validation services, Prisma adapter, and PostgreSQL integration all had valueβ€”but the project still felt like it was walking in place.

Today I changed direction and connected one complete Company workflow to Next.js:

FormData from the browser

  • runtime shape validation
  • business validation
  • application service
  • repository
  • Prisma
  • PostgreSQL
  • refreshed Server Component

The same application now lists, creates, displays, and edits real persisted Companies.

Several earlier decisions finally became concrete:

  • browser validation improves UX but cannot protect the server
  • successful database absence becomes an explicit not-found outcome
  • Server Actions are real public input boundaries
  • a shared Prisma client matters under development hot reload
  • database-generated UUIDs work beyond Prisma Client, including Studio and raw SQL

The lesson was not that architecture is useless. It was that architecture needs a consumer.

Once a real user workflow crossed every layer, the abstractions stopped feeling theoretical and started explaining their cost.

πŸ“° Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.