Introduction

Moya is a web application server, which may be used to build dynamic, database-driven websites.

Foreword

Developers aren't short of ways to build dynamic web sites. There are frameworks and tools to suite every programming language and style – whether you want a blessed solution to every problem or prefer to mix and match components. So why another way to serve a website?

Moya was borne out of frustration with Python frameworks. Most developers will recognize the phenomena of repetitive patterns in code. Often they aren't quite similar enough to factor out, but close enough to make it feel like you are repeating yourself. Moya attempts to reduce repetition by making the building blocks of web development work harder for the developer, while allowing the details to be customized.

Moya adopts the guideline of "don't make me think" from the user interface world. Each detail a developer has to commit to memory places a tiny burden on mental compute power that could otherwise be spent on solving the interesting problems – the problems that make programming enjoyable. Moya attempts to reduce interruptions in the thought process to a bear minimum, so there is less to google for and more that just works as expected.

Another of Moya's guiding principals is that error messages should go above and beyond what developers have become accustomed to. Wherever possible Moya will let you know where the error really occurred, and what the problem is – rather than requiring you to interpret some side effect of the bug. In many cases, Moya can also diagnose the problem itself and propose a solution.

Moya is a relatively young project (although it has been in development since 2011), and may not fully succeed in all its goals. But things are moving fast, and we believe that Moya is already healthy competition for the big web technologies.

Getting Help

Help is available through the following channels:

Commercial Support

Commercial support is available for Moya.

Credits

Moya benefits greatly from the following projects: