# Page: Declarative Web Framework for Node.js
1 October 2018
I am glad to introduce my web framework [Page](https://github.com/Guseyn/page). It can be described as a base for any applications on top of it with server and client in Node.js. It provides a lot of features and common scenarios for using web. It's completely based on the [Async Tree Pattern](https://cdn.guseyn.com(/pdf/Async_Tree_Pattern.pdf)) that allows you to customize Page in any way you want, you can even throw it away and build other base core for your application. In another words, **Page** is just an example of how you can build your application using libraries that are based on [cutie](https://github.com/Guseyn/cutie). In this article, I will list conceptual points why you should thnk about moving to such framework as **Page**.
**Page Is Not a Regular Framework.**
Almost every framework is made with assumption that we live in ideal world, but it's very far from the truth. It's not possible to build something big and stable using magic, which every framework is based on. Meanwhile, **Page** allows you to control the whole behaviour of your application and apply new changes in a explicit way.
**It's Not Easy to Start Quickly.**
First of all you need to get acquainted with [Async Tree Pattern](https://cdn.guseyn.com(/pdf/Async_Tree_Pattern.pdf)) and it's [implementation](https://github.com/Guseyn/cutie). It allows to build everything using declarative approach. Also you must know how Node.js works and it's important to understand how non-blockinng i/o works there.
**But It's Very Easy to Continue.**
Ones you've learnt how to use [Async Tree Pattern](https://cdn.guseyn.com(/pdf/Async_Tree_Pattern.pdf)), libraries that are based on cutie and libraries for **Page**, your life is never will be like before. You'll able to intoduce new changes into your code extremely fast and painless(unlike in frameworks).
**Small Core.**
**Page** is almost based on little pieces from different libraries that can be easily combined with each other for building appication. It makes **Page** lightweight and easily extensible.
If you're interested to learn more about **Page**, [here](https://github.com/Guseyn/page/blob/master/README.md) is the documentation.