When should you start writing tests?

When you start a new project, when should you start writing tests and doing test-driven development?

Is it before you write any code, or is it something you can start later?

When starting versa, I was only scaffolding the console commands and running some basic commands such as "composer install" and "phpunit".

At that point, there wasn't any business logic to test.

The first versions only supported PHP, so there was no complexity around which language the project used.

There was no logic to determine which language or package manager was used.

Now I've started to add this functionality - such as determining the project type from its composer.json or package.json file - there is logic to test, and I've started to write tests and do test-driven development.

At this phase, I can see the value, which I couldn't when setting up the application to begin with, and different have any logic worth testing.