Compose Design
This section contains the guidelines and rules for developing new facets and Solidity libraries in Compose. We focus on building small, independent, and easy-to-understand facets. Each facet is designed to be deployed once, then reused and composed seamlessly with others to form complete smart contract systems.
Articles in this section
Compose Is Written to Be Read
Emphasizes clarity first: keep facets and libraries self-contained, ordered top-to-bottom, and easy to read. Avoid clever abstractions that reduce readability.
Repeat Yourself
Prefer duplication over indirection when it improves clarity.
Banned Solidity Features
Solidity Features we don't use in facets/libraries.
Design for Composition
Build your own facets that work seamlessly with existing Compose facets using shared storage layouts and internal logic through Solidity libraries.
Maintain Compatibility
Learn how facets and libraries work together through shared storage to build composable systems.
Compose is still in early development and currently available only to contributors. It is not production-ready — use it in test or development environments only.