Simply stated: Because I want to continue to run, maintain and update the site.
Way back in 2008 when I started this site, I have put out the content, and I had not anticipated the popularity the site gained. I have also placed “Donate” button there to get an income that would cover the expenses of running, maintaining and updating the site, at least.
Soon I found that this approach does not work and that I just had to take other paid projects. It is like in life give-and-take cannot run unbalanced for a long time.
On the other hand, I have regretted that I did not continue to share the knowledge, tips and extensions with others, as if there is one thing I like most in life, then it is to educate people making them more knowledgable and able to solve their (developers’) problems themselves.
Also, my extensions and plugins were used by many, many developers in many, many projects. I can tell from the feedback I got, number of support or feature requests, or from personal contacts. All free of charge.
Thus, some content of the site is for paying members only.
The general rationale is: Basic level of education is free. Anything that can be used in projects to save time and advanced levels of education are paid.
If you want to browse the site, read articles that you find worth to read, run examples and understand their code, you do not need to pay a cent. However, some levels of education need a considerable expertise to prepare, or some forms of education require much time to make (videos) so they are paid.
The moment you want to “copy&paste” a code fragment to your project or to download an example, modify it and use it, you need to pay. You saved your time and money; you could generate more revenue, so I want a little part of it as I’ve helped – de facto being your team member for a while.