A decentralized forum and profile application built on Ethereum and Swarm.
Demonstrates Swarm-hosted user profiles and a decentralized message board using Swarm (Bee), Swarm Feeds, and EIP-712/EIP-191 signatures for user-owned identities and cryptographically verified posts.
Status: Live deployment at https://gateway.woco-net.com/bzz/9ebcea7ca2d4a3a975d1724ee579856684dc6f2ffa3082b64317006c922f3100/
This repository contains both frontend and backend:
devconnect-profile-sandbox/
├── frontend/ # Next.js static export → deployed to Swarm
├── backend/ # Next.js API routes → runs on server
└── docs/ # Documentation
Location: frontend/
Static Next.js application deployed to Swarm for decentralized hosting.
Tech Stack:
- Next.js 15 with static export
- React 19
- Ethers.js for wallet integration
- Swarm (bee-js) for decentralized storage
- EIP-712 for authentication
Development:
cd frontend
npm install
npm run dev
# Opens at http://localhost:3000Build & Deploy to Swarm:
cd frontend
# Build (with batch ID override if needed)
NEXT_PUBLIC_POSTAGE_BATCH_ID=<your-batch-id> npm run build
# Upload to Swarm
node upload-manual-collection.js
# For ENS deployment (no basePath)
npm run build:ens
npm run upload:ensLocation: backend/
Next.js API routes for forum, profiles, moderation, and Swarm interactions.
Features:
- Forum API (threads, posts, boards)
- User authentication & profiles
- Moderation (mute/unmute)
- Avatar/image proxy
- EIP-712 signature verification
Development:
cd backend
npm install
npm run dev
# API runs at http://localhost:3000/apiDeployment:
See backend/DEPLOY_ON_SERVER.md for server deployment instructions.
git clone https://github.com/yea-80y/DevConnect-Profile-Forum-Sandbox.git
cd DevConnect-Profile-Forum-Sandboxcd frontend
npm install
cp .env.local.example .env.local # Create and edit with your values
npm run devcd backend
npm install
cp .env.production.local.TEMPLATE .env.production.local # Edit with your values
npm run dev- Frontend (Static): Browser fetches directly from Swarm (
/feeds,/bytes,/bzz) to display profiles, posts, and avatars - Backend (API): Server uploads immutable JSON blobs and updates Swarm feeds with platform signer and postage batch
- Authentication: Web3 users sign EIP-712 capabilities; posts are signed with EIP-191 and verified before publishing
- Make changes to frontend or backend
- Test locally
- Commit and push to GitHub
cd frontend
NEXT_PUBLIC_POSTAGE_BATCH_ID=<batch-id> npm run build
node upload-manual-collection.js# On your server
ssh user@your-server
cd ~/your-backend-directory
git pull
npm install
pm2 restart your-api-nameIf builds show old batch ID, check Windows environment variables:
- Windows Key + R →
sysdm.cpl - Advanced → Environment Variables
- Look for
NEXT_PUBLIC_POSTAGE_BATCH_ID - Delete or update it
Workaround: Build with inline override:
NEXT_PUBLIC_POSTAGE_BATCH_ID=<new-batch-id> npm run buildCurrently, Next.js has CSP compatibility issues with eth.limo gateways. The site loads but gets stuck in loading loops due to strict Content Security Policy blocking Next.js's eval usage.
- Live Site: https://gateway.woco-net.com/bzz/9ebcea7ca2d4a3a975d1724ee579856684dc6f2ffa3082b64317006c922f3100/
- API: https://api.woco-net.com
- Gateway: https://gateway.woco-net.com
MIT © 2025