diff --git a/website/blog/2019-05-28-first-blog-post.md b/website/blog/2019-05-28-first-blog-post.md
deleted file mode 100644
index 176da000..00000000
--- a/website/blog/2019-05-28-first-blog-post.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-slug: first-blog-post
-title: First Blog Post
-authors: [slorber, yangshun]
-tags: [hola, docusaurus]
-draft: true
----
-
-Lorem ipsum dolor sit amet...
-
-
-
-...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
diff --git a/website/blog/2019-05-29-long-blog-post.md b/website/blog/2019-05-29-long-blog-post.md
deleted file mode 100644
index ff3a0891..00000000
--- a/website/blog/2019-05-29-long-blog-post.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-slug: long-blog-post
-title: Long Blog Post
-authors: yangshun
-tags: [hello, docusaurus]
-draft: true
----
-
-This is the summary of a very long blog post,
-
-Use a `` comment to limit blog post size in the list view.
-
-
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
-
-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
diff --git a/website/blog/2021-08-01-mdx-blog-post.mdx b/website/blog/2021-08-01-mdx-blog-post.mdx
deleted file mode 100644
index fab41c9c..00000000
--- a/website/blog/2021-08-01-mdx-blog-post.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-slug: mdx-blog-post
-title: MDX Blog Post
-authors: [slorber]
-tags: [docusaurus]
-draft: true
----
-
-Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).
-
-:::tip
-
-Use the power of React to create interactive blog posts.
-
-:::
-
-{/* truncate */}
-
-For example, use JSX to create an interactive button:
-
-```js
-
-```
-
-
diff --git a/website/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/website/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg
deleted file mode 100644
index 11bda092..00000000
Binary files a/website/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg and /dev/null differ
diff --git a/website/blog/2021-08-26-welcome/index.md b/website/blog/2021-08-26-welcome/index.md
deleted file mode 100644
index 3e909713..00000000
--- a/website/blog/2021-08-26-welcome/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-slug: welcome
-title: Welcome
-authors: [slorber, yangshun]
-tags: [facebook, hello, docusaurus]
-draft: true
----
-
-[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).
-
-Here are a few tips you might find useful.
-
-
-
-Simply add Markdown files (or folders) to the `blog` directory.
-
-Regular blog authors can be added to `authors.yml`.
-
-The blog post date can be extracted from filenames, such as:
-
-- `2019-05-30-welcome.md`
-- `2019-05-30-welcome/index.md`
-
-A blog post folder can be convenient to co-locate blog post images:
-
-
-
-The blog supports tags as well!
-
-**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.
diff --git a/website/blog/2025-10-28-example.md b/website/blog/2025-10-28-welcome.md
similarity index 90%
rename from website/blog/2025-10-28-example.md
rename to website/blog/2025-10-28-welcome.md
index 8a329773..83ebbb11 100644
--- a/website/blog/2025-10-28-example.md
+++ b/website/blog/2025-10-28-welcome.md
@@ -1,8 +1,9 @@
---
-slug: 2025-10-28-example
+slug: 2025-10-28-welcome
title: Hello Compose World!
authors: [mn]
tags: [hello]
+enableComments: false
---
Welcome to the blog
diff --git a/website/blog/authors.yml b/website/blog/authors.yml
index d93bd69f..e9525f14 100644
--- a/website/blog/authors.yml
+++ b/website/blog/authors.yml
@@ -1,33 +1,10 @@
-yangshun:
- name: Yangshun Tay
- title: Ex-Meta Staff Engineer, Co-founder GreatFrontEnd
- url: https://linkedin.com/in/yangshun
- image_url: https://github.com/yangshun.png
- page: true
- socials:
- x: yangshunz
- linkedin: yangshun
- github: yangshun
- newsletter: https://www.greatfrontend.com
-
-slorber:
- name: Sébastien Lorber
- title: Docusaurus maintainer
- url: https://sebastienlorber.com
- image_url: https://github.com/slorber.png
- page:
- # customize the url of the author page at /blog/authors/
- permalink: '/all-sebastien-lorber-articles'
- socials:
- x: sebastienlorber
- linkedin: sebastienlorber
- github: slorber
- newsletter: https://thisweekinreact.com
-
mn:
name: MN
title: Maintainer @ Compose
image_url: https://github.com/maxnorm.png
+ socials:
+ x: mnnnnnnnn355
+ github: maxnorm
mudgen:
name: Nick Mudge
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 9a185269..6c08639c 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -262,6 +262,23 @@ const config = {
contextualSearch: true,
},
}),
+ // Giscus commenting system configuration
+ // See here for more information: https://github.com/giscus/giscus
+ ...(process.env.GISCUS_REPO && process.env.GISCUS_REPO_ID && process.env.GISCUS_CATEGORY_ID && {
+ giscus: {
+ repo: process.env.GISCUS_REPO,
+ repoId: process.env.GISCUS_REPO_ID,
+ category: process.env.GISCUS_CATEGORY || 'Blog',
+ categoryId: process.env.GISCUS_CATEGORY_ID,
+ mapping: process.env.GISCUS_MAPPING || 'pathname',
+ strict: process.env.GISCUS_STRICT || '0',
+ reactionsEnabled: process.env.GISCUS_REACTIONS_ENABLED || '1',
+ emitMetadata: process.env.GISCUS_EMIT_METADATA || '0',
+ inputPosition: process.env.GISCUS_INPUT_POSITION || 'top',
+ lang: process.env.GISCUS_LANG || 'en',
+ loading: process.env.GISCUS_LOADING || 'lazy'
+ },
+ }),
}),
plugins: [
process.env.POSTHOG_API_KEY && [
diff --git a/website/package-lock.json b/website/package-lock.json
index a18f2d70..b9486d8c 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -11,6 +11,7 @@
"@docusaurus/core": "3.9.2",
"@docusaurus/preset-classic": "3.9.2",
"@docusaurus/theme-mermaid": "^3.9.2",
+ "@giscus/react": "^3.1.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"dotenv": "^17.2.3",
@@ -4124,6 +4125,18 @@
"node": ">=20.0"
}
},
+ "node_modules/@giscus/react": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@giscus/react/-/react-3.1.0.tgz",
+ "integrity": "sha512-0TCO2TvL43+oOdyVVGHDItwxD1UMKP2ZYpT6gXmhFOqfAJtZxTzJ9hkn34iAF/b6YzyJ4Um89QIt9z/ajmAEeg==",
+ "dependencies": {
+ "giscus": "^1.6.0"
+ },
+ "peerDependencies": {
+ "react": "^16 || ^17 || ^18 || ^19",
+ "react-dom": "^16 || ^17 || ^18 || ^19"
+ }
+ },
"node_modules/@hapi/hoek": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
@@ -4365,6 +4378,21 @@
"integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
"license": "MIT"
},
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz",
+ "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz",
+ "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.5.0"
+ }
+ },
"node_modules/@mdx-js/mdx": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz",
@@ -5470,8 +5498,7 @@
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "license": "MIT",
- "optional": true
+ "license": "MIT"
},
"node_modules/@types/unist": {
"version": "3.0.3",
@@ -9557,6 +9584,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/giscus": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/giscus/-/giscus-1.6.0.tgz",
+ "integrity": "sha512-Zrsi8r4t1LVW950keaWcsURuZUQwUaMKjvJgTCY125vkW6OiEBkatE7ScJDbpqKHdZwb///7FVC21SE3iFK3PQ==",
+ "license": "MIT",
+ "dependencies": {
+ "lit": "^3.2.1"
+ }
+ },
"node_modules/github-slugger": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
@@ -11097,6 +11133,37 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"license": "MIT"
},
+ "node_modules/lit": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.2.tgz",
+ "integrity": "sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^2.1.0",
+ "lit-element": "^4.2.0",
+ "lit-html": "^3.3.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz",
+ "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.5.0",
+ "@lit/reactive-element": "^2.1.0",
+ "lit-html": "^3.3.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz",
+ "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
"node_modules/loader-runner": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz",
diff --git a/website/package.json b/website/package.json
index 502302dd..44cd03df 100644
--- a/website/package.json
+++ b/website/package.json
@@ -17,6 +17,7 @@
"@docusaurus/core": "3.9.2",
"@docusaurus/preset-classic": "3.9.2",
"@docusaurus/theme-mermaid": "^3.9.2",
+ "@giscus/react": "^3.1.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"dotenv": "^17.2.3",
diff --git a/website/src/components/Giscus/GiscusComponent.js b/website/src/components/Giscus/GiscusComponent.js
new file mode 100644
index 00000000..e6917cbd
--- /dev/null
+++ b/website/src/components/Giscus/GiscusComponent.js
@@ -0,0 +1,78 @@
+import React from 'react';
+import Giscus from "@giscus/react";
+import { useColorMode } from '@docusaurus/theme-common';
+import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
+import styles from './styles.module.css';
+
+/**
+ * Giscus comment component for blog posts
+ *
+ * Configuration is read from themeConfig.giscus in docusaurus.config.js
+ * The component automatically adapts to the current Docusaurus theme (light/dark mode)
+ * by using Giscus's built-in themes.
+ *
+ * Quick setup: Visit https://giscus.app/ to get your configuration values.
+ * See GISCUS_SETUP.md for detailed instructions.
+ */
+export default function GiscusComponent() {
+ const { colorMode } = useColorMode();
+ const { siteConfig } = useDocusaurusContext();
+
+ const giscusConfig = siteConfig.themeConfig?.giscus;
+
+ if (!giscusConfig) {
+ console.warn(
+ 'Giscus configuration is missing from themeConfig. ' +
+ 'Please ensure giscus config is set in docusaurus.config.js'
+ );
+ return null;
+ }
+
+ const {
+ repo,
+ repoId,
+ category = 'Blog',
+ categoryId,
+ mapping = 'pathname',
+ strict = '0',
+ reactionsEnabled = '1',
+ emitMetadata = '0',
+ inputPosition = 'top',
+ theme: themeConfig,
+ lightTheme = 'light', // Configurable light theme
+ darkTheme = 'dark', // Configurable dark theme
+ lang = 'en',
+ loading = 'lazy',
+ ...restConfig
+ } = giscusConfig;
+
+
+ // Determine theme based on color mode and configuration
+ const theme = colorMode === 'dark' ? darkTheme : lightTheme;
+
+ return (
+
+
+
+
+ );
+}
diff --git a/website/src/components/Giscus/index.js b/website/src/components/Giscus/index.js
new file mode 100644
index 00000000..2c692ba8
--- /dev/null
+++ b/website/src/components/Giscus/index.js
@@ -0,0 +1 @@
+export { default } from './GiscusComponent';
diff --git a/website/src/components/Giscus/styles.module.css b/website/src/components/Giscus/styles.module.css
new file mode 100644
index 00000000..75c9dd13
--- /dev/null
+++ b/website/src/components/Giscus/styles.module.css
@@ -0,0 +1,36 @@
+/**
+ * Giscus Comments Section Styling
+ */
+
+.commentsSection {
+ margin-top: 3rem;
+ margin-bottom: 2rem;
+}
+
+.commentsHeading {
+ font-size: 2rem;
+ font-weight: 700;
+ letter-spacing: -0.015em;
+ margin-top: 0;
+ margin-bottom: 1.5rem;
+ padding-bottom: 0.75rem;
+ border-bottom: 2px solid var(--ifm-color-emphasis-200);
+ color: var(--ifm-heading-color);
+}
+
+[data-theme='dark'] .commentsHeading {
+ border-bottom-color: #334155;
+ color: #ffffff;
+}
+
+/* Responsive adjustments */
+@media (max-width: 768px) {
+ .commentsHeading {
+ font-size: 1.75rem;
+ margin-bottom: 1.25rem;
+ }
+
+ .commentsSection {
+ margin-top: 2.5rem;
+ }
+}
diff --git a/website/src/css/custom.css b/website/src/css/custom.css
index fa180cae..dc36746b 100644
--- a/website/src/css/custom.css
+++ b/website/src/css/custom.css
@@ -109,4 +109,27 @@
.token.constant,
.token.important {
font-style: normal !important;
+}
+
+/* ============================================
+ GISCUS COMMENTS STYLING
+ ============================================ */
+
+/* Ensure Giscus iframe container matches our design */
+.giscus,
+.giscus-frame {
+ width: 100%;
+ border: none;
+ margin-top: 1.5rem;
+}
+
+/* Style the Giscus container wrapper */
+[class*="giscus"] {
+ font-family: var(--ifm-font-family-base);
+}
+
+/* Ensure proper spacing for comments section in blog posts */
+article .giscus {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
}
\ No newline at end of file
diff --git a/website/src/theme/BlogPostItem/index.js b/website/src/theme/BlogPostItem/index.js
new file mode 100644
index 00000000..50c3753a
--- /dev/null
+++ b/website/src/theme/BlogPostItem/index.js
@@ -0,0 +1,20 @@
+import React from 'react';
+import { useBlogPost } from '@docusaurus/plugin-content-blog/client';
+import BlogPostItem from '@theme-original/BlogPostItem';
+import GiscusComponent from '@site/src/components/Giscus';
+
+export default function BlogPostItemWrapper(props) {
+ const { metadata, isBlogPostPage } = useBlogPost();
+
+ const { frontMatter } = metadata;
+ const { enableComments } = frontMatter;
+
+ return (
+ <>
+
+ {(enableComments !== false && isBlogPostPage) && (
+
+ )}
+ >
+ );
+}
diff --git a/website/static/llms.txt b/website/static/llms.txt
index cb7d3764..010afafb 100644
--- a/website/static/llms.txt
+++ b/website/static/llms.txt
@@ -1,6 +1,5 @@
# LLMs crawling policy
# Purpose: Signal intent to common AI/LLM crawlers.
-# Note: This file is advisory; enforcement depends on each crawler.
User-agent: GPTBot
Allow: /
@@ -21,6 +20,66 @@ Allow: /
User-agent: *
Allow: /
-# Reference sitemap (update domain when finalized)
-Sitemap: https://docusaurus-test-seven-sage.vercel.app/sitemap.xml
+Sitemap: https://compose.diamonds/sitemap.xml
+# Site Information
+Site-Name: Compose
+Site-URL: https://compose.diamonds/
+Description: Smart Contract Oriented Programming for ERC-2535 Diamonds. A smart contract library that helps developers build smart contract systems using the ERC-2535 Diamond standard, designed for code clarity, reusability, and on-chain composability.
+Tagline: Smart Contract Oriented Programming for ERC-2535 Diamonds
+
+# Main Content Sections
+Content-Sections:
+ - Homepage: https://compose.diamonds/
+ - Documentation: https://compose.diamonds/docs
+ - Blog: https://compose.diamonds/blog
+
+# Documentation Structure
+Documentation-Topics:
+ - Introduction: https://compose.diamonds/docs
+ - Foundations: https://compose.diamonds/docs/foundations
+ - Getting Started: https://compose.diamonds/docs/getting-started
+ - Design: https://compose.diamonds/docs/design
+ - Contribution: https://compose.diamonds/docs/contribution
+
+# Key Concepts
+Core-Concepts:
+ - ERC-2535 Diamonds: Diamond standard for modular smart contracts
+ - Facets: Modular smart contract components
+ - Smart Contract Oriented Programming (SCOP): Programming paradigm designed specifically for smart contracts
+ - Composition Over Inheritance: Combine deployed facets instead of inheriting contracts
+ - On-Chain Standard Library: Verified, audited facets deployed on multiple blockchains
+
+# Philosophy
+Philosophy:
+ - Read First: Code written to be understood first, not just executed
+ - Diamond-Native: Built specifically for ERC-2535 diamond contracts
+ - Composition Over Inheritance: Combine facets instead of inheriting contracts
+ - Intentional Simplicity: Banned features lead to clearer, safer code
+
+# Important Links
+Links:
+ - GitHub: https://github.com/Perfect-Abstractions/Compose
+ - Discord: https://discord.gg/DCBD2UKbxc
+ - GitHub Discussions: https://github.com/Perfect-Abstractions/Compose/discussions
+ - License: https://github.com/Perfect-Abstractions/Compose/blob/main/LICENSE.md
+
+# Project Status
+Status: Early Stage - Not Production Ready
+License: MIT
+Language: Solidity
+Framework: Foundry
+
+# Technical Details
+Tech-Stack:
+ - Smart Contracts: Solidity
+ - Build Tool: Foundry
+ - Documentation: Docusaurus
+ - Standard: ERC-2535 Diamonds
+
+# Content Types
+Content-Types:
+ - Documentation: Technical guides, API references, tutorials
+ - Blog: Articles, updates, and community content
+ - Code Examples: Solidity smart contract examples
+ - Design Patterns: SCOP patterns and best practices
diff --git a/website/static/robots.txt b/website/static/robots.txt
index 27b32da4..dd02d3d2 100644
--- a/website/static/robots.txt
+++ b/website/static/robots.txt
@@ -1,8 +1,25 @@
+# Robots.txt for Compose Documentation
+
+# Allow all search engines to crawl the site
User-agent: *
Allow: /
+# Disallow tag pages (low-value, duplicate content)
Disallow: /tags/
-# Update this to your final production domain when ready
-Sitemap: https://docusaurus-test-seven-sage.vercel.app/sitemap.xml
+# Disallow search pages (dynamic, no-index content)
+Disallow: /search
+
+# Disallow any admin or internal paths
+Disallow: /admin/
+Disallow: /_next/
+Disallow: /api/
+
+# Allow important content paths explicitly
+Allow: /docs
+Allow: /blog
+Allow: /
+
+# Sitemap location
+Sitemap: https://compose.diamonds/sitemap.xml