01
The hard part often lives at the edges
Decorators, bundling and monorepo builds can each look solvable on their own. Friction appears when the Lambda runtime, esbuild and custom build steps make different assumptions.
Make those assumptions explicit in the project model, so a new developer does not have to reconstruct them from build logs.
02
Let the repository show the route
A good Nx structure makes it clear which libraries are shared, which app deploys and which checks protect the boundary between them.
That helps CI, but it also makes local experimentation safer because you can see what a change touches.
03
Automation is a design decision
A deployment pipeline should not only deploy. It should give feedback on type safety, tests, bundling and the infrastructure that will actually be released.
The payoff is the confidence to take frequent, controlled steps.
A good technical choice makes the next product decision easier.