How to Contribute
We welcome contributors of all kinds—whether you want to improve our smart contracts, enhance the front-end, fix bugs, or help write documentation. Here's how to get started:
📁 Repo Structure
OmniSocial is structured as a monorepo using pnpm workspaces. The main directories include:
/contracts → Solidity smart contracts (OmniWallet, DAO, PersonaNFT, etc.)
/frontend → React front-end for OmniSocial dApp
/explorer → Omnitopia Explorer interface
/subgraph → The Graph subgraph code and schema
/scripts → Deployment, registration, and helper scripts
/docs → Markdown-based developer & user documentation
/packages/sdk → (optional) SDK or GraphQL client utilities🧑💻 How to Contribute Code
1. Fork & Clone
git clone https://github.com/OmniSocialBlockchain/omnisocial-monorepo.git
cd omnisocial-monorepo
pnpm install2. Create a Feature Branch
git checkout -b feat/add-new-component3. Commit Guidelines
Follow Conventional Commits:
feat: add tipping interface to FeedCard
fix: resolve bug with .omni alias resolution
docs: update contributing section✅ Coding Standards
Solidity (contracts)
Style: Solhint rules enforced
Compiler version:
^0.8.20Named returns and NatSpec (
@notice,@param) encouragedUse
require()with clear revert messagesGroup state-changing functions at the top of each contract
JavaScript/TypeScript (frontend)
Code style: ESLint with Prettier
Framework: React + Next.js
Styling: TailwindCSS
i18n: Next-i18next
Wallets:
wagmiwithviemand@rainbow-me/rainbowkit
🧾 Documentation Contributions
All docs live in
/docs(Markdown)Each section of the platform has its own
.mdfileUse clear, beginner-friendly language
PRs with typo fixes, formatting improvements, or new sections are welcome
🗣️ Communication & Feedback
💬 Discord – Ask questions, suggest features, get real-time help
🐛 GitHub Issues – Report bugs or request features
📦 Pull Request Checklist
Before submitting your PR:
🏁 Start Here
Browse open issues
Comment if you want to take one
Open a PR when ready
Get feedback from core maintainers
Last updated
Was this helpful?
