Development & Contribution Guide
Most user-facing documentation, guides, and FAQs are hosted at:
This README is focused on development, contribution, and release workflows for the SimplePage monorepo.
simplepage/
├── contracts/ # Smart contracts (Solidity, Foundry)
├── frontend/ # React web application
└── packages/
├── cli/ # Command-line interface
├── common/ # Shared utilities
├── dservice/ # Backend API services
├── repo/ # Repository management
└── test-utils/ # Testing utilities
- Each package has its own README with usage and development details.
- See contracts/README.md for smart contract dev.
- See frontend/README.md for frontend dev.
- See packages/cli/README.md for CLI usage.
pnpm installpnpm buildpnpm testcd frontend
pnpm devSee contracts/README.md for Foundry/Makefile usage.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes and commit (
git commit -m 'Describe your change') - Push to your fork (
git push origin feature/my-feature) - Open a Pull Request
- Use ES6+ features and follow existing code style
- Use workspace dependencies with
workspace:*in package.json - Use pnpm for all package management (see below)
- Install dependencies:
pnpm install - Add a dependency to a package:
pnpm --filter <package-name> add <package>
- Run a script in a package:
pnpm --filter <package-name> run <script>
- Update dependencies:
pnpm update - Remove a dependency:
pnpm --filter <package-name> remove <package>
We use Changesets for versioning and changelog management.
- After making code changes, run:
pnpm changeset
- Follow the prompts to describe your changes and select affected packages.
- Commit the generated
.mdfile in.changeset/with your PR.
- Version packages and update changelogs:
pnpm changeset version pnpm install
- Build all packages:
First make sure
.envis configured for mainnet, then:pnpm run build
- Build and publish to npm:
pnpm changeset publish
- Stage the frontend release:
This step prepares the release for publishing and may generate a content hash.
pnpm run stage
- Publish the resulting hash on ENS:
- After publishing, update your ENS domain's contenthash record with the new hash (e.g., via the ENS Manager or CLI).
- https://app.ens.domains/new.simplepage.eth?tab=records
- See Changesets documentation for more details.
This project is licensed under the GPL-3.0-only License - see the LICENSE file for details.
- User Docs: https://simplepage.eth.link
- Issues: Report bugs and feature requests via GitHub Issues
- Discussions: Join community discussions on GitHub Discussions
Built with ❤️ for the decentralized web