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.
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:
npm i -g vercel # install the Vercel cli
vercel login
vercel ./distnpm install netlify-cli -g # install the netlify cli
netlify login
cd ./dist
netlify deployCan 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 mainThere are a ton of other places where static files can be hosted:
Prerequisites:
pnpm install && pnpm dev:appYou now have a local copy of Minifront available at
https://localhost:5173.
- TypeScript
- React
- vite / vitest
- Turborepo
- react-router-dom
- zustand
- tailwindcss
- framer-motion
- @bufbuild/protobuf
- @testing-library/react
This project is dual-licensed under MIT and Apache-2.0