Skip to content

stigmergic-org/simplepage

Repository files navigation

SimplePage Monorepo

Development & Contribution Guide

Most user-facing documentation, guides, and FAQs are hosted at:

👉 https://simplepage.eth.link

This README is focused on development, contribution, and release workflows for the SimplePage monorepo.


🛠️ Monorepo Structure

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

🚀 Getting Started (Development)

Prerequisites

  • Node.js v18+
  • pnpm (monorepo/workspace manager)
  • Foundry (for smart contract dev)

Install dependencies

pnpm install

Build all packages

pnpm build

Run tests for all packages

pnpm test

Start the frontend (dev mode)

cd frontend
pnpm dev

Develop contracts

See contracts/README.md for Foundry/Makefile usage.


🧑‍💻 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes and commit (git commit -m 'Describe your change')
  4. Push to your fork (git push origin feature/my-feature)
  5. Open a Pull Request

Code Style & Workflow

  • Use ES6+ features and follow existing code style
  • Use workspace dependencies with workspace:* in package.json
  • Use pnpm for all package management (see below)

📦 Package Management & Workspace Commands

  • 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>

📝 Versioning & Release Workflow (Changesets)

We use Changesets for versioning and changelog management.

Adding a Changeset

  1. After making code changes, run:
    pnpm changeset
  2. Follow the prompts to describe your changes and select affected packages.
  3. Commit the generated .md file in .changeset/ with your PR.

Releasing New Versions

  1. Version packages and update changelogs:
    pnpm changeset version
    pnpm install
  2. Build all packages: First make sure .env is configured for mainnet, then:
    pnpm run build
  3. Build and publish to npm:
    pnpm changeset publish
  4. Stage the frontend release:
    pnpm run stage
    This step prepares the release for publishing and may generate a content hash.
  5. Publish the resulting hash on ENS:

📄 License

This project is licensed under the GPL-3.0-only License - see the LICENSE file for details.

🤝 Support

  • 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

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •