You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **⚠️ Early Stage**: Compose is currently in development and only available to contributors. It is **NOT production ready**.
4
5
@@ -14,14 +15,12 @@ Compose is a smart contract library that helps developers create smart contract
14
15
15
16
The project actively evolves based on community input—[tell us](https://github.com/Perfect-Abstractions/Compose/discussions/108) what you'd like Compose to do for you.
**Forget traditional smart contract design patterns**—Compose takes a radically different approach.
23
22
24
-
We build high-quality smart contracts by **intentionally restricting Solidity features** and following conventions designed specifically for smart contracts. This is **Smart Contract Oriented Programming (SCOP)**.
23
+
We build high-quality smart contracts by <ahref="https://compose.diamonds/docs/design/banned-solidity-features">**intentionally restricting Solidity features**</a> and following conventions designed specifically for smart contracts. This is **Smart Contract Oriented Programming (SCOP)**.
Copy file name to clipboardExpand all lines: website/docs/design/design-for-composition.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ description: How to design Compose facets and libraries for composition.
6
6
7
7
Here are guidelines and rules to create composable facets.
8
8
9
-
Compose replaces source-code inheritance with onchain composition. Facets are the building blocks; diamonds wire them together.
9
+
Compose replaces source-code inheritance with on-chain composition. Facets are the building blocks; diamonds wire them together.
10
10
11
11
We focus on building **small, independent, and easy-to-read facets**. Each facet is deployed once, then reused and combined with other facets to form complete, modular smart contract systems.
12
12
@@ -63,4 +63,4 @@ For example, `ERC721EnumerableFacet` does not extend `ERC721Facet` because enume
63
63
64
64
***
65
65
66
-
This level of composability strikes the right balance: it enables highly organized, modular, and understandable onchain smart contract systems.
66
+
This level of composability strikes the right balance: it enables highly organized, modular, and understandable on-chain smart contract systems.
Copy file name to clipboardExpand all lines: website/docs/design/index.mdx
+46-11Lines changed: 46 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,18 +5,53 @@ description: Overview for how Compose is designed
5
5
sidebar_class_name: hidden
6
6
---
7
7
8
-
This section contains the guidelines and rules for developing new facets and Solidity libraries in **Compose**.
9
-
10
-
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.
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.
13
+
</DocSubtitle>
12
14
## Articles in this section
13
15
14
-
-[Compose Is Written to Be Read](./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.
15
-
16
-
-[Repeat Yourself](./repeat-yourself) — Prefer duplication over indirection when it improves clarity.
17
-
18
-
-[Banned Solidity Features](./banned-solidity-features) — Solidity Features we don't use in facets/libraries.
19
-
20
-
-[Design for Composition](./design-for-composition) — Facets replace inheritance with onchain composition. Keep facets small and self-contained, pair each facet with a library, reuse storage layouts carefully, and extend behavior by adding new facets.
16
+
<DocCardGridcolumns={2}>
17
+
<DocCard
18
+
title="Compose Is Written to Be Read"
19
+
description="Emphasizes clarity first: keep facets and libraries self-contained, ordered top-to-bottom, and easy to read. Avoid clever abstractions that reduce readability."
20
+
href="./written-to-be-read"
21
+
icon={<Iconname="book"size={28} />}
22
+
size="medium"
23
+
/>
24
+
<DocCard
25
+
title="Repeat Yourself"
26
+
description="Prefer duplication over indirection when it improves clarity."
27
+
href="./repeat-yourself"
28
+
icon={<Iconname="cycle"size={28} />}
29
+
size="medium"
30
+
/>
31
+
<DocCard
32
+
title="Banned Solidity Features"
33
+
description="Solidity Features we don't use in facets/libraries."
34
+
href="./banned-solidity-features"
35
+
icon={<Iconname="no-entry"size={28} />}
36
+
size="medium"
37
+
/>
38
+
<DocCard
39
+
title="Design for Composition"
40
+
description="Build your own facets that work seamlessly with existing Compose facets using shared storage layouts and internal logic through Solidity libraries."
41
+
href="./design-for-composition"
42
+
icon={<Iconname="composition"size={28} />}
43
+
size="medium"
44
+
/>
45
+
<DocCard
46
+
title="Maintain Compatibility"
47
+
description="Learn how facets and libraries work together through shared storage to build composable systems."
48
+
href="./maintain-compatibility"
49
+
icon={<Iconname="puzzle"size={28} />}
50
+
size="medium"
51
+
/>
52
+
</DocCardGrid>
21
53
22
-
-[Maintain Compatibility](./maintain-compatibility) — Build facets that work with existing standards, libraries, and systems and exhibit expected behavior.
54
+
:::warning[Early Development]
55
+
Compose is still in early development and currently available only to contributors.
56
+
It is not **production-ready** — use it in test or development environments only.
0 commit comments