Django: "projects" vs "apps"

Once you graduate from using startproject and startapp, there's nothing to stop you from combining a "project" and "app" in the same Python package. A project is really nothing more than a settings module, and an app is really nothing more than a models module—everything else is optional.

For small sites, it's entirely reasonable to have something like:

site/
    models.py
    settings.py
    tests.py
    urls.py
    views.py

Try to answer question: "What does my application do?". If you cannot answer in a single sentence, then maybe you can split it into several apps with cleaner logic.

I read this thought somewhere soon after I've started to work with django and I find that I ask this question of myself quite often and it helps me.

Your apps don't have to be reusable, they can depend on each other, but they should do one thing.