When to create a new app (with startapp) in Django?
I prefer to think of Django applications as reusable modules or components than as "applications". 
This helps me encapsulate and decouple certain features from one another, improving re-usability should I decide to share a particular "app" with the community at large, and maintainability.
My general approach is to bucket up specific features or feature sets into "apps" as though I were going to release them publicly. The hard part here is figuring out how big each bucket is. 
A good trick I use is to imagine how my apps would be used if they were released publicly. This often encourages me to shrink the buckets and more clearly define its "purpose".
I've googled around for this, but I still have trouble relating to what Django defines as "apps". 
Should I create a new app for each piece of functionality in a site, even though it uses models from the main project? 
Do you guys have good rule of thumb of when to split off a new app, and when to keep functionality together with the "main project" or other apps?