// the find
nounsDAO/nouns-monorepo
The Nouns DAO monorepo
The Nouns DAO monorepo: Solidity contracts, the Noun PNG and run-length encoded image data, an SDK with React hooks, a Ponder-based indexer and API for auction and governance history, and the nouns.wtf frontend. It is for people building on Nouns or forking the stack, not for anyone who just wants the art.
- The packages split on real boundaries. The assets package is self-contained (PNGs and RLE data), so the art can be consumed without touching the Solidity side, and the contracts have their own CI workflow (contracts.yaml).
- The move from subgraph to Ponder is sensible. nouns-api has per-contract handler files (NounsAuctionHouseV2.ts, NounsDAOV4.ts, NounsDAOData.ts, Stream.ts) in the same TypeScript codebase as the rest of the stack, instead of a separate manifest plus AssemblyScript mappings.
- Local commit hygiene is wired up with husky, lint-staged and a flat ESLint config, so lint and format problems get caught before they reach a PR.
- The .cursor/rules files and CLAUDE.md spell out conventions like Lingui i18n and component naming, which gives a contributor a usable map of the webapp's expectations.
- The README is a package index plus three commands. It says nothing about running the webapp against a local chain, or about the environment variables nouns-api needs to start (RPC endpoint, database), so a newcomer stops at pnpm build.
- nouns-subgraph is marked deprecated but still sits in the tree next to nouns-api. Anyone searching for indexing code will find two, and the deprecation only shows if they read the README first.
- The asset directory carries two trait sets: v0 with full folders, and noundry with mostly .gitkeep placeholders in backgrounds, bodies and glasses. The README does not say which set is canonical or how to add a trait, which is the first question a contributor will have.
- Only build, lint and format appear in the README, with no test command at the top level. Unless each package defines its own, a new contributor cannot tell from the docs how well the contracts and SDK are tested.