SimplePage is a censorship resistant markdown based CMS platform and protocol.
- Install dependencies from root directory:
pnpm install
First spin up a local development environment. This requires a few steps
ipfs daemon- start your local ipfs nodeanvil --chain-id=1337- start the local ethereum test environmentcd ..- move to root directory./setup-test-env.js- start the test environmentcd packages/node./bin/simplepage-node.js -p 8001 -c 1337- start the Simple Page Node
npm run dev: Start development server
Pages can include interactive transaction forms by embedding Markdown images that target the web3:// scheme:

- The first path segment after the contract is treated as the function name.
- Argument segments follow the
type!valuepattern. Usetype!0xto require user input (no default). Any other value pre-fills the field but remains editable. - Every argument must explicitly declare its Solidity type; bare values (without
type!) are rejected. - Optional labels can precede the argument (
recipient=address!0x...) and are shown beside the input. - Query params support
value=(e.g.?value=0.1eth) andpayable=true. - When rendered, each tag becomes a form with a button whose label is derived from the function name (e.g.,
transferFrom→Transfer From). A wallet status header is embedded automatically, and submissions run through viem/wagmi with ENS contract resolution at runtime. - Only the
web3://scheme is recognized;w3://links will fall back to standard media handling.
This project is licensed under the GNU General Public License v3.0 (GPLv3) - see the LICENSE file for details.