Jolly Roger

Jolly Roger

Production-Ready Template To Build Decentralised Applications

Use it:

npx degit wighawag/jolly-roger your-app-folder

Find out more on github

Features

All Included

This template include setup for smart contracts, subgraph (contract api) and frontend. All is setup as a monorepo with a shared common library.

PWA ready: 100% Lighthouse score

The web app is fully PWA compliant, with offline caching, etc... The javascript code necessary to launch the app is less than 50kB (15kB compressed), including the home page content. The rest is loaded on demand.

Great Dev experience

Hardhat for contracts, hardhat-deploy for contract deployment, The Graph for contract api, svelte + Svelte Kit for frontend with HMR (Hot Module Replacement) and production build.

Everything Hot Reload

On contract changes, contract get to keep their address and code get updated automatically. On frontend changes, module get replaced using blazing fast Vite es module hot reload. On subgraph changes, the graph get updated and reexecuted.

Fully IPFS Ready

Fully IPFS ready with proper url routing. The web app works on both IPFS urls and ENS/DNS urls. PWA works on IPFS too with scoped service workers.

All in Typescript

The whole app including contracts tests, is written in typescript.

Code Splitting and Tree Shaking

By using Svelte Kit (and so Vite) and ES modules, the frontend benefit from code splitting an dynamic imports as well as tree shaking.

VSCode Setup

The repo is setup as a vscode workspace with recommended plugins. Execute tests from the editor. Auto format, etc...

One command deploy

Everything is setup, except for the private ENV variable to deploy the contracts, the subgraph and the web app, all at once. It also include fleek config for automatic web deployment on ipfs.