Drawing the line between theme & plugin on large scale bespoke projects

I’ve spent the last month and a half working around the clock on a fairly large scale project based on BuddyPress and WordPress. Very little of the functionality is actually contained in the theme itself. Most of it wound up being broken into at least six different plugins that each serve a slightly different yet similar purpose. The smaller bits that were more general or otherwise did not make sense as a plugin got thrown into functions.php. I did it that way so that the client could turn off and back on each component as necessary.

Just as I did, you will have to sit down and determine what makes the most sense to you and best suits you or your client’s needs. Planning is your best friend, trust me.