Project scaffolding in NestJS starts by running the command 'nest new project-name'. This command creates a new folder with all necessary files and folders like src/, test/, package.json, and configuration files. The CLI then installs all required dependencies automatically. After scaffolding, the project is ready to run. Running 'npm run start' launches the NestJS server, which listens on port 3000. Visiting http://localhost:3000 shows the default welcome message. Variables like project-folder and dependencies change state during these steps, while the server-status changes from off to running only after starting the server.