{"id":31767838,"url":"https://github.com/openzeppelin/docs","last_synced_at":"2025-10-10T01:48:14.576Z","repository":{"id":312025398,"uuid":"1032074818","full_name":"OpenZeppelin/docs","owner":"OpenZeppelin","description":"The new OpenZeppelin Documentation","archived":false,"fork":false,"pushed_at":"2025-09-26T16:05:56.000Z","size":50623,"stargazers_count":2,"open_issues_count":4,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-26T16:28:43.895Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenZeppelin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-04T19:06:23.000Z","updated_at":"2025-09-26T13:04:58.000Z","dependencies_parsed_at":"2025-09-19T01:18:21.517Z","dependency_job_id":null,"html_url":"https://github.com/OpenZeppelin/docs","commit_stats":null,"previous_names":["openzeppelin/docs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenZeppelin/docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdocs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdocs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdocs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdocs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenZeppelin","download_url":"https://codeload.github.com/OpenZeppelin/docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenZeppelin%2Fdocs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002399,"owners_count":26083374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-10T01:48:11.933Z","updated_at":"2025-10-10T01:48:14.568Z","avatar_url":"https://github.com/OpenZeppelin.png","language":"MDX","readme":"# OpenZeppelin Docs\n\n![cover](public/social.png)\n\nWelcome to the OpenZeppelin Docs repo! Before opening an issue or creating a PR please consult our [contribution guide](CONTRIBUTING.md)\n\n## Development\n\nThis is a Next.js application generated with [Fumadocs](https://github.com/fuma-nama/fumadocs).\n\nTo start local development follow the steps below\n\n**1. Make sure [pnpm](https://pnpm.io) is installed**\n\n```bash\npnpm --version\n```\n\n**2. Clone the repo and install dependencies**\n\n```bash\ngit clone https://github.com/OpenZeppelin/docs\ncd docs\npnpm install\n```\n\n**3. Run the `dev` server to see a live preview and have your changes reflected at `http://localhost:3000`**\n\n```bash\npnpm dev\n```\n\n## Project Structure\n\n### Content Organization\n\nThe documentation content is organized in the `content/` directory with the following structure:\n\n```\ncontent/\n├── community-contracts/     # Community-contributed contracts\n├── confidential-contracts/  # Confidential/privacy-focused contracts\n├── contracts/              # Core OpenZeppelin Contracts documentation\n├── contracts-cairo/        # Cairo contracts for StarkNet\n├── contracts-compact/      # Compact contract implementations\n├── contracts-stylus/       # Stylus contracts for Arbitrum\n├── ui-builder/   # UI Builder documentation\n├── defender/               # Defender platform documentation\n├── monitor/                # Monitoring tools documentation\n├── relayer/                # Relayer service documentation\n├── stellar-contracts/      # Stellar blockchain contracts\n├── substrate-runtimes/     # Substrate runtime documentation\n├── uniswap-hooks/          # Uniswap v4 hooks\n├── upgrades-plugins/       # Upgrade plugins documentation\n├── upgrades.mdx           # General upgrades guide\n└── wizard.mdx             # Contract wizard documentation\n```\n\nEach product directory contains:\n- `index.mdx` - Main documentation entry point\n- `changelog.mdx` - Version history and changes\n- Subdirectories for specific features/modules\n- API reference files\n\n### Application Structure\n\n| Path                                    | Description                                                    |\n| --------------------------------------- | -------------------------------------------------------------- |\n| `src/app/(docs)/`                      | Documentation pages route group                               |\n| `src/app/(docs)/layout.tsx`           | Docs layout wrapper                                           |\n| `src/app/(docs)/[...slug]/page.tsx`   | Dynamic documentation pages                                    |\n| `src/app/page.tsx`                     | Homepage                                                       |\n| `src/app/layout.tsx`                   | Root application layout                                        |\n| `src/app/layout.config.tsx`           | Shared layout configuration and navigation                     |\n| `src/components/`                      | Reusable React components                                      |\n| `src/components/layout/`               | Layout-specific components                                     |\n| `src/components/icons/`                | Custom SVG icons for products                                  |\n| `src/components/ui/`                   | UI component library                                           |\n| `src/lib/source.ts`                    | Content source adapter with Fumadocs loader                   |\n\n### Configuration Files\n\n- `source.config.ts` - Fumadocs MDX configuration with math, mermaid, and code highlighting\n- `next.config.mjs` - Next.js configuration\n- `postcss.config.mjs` - PostCSS configuration for styling\n\n## Navigation \u0026 Components\n\n### Navigation Structure\n\nThe top navigation is configured in `src/app/layout.config.tsx` and includes:\n\n- **Main Navigation**: Home, Forum, Website links\n- **Product Categories**: Auto-generated from content structure\n- **Search**: Full-text search across all documentation\n- **Theme Toggle**: Light/dark mode switching\n\nSidebar navigation is handled in `src/navigation/` where multiple navigation JSON trees are exported and used inside `src/components/layout/docs-layout-client.tsx`\n\n### Key Components\n\n#### Layout Components\n- `DocsLayoutClient` - Client-side docs layout with sidebar\n- `BaseLayoutProps` - Shared layout configuration\n- `PageClient` - Individual page wrapper\n\n#### UI Components\n- `Card` \u0026 `SmallCard` - Content cards for homepage\n- `TOC` - Table of contents with scrollspy\n- `Search` - Search interface with custom results\n- `ThemeToggle` - Theme switching\n- `VersionBanner` - Version-specific messaging\n\n#### Custom Icons\nProduct-specific icons located in `src/components/icons/`:\n- Ethereum, Arbitrum, StarkNet, Stellar, Polkadot chains\n- Product icons for Contracts, Defender, Monitor, etc.\n- Tool icons for Wizard, Ethernaut, etc.\n\n### Content Features\n\n#### MDX Enhancements\n- **Math Support**: LaTeX math rendering with KaTeX\n- **Mermaid Diagrams**: Flowcharts and diagrams\n- **Code Highlighting**: Multi-theme syntax highlighting\n- **OpenAPI Integration**: Automatic API documentation generation\n\n#### Interactive Elements\n- **OpenZeppelin Wizard**: Embedded contract generation tool\n- **Code Examples**: Copy-to-clipboard functionality\n- **Version Switching**: Multi-version documentation support\n- **Responsive Design**: Mobile-optimized navigation and content\n\n## Content Management\n\n### Adding New Content\n\n1. Create `.mdx` files in appropriate `content/` subdirectories\n2. Use frontmatter for metadata (title, description, etc.)\n3. Follow existing directory structure for consistency\n4. Update navigation if adding new product categories\n\n### Versioning\n\n- Version-specific content in numbered subdirectories (e.g., `contracts/4.x/`)\n- Latest content at root level of each product directory\n- Automatic version detection and routing\n\n## Learn More\n\nTo learn more about the technologies used:\n\n- [Next.js Documentation](https://nextjs.org/docs) - React framework features and API\n- [Fumadocs](https://fumadocs.vercel.app) - Documentation framework\n- [MDX](https://mdxjs.com/) - Markdown with JSX components\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenzeppelin%2Fdocs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenzeppelin%2Fdocs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenzeppelin%2Fdocs/lists"}