Most costly rewrites trace back to a decision that was never actually made — it was assumed. This checklist forces the assumptions into the open before code is written.
Foundations
Cloud model. Single cloud for speed, or multi-cloud for resilience and negotiating leverage? Decide on purpose; do not let it emerge.
Data model. What are the core entities, and what are the access patterns? The schema is the hardest thing to change later.
Service boundaries. Start as a well-structured monolith unless you have a concrete reason not to. Premature microservices buy operational cost you cannot yet afford.
Scale and cost
The 100x question. What breaks first at 100x current load — a query, a queue, a third-party limit? Name it now.
Cost per user. Roughly what does one active user cost to serve? If you do not know, you cannot price or forecast.
Elastic vs. fixed. Which components must auto-scale, and which can be provisioned flat?
Safety and change
Security baseline. Auth model, secrets handling, data-at-rest and in-transit encryption, and which compliance regimes apply.
CI/CD from commit one. Automated tests and one-click deploys are cheaper to start with than to retrofit.
Observability. Can you see latency, errors, and throughput per endpoint on day one of production?
Rollback. How fast can you get back to the last good state, and has anyone tested it?