# Tcl projects

A Tcl project contains source code and related files for building a Tcl program.

A Tcl project also maintains a model of its contents. This model includes information about the type hierarchy, references and declarations of Tcl elements. This information is constantly updated as the user changes the Tcl source code. The updating of the internal Tcl project model is independent of the Tcl builder; in particular, when performing code modifications, if auto-build is turned off, the model will still reflect the present project contents.

You can organize Tcl projects in two different ways:

- Using the project as the source container. This is the recommended organization for simple projects.
- Using source folders inside the project as the source container. This is the recommended organization for more complex projects. It allows you to subdivide packages into groups.