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 ./dist
npm install netlify-cli -g # install the netlify cli
netlify login
cd ./dist
netlify deploy
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
There are a ton of other places where static files can be hosted:
Prerequisites:
pnpm install
pnpm dev
# Will be live 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