Begin with the constraints you know
Your team, budget, usage patterns and operating environment are real design inputs. Build around those facts. A system designed for an imagined future can become unnecessarily difficult to maintain before it delivers its first useful outcome.
Protect the boundaries that matter
Keep business rules separate from presentation. Define clear interfaces between components and make data ownership explicit. These choices help future changes stay local, without requiring elaborate infrastructure from the start.
Leave a clear path to change
Document important decisions and the assumptions behind them. Automate critical checks and keep deployment repeatable. A maintainable system is one that the next person can understand, operate and improve.