User Guide
Everything you need to know to create and publish your Simple Page.
Home | Architecture | About
Getting Started
Forking a Template
The easiest way to get started is to fork an existing Simple Page template:
- Visit a Template: Go to any Simple Page site (like new.simplepage.eth)
- Click Fork: Look for the Fork button in the top-right corner
- Start Editing: You'll be taken to the editor with a copy of the template
Available Templates:
- new.simplepage.eth - A blank slate to start from scratch
- simplepage.eth - This website, showing how to create multiple pages
- blog.simplepage.eth - a minimalist blog framework
- link-in-bio.simplepage.eth - a list of links, attached to your ENS name
- wiki.simplepage.eth - a multi-lingual wiki
- Any Simple Page site - You can fork any existing Simple Page site
The Editor
The Simple Page editor provides a powerful yet simple interface for creating your content:
Markdown Editor
- Live Preview: See your changes in real-time as you type
- Syntax Highlighting: Markdown syntax is highlighted for better readability
- Auto-Save: Your work is automatically saved as you type
- Link Management: Easily link between pages using markdown syntax,
e.g.[My Page](/my-page/)
Preview Mode
While in Edit mode, simply click the Preview button top right to enter preview mode.
- Preview Content: See how your content will look like when published
- Preview Links: Links to other pages takes you to the preview of that page
Pages View
The Pages view shows all pages in your site and helps you organize your content:
Accessing Pages View
Click the ≡ (hamburger) menu top right (while in edit mode), then click the Pages button in the dropdown menu.
Managing Pages
- Page List: See all pages in your site with their titles
- Page Creation: Add new pages with the "New Page" button
- Page Options: There are three buttons on every page,
- Preview - opens preview mode
- Edit - opens edit mode
- Delete - removes the page
Page Structure
- Home Page: Your main page (usually
/
) - Subpages: Create pages like
/about/
,/contact/
, etc. - Nested Pages: Organize content with nested structures, e.g.
/blog/first-post/
Publishing Your Page
When you're ready to share your content with the world:
Before Publishing
- Check Content: Review all pages and make sure everything looks good
- Test Links: Verify all internal links work correctly
- Get an ENS name: make sure you have an ENS domain you can publish the content on
Publishing Process
- Click Publish: Use the Publish button in the editor
- Connect Wallet: Confirm you connected the correct address
- Select Domain: Choose which ENS domain to publish to
- Review Changes: See what will be published
- Confirm Transaction: Approve the transaction in your wallet
- Wait for Confirmation: The blockchain will process your update
After Publishing
- Global Access: Your site is immediately available at your ENS domain
- Multiple Gateways: Access via
.eth.link
,.eth.limo
,.eth.ac
, etc. - Censorship Resistant: Your content is now decentralized and resistant to takedowns
Subscription Management
Simple Page uses a subscription model to ensure sustainable hosting:
When Subscription
- First Publish: You'll need an active subscription to publish, the first time you try to publish to a new domain you will be redirected to the subscription page
- Storage Expiry: When your storage units expire, you will be prompted to renew your subscription
Managing Your Subscription
- Visit Subscribe Page: Go to the subscription page for your domain
- Check Status: See your current storage units and expiration dates
- Purchase Storage: Extend your subscription into the future if desired
Advanced Usage
Publishing Static Websites with CLI
For developers and advanced users, Simple Page provides a powerful CLI tool. This tool enables you to publish any static website and have it persisted by the Simple Page indexer nodes.
Installation
npm install -g @simplepg/cli
Usage
# Publish a static website
simplepage publish myapp.eth ./dist
# Publish a single file
simplepage publish myapp.eth ./index.html
# Check subscription status
simplepage info myapp.eth
Supported Content
- Static HTML: Any HTML, CSS, and JavaScript files
- Images and Media: All common web media formats
- Web Apps: Single-page applications and complex web apps
- Documentation: Technical docs, blogs, portfolios
Running the SimplePage DService
Contribute to the Simple Page network by running your own DService indexer node:
Prerequisites
- Node.js 20+ with ES modules support
- IPFS node (Kubo) running and accessible
- Ethereum RPC endpoint
Installation
npm install -g @simplepg/dservice
Basic Setup
# Start with default settings
simplepage-dservice
# Start with custom configuration
simplepage-dservice \
--ipfs-api http://localhost:5001 \
--api-port 3000 \
--rpc https://mainnet.infura.io/v2/YOUR_KEY \
--chain-id 1
For a full list of options and commands, see simplepage-dservice --help
.
Kubo Best Practices
When starting your Kubo IPFS node, it is recommended that you use the following functionality:
- AutoTLS - gives your node a TLS certificate to make it accessible from web browsers
- AcceleratedDHTClient - makes the connectivity of your node better, at the cost of some CPU overhead
Allow/Block List Management
The DService implementation has support for allow-/block-listing pages based on domains. This can be useful if there is certain content you know you don't want your node to index, or certain pages you ONLY want to index.
# Manage allow list
simplepage-dservice allow-list show
simplepage-dservice allow-list add example.eth
simplepage-dservice allow-list rm example.eth
# Manage block list
simplepage-dservice block-list show
simplepage-dservice block-list add spam.eth
simplepage-dservice block-list rm spam.eth
Benefits of Running a Node
- Network Health: Help ensure content availability
- Censorship Resistance: Contribute to decentralized hosting
- Community Support: Support the Simple Page ecosystem
- Custom Control: Host your own content and trusted sites
Getting Help
- Documentation: Check the Architecture page for technical details
- Community: Join discussions on Matrix
- Issues: Report bugs via GitHub Issues