# Launchpad > This is the documentation for Canonical Launchpad, an open source platform that > enables open source developers to collaborate with others to build and publish open > source software. 2026 CC-BY-SA, Canonical Ltd. ## Pages in this subsection - [Explanation](https://ubuntu.com/docs/launchpad/developer/explanation/index.html.md): Documentation covering Launchpad ideas, setup, framework, parts, best practices, and deployment processes. - [The ideas behind Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/index.html.md): Summary of the foundational ideas behind Launchpad. - [What is Launchpad?](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/scope/index.html.md): Understand what Launchpad is - a complete system for gathering changes and collaboratively organizing them into packaged software. - [About Launchpad security](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/security/index.html.md): Overview of Launchpad's multi-layered security approach covering architecture, system design, processes, issue reporting, etc. - [Launchpad strategy](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/strategy/index.html.md): Understand Launchpad's strategy to make Ubuntu the world's best OS by improving Canonical's productivity and open source development efficiency. - [Launchpad values](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/values/index.html.md): Understand the values behind Launchpad; why certain decisions were made, and why things are implemented as they are. - [Core components and setting up Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/index.html.md): Overview for setting up and understanding Launchpad covering installation, framework, navigation, pip, PPA, testing, and concepts. - [Parts of Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/index.html.md): Overview of the different parts of Launchpad. - [Launchpad code hosting](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/code/index.html.md): Overview of Launchpad's code hosting system including VCS clients, hosting infrastructure, and source code browsers. - [Engineering overview: translations](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/engineering-overview-translations/index.html.md): Engineering overview of Launchpad's Translations subsystem for Ubuntu and Launchpad-registered projects. - [Librarian file storage](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/librarian/index.html.md): How Launchpad's librarian stores and retrieves files, including URL resolution, database relationships, and Swift storage strategy. - [Launchpad mail](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/mail/index.html.md): Overview of email types in Launchpad and how the are configured. - [About Malone](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/malone/index.html.md): Understand the Malone bug tracker and what makes it substantially different from existing bug tracking tools. - [Navigation menus](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/navigation-menus/index.html.md): Learn how to use Navigation Menus to link views in Launchpad page templates. - [Launchpad registry](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/registry/index.html.md): Understand the Launchpad registry and its core domains. - [URL traversal](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/url-traversal/index.html.md): Explanation of URL traversal methods in Launchpad. - [Publisher](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/index.html.md): Overview of Ubuntu publishing topics. - [Ubuntu package publishing](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/ubuntu-package-publishing/index.html.md): Understand the Ubuntu package lifecycle from source upload to archive publication. - [Ubuntu archive publisher](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/ubuntu-archive-publisher/index.html.md): Understand the steps a package goes through when it enters the Ubuntu archive publisher. - [Valid-Until configuration for distribution series](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/valid-until/index.html.md): Overview of the valid_until_config on a distroseries - [Application framework](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/framework/index.html.md): Understand Launchpad's application framework built around the Zope Toolkit. - [Code concepts](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/concepts/index.html.md): Understand core code concepts in lp.code modules including registry objects, branch, target, and merge proposal. - [The Launchpad PPA](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/launchpad-ppa/index.html.md): Learn about the PPA containing dependencies needed to run Launchpad. - [Navigating the tree](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/navigating/index.html.md): Navigate the Launchpad source tree with guidance on key directories including bin, utilities, lib, and database folders. - [Launchpad pip integration](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/pip/index.html.md): Understand Launchpad's pip integration for managing Python packages including setup, usage, and dependency management. - [Launchpad installation details](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/running-details/index.html.md): Understand what happens when you use the rocketfuel-setup script to set up a local instance of Launchpad. - [Testing](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/testing/index.html.md): Learn how to test different Launchpad changes locally. - [Building live filesystems in Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/building-live-filesystems/index.html.md): Learn how Launchpad builds live filesystems using livecd-rootfs with LiveFS and LiveFSBuild objects. - [Database](https://ubuntu.com/docs/launchpad/developer/explanation/database/index.html.md): Overview of database topics including PostgreSQL, live patching, Storm migration, and database performance optimization. - [Database performance](https://ubuntu.com/docs/launchpad/developer/explanation/database/database-performance/index.html.md): Learn about database query optimization, common causes of performance issues, and diagnosis tools and approaches. - [Database patching](https://ubuntu.com/docs/launchpad/developer/explanation/database/database-patching/index.html.md): Understand database patching techniques for deploying schema changes on Launchpad's PostgreSQL database. - [PostgreSQL and Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/database/postgresql/index.html.md): Learn PostgreSQL was chosen for Launchpad and the degree of integration between the database and code. - [Storm migration guide](https://ubuntu.com/docs/launchpad/developer/explanation/database/storm-migration-guide/index.html.md): Learn how SQLObject concepts map to Storm ORM equivalents for migrating Launchpad code to Storm database layer. - [Working with db-devel](https://ubuntu.com/docs/launchpad/developer/explanation/database/working-with-db-devel/index.html.md): Learn how to develop against Launchpad's db-devel branch. - [Developing the Launchpad project](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/index.html.md): Understand different aspects of the development of the Launchpad project. - [About Launchpad branches](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/branches/index.html.md): Learn about Launchpad's four master branches and branching strategy for development including stable releases and database changes. - [Datetime usage guide](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/datetime-usage/index.html.md): datetime usage guidelines in Launchpad code. - [Error explanations](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/error-explanations/index.html.md): Debug error messages in Launchpad. - [Feature flags](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/feature-flags/index.html.md): Learn how feature flags are implemented to allow runtime configuration changes in Launchpad. - [Hacking](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/hacking/index.html.md): Comprehensive hacking guide covering Python programming, version targeting, coding practices, and development tips for Launchpad. - [The journey of a Launchpad change from a developer’s branch to production](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/journey-of-a-change-to-production/index.html.md): Follow the journey of a Launchpad change from a developer's branch to production deployment. - [Pre merge reviews](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/pre-merge-reviews/index.html.md): Understand the pre-merge review process, branch size limits, and contributor responsibilities. - [XXX policy](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/xxx-policy/index.html.md): Understand Launchpad's XXX policy for marking code areas requiring follow-up. - [Best practices for development](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/index.html.md): Overview of best practices for Launchpad development including architecture, assertions, security, and performance guidelines. - [Architectural guide](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/architecture/index.html.md): Learn about Launchpad's architectural values and design principles for writing maintainable, transparent, and operational code. - [Assertions in Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/assertions-in-launchpad/index.html.md): Understand when and how to use assertions in Launchpad code following best programming practices and guidelines. - [Bug triage process background](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/bug-triage-process-background/index.html.md): Understand the bug triage process and how Launchpad prioritizes bugs by balancing project health and user needs. - [Charm development](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/charms/index.html.md): Overview of Juju charm development principles and process for Launchpad deployments. - [Code import in depth](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/codeimport/index.html.md): Learn about Launchpad's code import system for one-way synchronization from external repositories. - [Page tests](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/page-tests/index.html.md): Learn how to use zope.testbrowser for page testing. - [About Launchpad performance](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/performance/index.html.md): Learn techniques and tools for improving Launchpad performance. - [Launchpad permissions](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/security-policy/index.html.md): Learn how Launchpad uses permissions to control access to views and object attributes and methods. - [Template reuse](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/template-reuse/index.html.md): Learn template reuse techniques using fragment views and macros. - [JavaScript](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/index.html.md): Overview of JavaScript in Launchpad covering integration testing, unit testing, and build system topics. - [The Launchpad JavaScript build system](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/javascript-buildsystem/index.html.md): Learn about the Launchpad JavaScript build system for bundling, minifying, and distributing Javascript modules. - [Integration testing in JavaScript](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/javascript-integration-testing/index.html.md): Understand JavaScript integration testing in Launchpad using the yuitest library. - [Developing with YUI.Test](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/javascript-unittesting/index.html.md): Introduction to using YUI.Test for JavaScript unit testing in Launchpad. - [Static assets](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/index.html.md): Overview of static assets in Launchpad including CSS, CSS sprites, images, and favicons. - [CSS](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/css/index.html.md): Overview of Launchpad CSS files including fonts, colors, and base elements. - [Using CSS sprites](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/css-sprites/index.html.md): Learn how to use CSS sprites in Launchpad templates for improved website performance. - [Favicons: Why so many files and what do they do?](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/favicon/index.html.md): Understand the favicon files generated from SVG files. - [Images](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/images/index.html.md): Learn where images should be located in Launchpad directory structure for proper organization and accessibility. ## Optional - [Top-level llms.txt](https://ubuntu.com/docs/launchpad/llms.txt): Complete documentation index.