--- title: A first project description: Write a Tala project in a few lines, then build, run, format and lint it. --- A project is a folder with a project file. Its sources are the `.tala` files below `Sources/`, and `entry` names the class whose `public static void Main()` starts the program. ```kotlin [BUILD.kts] project { name = "Example" } sources { executable { entry = "Example.Program" } } ``` ```tala [Sources/Main.tala] namespace Example; public class Program { public static void Main() { Console.Println("Hello from Tala!"); } } ``` ## Build and run ```bash [terminal] tazel build tazel run -- first second ``` `tazel build` writes `build/debug/Example`, or `Example.exe` on Windows. `tazel run` builds the program and starts it; what follows `--` goes to the program unread. A second `tazel build` with nothing changed reports the target as fresh and starts no compiler. ## Format and lint ```bash [terminal] tazel fmt -- --check tazel lint -- --fix ``` Options after `--` go to talafmt and talalint, so `tazel fmt -- --check` only reports, and `tazel lint -- --fix` applies the fixes it can. ::note ViGet does not serve Tala packages. A project that declares a dependency of the build, a library target and `.vipkg` creation are refused by name, with exit code 1. :: Next: every block of [the project file](/docs/reference/project-file), and every [command](/docs/reference/commands).