Progressive Centralization Starter
Scaffold a new project
- •
bun run init -- --template page --dest ./my-page - •
bun run init -- --template web3 --dest ./my-web3
Quick start (inside a template project)
- •
bun install - •
cp .env.example .env - •Fill
.env - •
bun run default <template>(optional) - •
bun run build <template>(orbun run buildif default set) - •
bun run deploy <template>(orbun run deployif default set) - •
bun run preview <template>(optional) - •
bun run dev(local Anvil + deploy + build)
Configuration essentials
- •Townsquare app:
APP_CHAINS_JSON,APP_DEFAULT_CHAIN_ID,TOWNSQUARE_ADDRESSES_JSON - •Filebase IPFS:
FILEBASE_BUCKET,FILEBASE_ROOT_KEY,FILEBASE_ROOT_SECRET - •ENS:
ENS_NAME,PRIVATE_KEY,APP_CHAINS_JSON,ENS_CHAIN_ID(orENS_RPC_URL), optionalENS_NAMEWRAPPER_ADDRESS - •Optional Arweave/ArNS:
ARWEAVE_KEY/ARWEAVE_KEYFILE,ARNS_NAMEorARNS_PROCESS_ID
Deploy flags
- •
--dry-run(build + upload only) - •
--skip-ens(skip ENS update) - •
--cid <cid>(use an existing CID) - •
--name <ens>(override ENS name) - •
--no-resolver-switch(avoid auto-switching resolver)
Customize the frontend
- •
templates/<template>/src/main.ts: UI logic - •
templates/<template>/src/styles.css: styles - •
templates/<template>/src/template.html: metadata + placeholders - •
templates/<template>/public/: optional static assets copied intodist/ - •
contracts/Townsquare.sol: on-chain template contract
Guardrails
- •Use Bun for all commands; do not use npm or Node.
- •Never commit
.envor wallet keys.