The purpose of this framework is to provide a very simple and flexible system for users to complete projects. This framework is mainly aimed at smaller to mid-size projects, but could be used for larger projects with some optimizations. The Box provides a quick way to get your projects running, with tools that most projects need. We also wanted to provide a very clear and simple way that our framework accomplishes tasks. This way the user can actually modify the internal framework files to get the most out of it. This makes it very easy to use third party libraries inside the framework. Note from Adi Gandra (Developer of The Box Framework) : I found my self writing the same code over and over again when starting projects. When I switched over to a developed framework to avoid this like CakePHP, or CodeIgniter - I had a hard time doing things my way. I had to work within their guidelines (which is good in a lot of cases), but it makes doing more complicated custom tasks harder. Because you have to figure out how to write it within their vast amount of code. So I wanted to create a very simple framework that I could use, and have it be very easy to customize and bend to any project I want to do. The purpose of this is not to have all the features of the bigger PHP Frameworks, but to have something that will bend to your use. Notes when using: Controller names must be one word with the first letter uppercase. Error controller is a default controller used by the app. You also cannot name a controller 'Global', 'Compile'. Controller names must also only contain characters and no numbers. The Error Controller is an important base controller of The Box framework. Every method name in that file should start with 'error_'. Even though most error pages will be static we dedicated a controller for this for extra flexibility if needed. You can also add in extra tracking for custom errors in your controller file. Action names can be alphanumeric and contain underscores. Case should not matter. Actions can also not begin with numbers. The default action for a controller is index. Templates follow a simple structure. Global contains the footer and header for each file. You can turn off templating with self::setTemplate(false); in your action code.