bpf 0.6.0

dotnet tool install --global bpf --version 0.6.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local bpf --version 0.6.0
                    
This package contains a .NET tool you can call from the shell/command line.
#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: Choose postgres (default) or sqlserver.
  • --check-updates: Set to false to 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 Email 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 routes
  • lib/api/ - API client with TanStack Query
  • stores/ - Client state with Zustand

Documentation

For detailed information, see:

  • backend/README.md - Backend API documentation
  • frontend/README.md - Frontend documentation

License

MIT

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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