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:

Local build

If you want to run the minifront web interface from your local computer, you'll need a few development tools:

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.