There are two basic steps to good permaculture design. The first deals with laws and principles, while the second is more closely associated with practical techniques.
The principles are inherent in any permaculture design, in any climate, and at any scale. They are, briefly:
Relative location: every element is placed in relationship to another so that they assist each other
Each element performs many functions.
Each important function is supported by many elements.
Efficient energy planning for house and settlement.
Emphasis on the use of biological resources over fossil fuel resources.
Energy recycling on site.
Using and accelerating natural plant succession to establish favourable sites and soils.
Polyculture and diversity of beneficial species for a productive, interactive system.
Of all the principles of software engineering which has fallen by the wayside in the modern “move fast and break things” mentality of assholes modern software developers, reliability is perhaps the most neglected, along with its cousin, robustness. Almost all software that users encounter in $CURRENTYEAR is straight-up broken, and often badly.
Even with all the features and plugins, Canvas presumes certain ways of organizing classes that might not be universal, just typical. And if (like me) you’re an atypical user, you have to choose between constantly fighting with the system or gradually doing more and more things the way Canvas wants you to do them. This, by the way, is why it’s never true to say that technologies are neutral and what matters is how you use them: every technology without exception has affordances, certain actions that it makes easy, and other actions that it makes difficult or impossible. A technology whose affordances run contrary to your convictions can rob you of your independence — and any technology deployed on the scale of Canvas will inevitably do that. It will turn every teacher into an obedient Canvas-user. I don’t want to be an obedient Canvas-user.