bpf 0.6.0
dotnet tool install --global bpf --version 0.6.0
dotnet new tool-manifest
dotnet tool install --local bpf --version 0.6.0
#tool dotnet:?package=bpf&version=0.6.0
nuke :add-package bpf --version 0.6.0
Base Project Framework Template
A full-stack project template featuring .NET 10 Web API and Next.js 16.
Overview
This template provides a complete foundation for building modern full-stack applications with:
- Backend: .NET 10 Web API with Clean Architecture and CQRS
- Frontend: Next.js 16 with App Router, TypeScript, and Tailwind CSS
Quick Start
1. Install and Scaffold
The bpf CLI is the recommended way to scaffold new projects from this template.
# Install the CLI tool globally
dotnet tool install -g bpf
# Create your project using shorthand syntax
bpf create MyApp .
# Or with full options
bpf create --name MyApp --output ./my-app
Options:
--frontend-only: Only generate the Next.js frontend.--backend-only: Only generate the .NET backend.--database: Choosepostgres(default) orsqlserver.--check-updates: Set tofalseto skip automatic update checks.
2. Run the Project
The CLI will automatically check for updates when you run commands. If a new version is available, you'll see a notification:
A new version of bpf CLI (v0.3.1) is available. Your current version is v0.3.0.
Run `dotnet tool update -g bpf` to update.
To update manually:
dotnet tool update -g bpf
To disable automatic update checks:
bpf create --name MyApp . --check-updates=false
To check your current version:
bpf --version
2. Configure Secrets (Required)
The backend uses .NET User Secrets for local development. Run these commands once after scaffolding:
cd MyApp/backend/myproject.api
# Initialize user secrets
dotnet user-secrets init
# Set required secrets
dotnet user-secrets set "JwtSettings:Secret" "your-dev-secret-key-min-32-characters!"
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Database=myproject-db;Username=postgres;Password=yourpassword"
For production, choose your secrets provider:
Option A: Azure Key Vault
export AZURE_KEY_VAULT_NAME="myproject-vault"
Option B: AWS Secrets Manager
export AWS_SECRETS_MANAGER_REGION="us-east-1"
3. Run the Project
cd MyApp
# Terminal 1: Backend (port 5000)
cd backend
dotnet restore
dotnet run
# Terminal 2: Frontend (port 3000)
cd frontend
bun install
bun run dev
4. Access the Application
| Service | URL |
|---|---|
| Frontend | http://localhost |
| Backend API | http://localhost/api |
| Swagger UI | http://localhost/api/swagger |
| Frontend (HTTPS) | https://localhost |
| Backend API (HTTPS) | https://localhost/api |
Deploy with Kubernetes
For production deployments, use the provided Kubernetes manifests with Kustomize:
# Build images first
docker build -t myproject-backend:latest -f infrastructure/Dockerfile.backend .
docker build -t myproject-frontend:latest -f infrastructure/Dockerfile.frontend .
# Deploy to development
kubectl apply -k k8s/overlays/development
# Or deploy to production
kubectl apply -k k8s/overlays/production
See k8s/README.md for detailed Kubernetes deployment instructions.
Default Users
| Role | Password | |
|---|---|---|
| Admin | admin@hr.com | Admin123! |
| HR Manager | hrmanager@hr.com | HRManager123! |
| Employee | employee@hr.com | Employee123! |
Project Structure
myproject/
├── backend/ # .NET 10 Web API
│ ├── myproject.api/ # Main API project
│ ├── myproject.api.Tests/ # Unit tests
│ ├── myproject.api.IntegrationTests/
│ └── docker-compose.yml # Docker compose for services
│
├── frontend/ # Next.js 16 (Bun)
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ ├── lib/ # Utilities and API client
│ ├── stores/ # Zustand state stores
│ └── e2e/ # Playwright tests
│
└── README.md # This file
Technology Stack
Backend
- .NET 10 Web API
- MediatR (CQRS)
- FluentValidation
- JWT Authentication
- Entity Framework Core (optional)
Frontend
- Next.js 16 (App Router)
- TypeScript (strict)
- Tailwind CSS v4
- shadcn/ui
- Zustand (state)
- TanStack Query (server state)
- React Hook Form + Zod
Development Commands
Backend
cd backend
dotnet build # Build
dotnet run # Run dev server
dotnet watch # Hot reload
dotnet test # Run tests
dotnet format # Format code
Frontend
cd frontend
bun run dev # Development server
bun run build # Production build
bun run lint # Lint code
bun run test # Unit tests
bun run test:e2e # E2E tests
Architecture
Backend: Vertical Slice + CQRS
Each feature (Employees, Users, Roles, Auth) is a self-contained slice with:
- Commands (write operations)
- Queries (read operations)
- DTOs
- Controllers
Frontend: Feature-Based
(auth)/- Authentication routes(dashboard)/- Protected dashboard routeslib/api/- API client with TanStack Querystores/- Client state with Zustand
Documentation
For detailed information, see:
backend/README.md- Backend API documentationfrontend/README.md- Frontend documentation
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.0 | 111 | 4/23/2026 |
| 0.5.2 | 126 | 3/12/2026 |
| 0.5.0 | 106 | 3/12/2026 |
| 0.4.13 | 102 | 3/7/2026 |
| 0.4.12 | 98 | 3/7/2026 |
| 0.4.11 | 98 | 3/7/2026 |
| 0.4.10 | 99 | 3/6/2026 |
| 0.4.9 | 94 | 3/6/2026 |
| 0.4.8 | 100 | 3/6/2026 |
| 0.4.7 | 104 | 3/6/2026 |
| 0.4.6 | 98 | 3/6/2026 |
| 0.4.5 | 99 | 3/5/2026 |
| 0.4.4 | 100 | 3/5/2026 |
| 0.4.3 | 102 | 3/5/2026 |
| 0.4.2 | 99 | 3/5/2026 |
| 0.4.1 | 105 | 3/5/2026 |
| 0.4.0 | 104 | 3/4/2026 |
| 0.3.2 | 99 | 3/4/2026 |
| 0.3.1 | 107 | 3/4/2026 |
| 0.3.0 | 98 | 3/4/2026 |