# Best practices for development

Good Launchpad code is fast, available, and modifiable with limited risk to
other subsystems. This is achieved by sticking to established best practices for
Launchpad development.

* [Architectural guide](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/architecture/index.html.md)
* [Assertions in Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/assertions-in-launchpad/index.html.md)
* [Bug triage process background](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/bug-triage-process-background/index.html.md)
* [Charm development](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/charms/index.html.md)
* [Code import in depth](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/codeimport/index.html.md)
* [Page tests](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/page-tests/index.html.md)
* [About Launchpad performance](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/performance/index.html.md)
* [Launchpad permissions](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/security-policy/index.html.md)
* [Template reuse](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/template-reuse/index.html.md)
