We enforce quotas on the resource usage in the free tier for a number of reasons. For instance, quotas protect users from sudden unforeseen spikes and even outages caused by either malicious usage or just user error. Since we allow for running arbitrary code in essentially shared environment, we must be careful and prevent users from grabbing all processor or disk resources.
The restrictions are very permissive and we see just a tiny fraction of our users who actually hit the limits.
Your project data and all generated artifacts, such as result PDF files, logs, etc., must fit into 64MiB. This quota is enforced when compiling, syncing with Git repositories and basically all other actions which involve writing project data to the disk.
Despite that 64 megs sound too small, there are very few users who really need more than that. The typical project is way smaller and if you need more than 64MiB then you may want to switch to paid plan anyway because of other reasons.