Skip to content

Latest commit

 

History

History

minifront

Minifront

A minimal frontend for interacting with the Penumbra chain. Every Penumbra RPC endpoint will be hosting this static frontend as it is embedded into the node software.

Note: A Penumbra wallet extension is required for full functionality.

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 ✅
  • 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 about how this frontend embraces censorship resistance and privacy.

Deploy anywhere

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. 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. 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

Others

There are a ton of other places where static files can be hosted:

Build locally

Prerequisites:

pnpm install
pnpm dev
# Will be live at https://localhost:5173/

Technologies Used

  • TypeScript
  • React
  • vite / vitest
  • Turborepo
  • react-router-dom
  • zustand
  • tailwindcss
  • framer-motion
  • @bufbuild/protobuf
  • @testing-library/react

License

This project is dual-licensed under MIT and Apache-2.0