Monorepo structure, divided into two components: apps/web-app and apps/contracts
boilerplate — Next.js Starter Template
By semaphore-protocol
The official dApp starter template provided by Semaphore, structured as a monorepo with a Next.js frontend and contracts, demonstrating the complete flow of anonymously creating an identity, joining a group, and sending feedback.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Demonstrates the flow of creating a Semaphore identity, joining a group, and anonymously sending feedback
Provides GitHub template usage, allowing you to generate and clone your own repository directly
Includes command instructions for contract deployment and Etherscan verification
Uses Prettier for code format checking and automatic formatting
Uses the MIT license, allowing free use, modification, commercial use, and distribution
Template Details
This repository is a starter template for the Semaphore protocol, used to quickly set up a dApp based on Semaphore. The repository is divided into two components: apps/web-app (web application) and apps/contracts (contracts). According to the README, the application allows users to create their own Semaphore identity, join a group, and then anonymously send feedback; it is currently deployed on the Sepolia testnet.
In terms of usage, the repository is designed as a GitHub template, allowing you to generate your own repository and clone it, then install dependencies with yarn. You need to copy .env.example to .env and fill in the environment variables, or run the application on a local network. Local startup uses yarn dev.
For the contracts, you need to enter the apps/contracts directory to deploy; the deployment command requires passing in the Semaphore contract address and network parameters, after which you update the new contract address and group id in apps/web-app/.env.production, and copy the contract artifacts under apps/contracts/artifacts/contracts to apps/web-app/contract-artifacts. Contracts can be verified on Etherscan via yarn verify; before verification, you need to set the Etherscan API Key in .env. Code format checking and automatic formatting use yarn prettier and yarn prettier:write respectively.
The template uses the MIT license, allowing free use, modification, commercial use, and distribution, provided the copyright notice and license notice are retained when distributing. Third-party assets such as demo images, fonts, and icons, as well as external services such as domains and hosting, need to be checked separately for their respective licenses and fees.
Is it right for your project?
Use Cases
- Building anonymous feedback dApps based on the Semaphore protocol
- Learning how Semaphore identities, groups, and zero-knowledge proofs work together across frontend and contracts
- Deploying and verifying related contracts on the Sepolia testnet
- Quickly initializing your own project structure using the monorepo template
Suitable For
- dApp developers who need a Semaphore starter template
- Developers who want to understand how Semaphore frontend and contracts work together
- Teams that need to organize a Next.js application and contract code as a monorepo
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After generating the repository as a GitHub template and cloning it, run yarn in the project root to install dependencies
- 2
Copy .env.example to .env and fill in the environment variables, or run on a local network instead
- 3
Local startup uses yarn dev; contract deployment requires running yarn deploy in the apps/contracts directory and passing in the Semaphore address and network
- 4
After deployment, update the contract address and group id in apps/web-app/.env.production, and copy the contract artifacts to apps/web-app/contract-artifacts
- 5
Before Etherscan verification, set the Etherscan API Key in .env
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean that external services or third-party assets are free.
Must comply with when using
- Allows free use, modification, commercial use, and distribution of this version of the code.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Before use, copy .env.example to .env and fill in the environment variables, or run the application on a local network.
- Deploying contracts requires running yarn deploy in the apps/contracts directory and passing in the Semaphore contract address and network parameters (such as sepolia).
- Before verifying contracts on Etherscan, you must set the Etherscan API Key in the .env file.
- After deployment, update the new contract address and group id in the apps/web-app/.env.production file.
- Copy the contract artifacts under apps/contracts/artifacts/contracts to the apps/web-app/contract-artifacts directory.
- The example application is currently deployed on the Sepolia testnet, not a mainnet production environment.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional fees.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
add your environment variables or run the app in a local network
Original README
yarn deploy --semaphore <semaphore-address> --network sepolia
Original README
Remember to set the Etherscan API Key in your .env file.
Original README
Update the `apps/web-app/.env.production` file with your new contract address and the group id.
Original README
Copy your contract artifacts from `apps/contracts/artifacts/contracts` folder to `apps/web-app/contract-artifacts` folder.
Original README
https://github.com/semaphore-protocol/boilerplate/blob/main/LICENSEhttps://github.com/semaphore-protocol/boilerplate/blob/main/README.mdsend their feedback anonymously (currently on Sepolia)
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 87 / 100
- Technologies
- Next.js · React
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2025-12-13
- Screenshot last checked
- 2026-10-02
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: ffe036e89ca407cce536ca17efc520657865eb9caad893dd03191dfadfdd7c0d
2026-10-02T16:42:21.258Z
Source file / repository<h1 align="center">
Semaphore Boilerplate
</h1>
<p align="center">
<a href="https://github.com/semaphore-protocol" target="_blank">
<img src="https://img.shields.io/badge/project-Semaphore-blue.svg?style=flat-square">
</a>
<a href="https://github.com/semaphore-protocol/boilerplate/blob/main/LICENSE">
<img alt="Github license" src="https://img.shields.io/github/license/semaphore-protocol/boilerplate.svg?style=flat-square">
</a>
<a href="https://github.com/semaphore-protocol/boilerplate/actions?query=workflow%3Astyle">
<img alt="GitHub Workflow style" src="https://img.shields.io/github/actions/workflow/status/semaphore-protocol/boilerplate/style.yml?branch=main&label=style&style=flat-square&logo=github">
</a>
<a href="https://eslint.org/">
<img alt="Linter eslint" src="https://img.shields.io/badge/linter-eslint-8080f2?style=flat-square&logo=eslint">
</a>
<a href="https://prettier.io/">
<img alt="Code style prettier" src="https://img.shields.io/badge/code%20style-prettier-f8bc45?style=flat-square&logo=prettier">
</a>
<a href="https://www.gitpoap.io/gh/semaphore-protocol/boilerplate" target="_blank">
<img src="https://public-api.gitpoap.io/v1/repo/semaphore-protocol/boilerplate/badge">
</a>
</p>
| The repository is divided into two components: [web app](./apps/web-app) and [contracts](./apps/contracts). The app allows users to create their own Semaphore identity, join a group and then send their feedback anonymously (currently on Sepolia). |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
## 🛠 Install
Use this repository as a Github [template](https://github.com/semaphore-protocol/boilerplate/generate).
Clone your repository:
```bash
git clone https://github.com/<your-username>/<your-repo>.git
```
and install the dependencies:
```bash
cd <your-repo> && yarn
```
## 📜 Usage
Copy the `.env.example` file as `.env`:
```bash
cp .env.example .env
```
and add your environment variables or run the app in a local network.
### Local server
You can start your app locally with:
```bash
yarn dev
```
### Deploy the contract
1. Go to the `apps/contracts` directory and deploy your contract:
```bash
yarn deploy --semaphore <semaphore-address> --network sepolia
```
2. Update the `apps/web-app/.env.production` file with your new contract address and the group id.
3. Copy your contract artifacts from `apps/contracts/artifacts/contracts` folder to `apps/web-app/contract-artifacts` folder.
> [!NOTE]
> Check the Semaphore contract addresses [here](https://docs.semaphore.pse.dev/deployed-contracts).
### Verify the contract
Verify your contract on Etherscan:
```bash
yarn verify <your-contract-address> <semaphore-address> --network sepolia
```
> **Note**
> Remember to set the Etherscan API Key in your .env file.
### Code formatting
Run [Prettier](https://prettier.io/) to check formatting rules:
```bash
yarn prettier
```
or to automatically format the code:
```bash
yarn prettier:write
```
Explore similar templates
Compare previews and descriptions within the same stack and category.

Next.js SaaS Starter
The official Next.js SaaS starter template, integrating email/password authentication, Stripe Checkout subscriptions, a dashboard with user/team CRUD, basic Owner/Member RBAC, and activity logging.
Next.js · SaaS

Next.js Commerce
Vercel's officially maintained Next.js App Router ecommerce starter with deep Shopify integration, offering a complete product catalog, cart, and checkout flow. Core logic is modular for swapping backends, and community provider versions exist for BigCommerce, Medusa, and Saleor.
Next.js · E-commerce

Next-js-Boilerplate
A developer-first Next.js 16 starter with Tailwind CSS 4 and TypeScript, supporting both App Router and Page Router.
Next.js · Starter

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

next-forge
next-forge is a Turborepo-based Next.js template maintained by Vercel, positioned as a starting point for SaaS products.
Next.js · Starter

SaaS-Boilerplate
SaaS-Boilerplate is an open-source SaaS starter template built with Next.js App Router, React 19, TypeScript, Tailwind CSS, and Shadcn UI.
Next.js · SaaS
