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


Here are examples of apps built using jolly-roger

The Bleeps DAO and Its Fully Onchain Sounds

The First Composable Sounds Fully Generated On-Chain With Zero Externalities, no backend, no ipfs, no client-code, and a melody minter where some of the proceeds goes to the Bleeps DAO and its members

Source code available here


On-chain Generative Bitmaps With Zero Externalities

The First On-Chain Generative Art Project to make full use of token URI to remove all external dependencies. It generates SVG and Bitmap from the smart contract directly.

Source code available here


A Game of Strategy and Diplomacy Running on the EVM

An unstoppable game of strategy and diplomacy running on the EVM. It allows player to collaborate through on-chain alliances while remaining sovereign. A first of its kind.

Source code not yet available


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.