GiriGiri can be employed to accomplish small scale projects/tasks with minimum effort, and it can be used to build big applications/services over it, through creation of extra modules.
Let us examine a case - imagine you are a contract web developer, which have taken on a project that requires you to create a website with a recipe submission & rating feature. The task is simple enough, but, when you add the minor requirements of the client (say, rating logic, user scores, page presentations etc), doing it with a purpose built app or cms through modifications becomes more hassle than the functions themselves. Yet, if you go about coding something from scratch, you are going to do a lot of things (ranging from user registration & management to content processing) over again. You need something that is minimum, and allows the biggest ease of adding those non-standard, but simple functions in no time.
This is where GiriGiri comes in. It is a strong, simple skeleton code that can be set up in minutes, and then be modified in hours' time. All you need to do is to slice your client's design into html and drop it to template folders. GiriGiri does not hard-code design in any way inside its core functions, and its module logic also totally separates any kind of design with code. You wont have the issue of having to create an entire module just to make a form appear in some page, like you have to do in a rather popular cms. You will just drop the form as a html file, and as only a html file but nothing else, and then just allow the code to load it, fill the values into the template, and place it wherever you want in the page. Same goes for all desing objects and elements, and even pages - if the time is short, you dont need to slice the design into proper elements at all -> just drop it as a whole page into the template folder as html, and the code will read it out, populate it and send it to client with whatever you want to.
Similarly, addition/changes become very easy to do with GiriGiri. Say, you coded a recipe rating module, a score module, and dropped into the site above. But, your client suddenly decided that it would be better if users' scores showed in the pages where recipes are shown. All well - you can just add another action block (a case/switch block) into the 'recipes' module, drawing the details of the user score from the database, and populating a template key. Then, you drop the key in a place in the pure html template of that page. When you add that action to that page's module-action listings from the admin interface, you are totally done ....
Lets take another case - lets say, you are going to code a huge app. That, it will continue to grow, probably, even after it is completed and already big. What good would GiriGiri do to you in this case ?
GiriGiri would help you keep your app simple - because it totally leaves how small can any kind of function, module be entirely in your hands, you will be deciding the scale of modifications kept in each module, you will be able to group functions into modules. This way, you will easily avoid having to code complex, big modules that will become a burden to modify in future.
Moreover, because GiriGiri keeps all variables to a central variable depot singleton, you wont have to remember and track variables accross modules. One singleton will be all you need to remember. That also allows easy coordination of variable access accross modules.
Except a few of the core modules, all modules are totally isolated and independent of each other. They are totally self-contained, having even their own template, language files. This makes it easier to isolate elements of the app, making them work without needing each other, and reducing dependency troubles. So, you will be just adding/removing modules by copy/pasting their folders.
All modules are loaded and run during runtime. They are not present in memory if they are not requested. And, even when they are requested, they run only the action that is requested from, without going through any complex procedures. When not requested, the system will be totally free of any of those modules' code. This reduces memory issues, performance issues in high volume situations, and also execution time.
Even when you end up with a big app through use of this kind of module, template system and singleton variable depot usage, you will still be able to play with your modules like lego bricks, and still be able to run only whatever module you desire to do at any point, because the skeleton system will just act as a loader/dispatcher, without getting entangled with the coded modules.
In these respects, GiriGiri appeals to projects of any size.