# Overview

## What is Nooku?

In short, Nooku is more of a web development kit than just a framework.

Nooku is component based, a component is a re-usable building block that offers a PHP API, a REST API and perhaps a user interface. Components can be connected together using an HMVC approach to create a complete web application.

Nooku is built to allow using other PHP libraries, like Zend or Symfony when needed. You can look at Nooku as the higher level glue to hold everything together. Out of the box Nooku will do 80% of the work for you, if you need specialised libraries you can of course always do so.

## Why Nooku?

Believe it or not, there is a lot of bad code out there on the internet. We’ve all seen it, we’ve all blasphemed at our computer screens as we’ve encountered countless instances of vulnerabilities, 10+ nested if statements, 10’000 line classes, stupid variable names, stupid class names, etc etc.

So how does Nooku fit into this? Merely by the simple fact that Nooku is based upon industry standard design patterns and concepts, it that will end up making your life a whole lot easier.

So, first things first, put aside any pre-assumptions you may have about how to write code, and take a step back to think about why you are writing what you are writing, the bigger picture, the concepts, the design patterns, etc. Are you writing something to “just get it done”? Thinking it will save you time in the short term and you will “refactor that later”. Then come back 2 months later to find the comment:

//I know this is hacky, but I’m doing it now because my boss is on my back, it’s 5.15 on a friday evening and I want to go to the pub!
`

Using Nooku should, through well structured, well written and design pattern driven code itself, encourage you to write better code and subsequent applications.