If you have to rewrite your application every week, you're probably doing too much preparation, rather than not enough. Rewriting usually means you made assumptions that turned out to be untrue. If you write clean code that is easy to add to, but don't try to guess what might need to be added now, that's YAGNI. In this specific case, writing code where a text formatter can be added is YAGNI, while guessing what kind of formatter might be needed and adding it ahead of time is not.