A modern fullstack starter built with .NET 9 Aspire as a distributed application. This project provides a complete foundation for building scalable web applications with clean architecture principles.
- ⚡ Quick Start
- 📋 Prerequisites
- 🎯 Getting Started
- 🏗️ What's Included
- 💻 Development
- 🚀 Production Deployment
- 🔧 Using This Project
- 🚨 Troubleshooting
- 📖 Documentation
- 🌐 Learn More
Want to try it immediately? Just run:
aspire runThat's it! 🎉 All services will start automatically.
Your apps will be available at:
- Frontend: https://localhost:5002 ← Start here!
- API Docs: https://localhost:5001/scalar
- Dashboard: https://localhost:17178 (monitor all services)
Note: First run automatically sets up the database with sample data.
You need these installed first:
- .NET SDK 9.0 or later
- Docker Desktop or Podman
- Node.js (required for integration testing withPlaywright and browser automations)
- Aspire CLI:
dotnet tool install -g Aspire.Cli
💡 Alternative Aspire install: Native installation available via official docs
Step-by-step setup:
-
Clone this repository
git clone <your-repo-url> cd dotnet-fullstack-starter
-
Install prerequisites (see above)
-
Start everything
aspire run
-
Explore your app
- Open Frontend at https://localhost:5002
- Try the API at https://localhost:5001/scalar
- Monitor with Dashboard at https://localhost:17178
📚 Need more details? Check our Getting Started Guide for step-by-step instructions.
- ✅ Authentication: ASP.NET Core Identity with cookie authentication
- ✅ Database: MySQL with Entity Framework Core and automatic migrations
- ✅ Modern UI: Blazor WebAssembly with MudBlazor components
- ✅ API Docs: Scalar API documentation interface
- ✅ Health Checks: Built-in service monitoring
- ✅ Testing: Integration tests with Playwright and MCP support
- ✅ Production Ready: Docker deployment with Aspire manifests
# Start development environment
aspire run
# Run all tests
dotnet test
# Run only integration tests
dotnet test test/Integration.Test
# Install Playwright browsers (first time only)
pwsh test/Integration.Test/bin/Debug/net9.0/playwright.ps1 install
# Create database migration
cd src/Api.Migrations
dotnet ef migrations add YourMigrationNameServices running after aspire run:
- Aspire Dashboard: https://localhost:17178
- API + Docs: https://localhost:5001/scalar
- Frontend: https://localhost:5002
- DbGate: Available via dashboard
# Generate deployment files
aspire publish --output-path ./publish
# Deploy with Docker Compose
cd ./publish
docker-compose up -d📖 Detailed deployment instructions: Deployment Guide
- Use as Base: Clone this repository for new projects
- Rename Solution: Update
DotnetFullstackStarter.slnxand namespaces - Add Your Domain: Modify entities in
src/Api/Domain/ - Customize UI: Build your pages in
src/Frontend/ - Deploy: Use
aspire publishfor production
🏗️ Architecture details: Architecture Overview 💻 Development workflows: Development Guide
Common issues:
- Aspire CLI not found:
dotnet tool install -g Aspire.Cli - Docker not running: Start Docker Desktop
- Port conflicts: Check what's using ports 5001, 5002, 17178
- Database issues: Check DbGate via Aspire Dashboard
🔧 Complete troubleshooting guide: Troubleshooting
📚 Complete guides available in the /doc folder:
- Getting Started Guide - Step-by-step setup and first steps
- Architecture Overview - Understanding the project structure
- Development Guide - Best practices and workflows
- Deployment Guide - Production deployment instructions
- Troubleshooting - Common issues and solutions
Integration Testing with Playwright:
- Tests use Playwright for browser automation
- MCP (Model Context Protocol) support for AI-driven testing
- Run
pwsh test/Integration.Test/bin/Debug/net9.0/playwright.ps1 installto install browsers - Tests are located in
test/Integration.Test/
Documentation: