Minifront
Minifront (opens in a new tab) is minimal frontend for interacting with the Penumbra (opens in a new tab) chain. A number of technical decisions were made to ensure minifront is maximally client side and does not leak information unnecessarily:
- ✅ Client-side biased js framework with hash routing
- ⚠ Pre-load all static assets (in progress...)
- ❌ Server rendering
- ❌ Route-based code splitting
- ❌ Idiomatic urls & query params
- ❌ Build-time pre-rendering
Read more (opens in a new tab) about how this frontend embraces censorship resistance and privacy.
Deploy anywhere
Automatically w/ github action
The minifront deployer repo (opens in a new tab) has a github action that can manage minifront's the build+deployment steps on a schedule. Using this will allow you to always host the latest code commited to @penumbra-zone/web (opens in a new tab). Simply fork, add environment variables to your repo, and make customizations for your particular host.
Manual deploys
The dist/
output of the build is simply static assets. That means, it basically can be hosted anywhere.
First, download dist.zip
from
the latest minifront release from github (opens in a new tab).
Unzip that and take it to a variety of host providers. Examples:
Vercel
npm i -g vercel # install the Vercel cli
vercel login
vercel ./dist
Netlify
npm install netlify-cli -g # install the netlify cli
netlify login
cd ./dist
netlify deploy
Github pages
Can follow this guide (opens in a new tab). Let's say your username is roboto7237. First create a new repo specifically named in this format: roboto7237.github.io. Then do:
git clone https://github.com/roboto7237/roboto7237.github.io
cp -r ./dist/* ./roboto7237.github.io/ # copies all minifront code into the new folder
git add --all
git commit -m "Initial commit"
git push -u origin main
Alternative SaaS providers
There are a ton of other places where static files can be hosted:
- Cloudflare pages (opens in a new tab)
- Firebase (opens in a new tab)
- Render (opens in a new tab)
- Surge (opens in a new tab)
- Google cloud (opens in a new tab)
- AWS (opens in a new tab)
Local build
If you want to run the minifront web interface from your local computer, you'll need a few development tools:
- Install nodejs (opens in a new tab)
- Install pnpm (opens in a new tab)
- Add buf registry:
npm config set @buf:registry https://buf.build/gen/npm/v1/
Then clone the Minifront (opens in a new tab) git repo and run:
pnpm install
pnpm dev
# Will be live at https://localhost:5173/
Frontend embedded in fullnode
If you're already running a fullnode, then you don't need to do anything else:
a bundled version of the frontend code is available at https://<YOUR_NODE_URL>/app
. Simply navigate
to that site after installing Prax (opens in a new tab), and authorize the web extension to connect to it.