A modern, clean, and fully-featured starter kit for Umbraco CMS that provides a ready-to-use blog theme with headless/API capabilities. Built with Bootstrap and designed to get you up and running quickly with Umbraco 17.
- Modern Blog Theme: Clean, responsive design built with Bootstrap
- Pre-configured Content Types: Blog posts, categories, tags, and more
- Headless/API Support: Full Content Delivery API integration with Next.js revalidation support
- API Endpoints: Built-in endpoints for dictionary, search, and contact functionality
- OpenAPI Documentation: Swagger UI for exploring and testing API endpoints
- SQLite by Default: Quick setup with SQLite database for development
Clean targets Umbraco 17 (LTS). For complete version mapping for previous versions, see the Versioning and Releases documentation.
For detailed information about the package architecture and the different NuGet packages, see the Package Architecture documentation.
For detailed documentation about this package and the repository, please see the docs.
The project uses automated workflows for continuous integration and deployment. Please see the workflow worflow docs
Download and install the latest .NET 10 SDK or higher for your operating system (Windows, Mac, or Linux).
# Ensure we have the version specific Umbraco templates
dotnet new install Umbraco.Templates::17.1.0 --force
# Create solution/project
dotnet new sln --name "MySolution"
dotnet new umbraco --force -n "MyProject" --friendly-name "Administrator" --email "admin@example.com" --password "1234567890" --development-database-type SQLite
dotnet sln add "MyProject"
# Add Clean package
dotnet add "MyProject" package Clean --version 7.0.5
# Run the project
dotnet run --project "MyProject"
# Login with admin@example.com and 1234567890
# Save and publish the home page and save one of the dictionary items in the translation section
# The site should now be running and visible on the front end
Clean package to Clean.Core to prevent views and assets from being overridden:
dotnet remove "MyProject" package Clean
dotnet add "MyProject" package Clean.Core --version 7.0.5
# Install the Clean Starter Kit template
dotnet new install Umbraco.Community.Templates.Clean::7.0.5 --force
# Create a new project using the template
dotnet new umbraco-starter-clean -n MyProject
# Navigate to the project folder
cd MyProject
# Run the new website
dotnet run --project "MyProject.Blog"
# Login with admin@example.com and 1234567890
# Save and publish the home page and save one of the dictionary items in the translation section
# The site should now be running and visible on the front
✨ Note: As of version 7.0.0, the template now supports periods in project names (e.g.,
Company.Website). Previous versions had a limitation that prevented using periods due to internal class naming conflicts, which has been resolved.
# Ensure we have the version specific Umbraco templates
dotnet new install Umbraco.Templates::17.0.0-rc4 --force
# Create solution/project
dotnet new sln --name "MySolution"
dotnet new umbraco --force -n "MyProject" --friendly-name "Administrator" --email "admin@example.com" --password "1234567890" --development-database-type SQLite
dotnet sln add "MyProject"
# Add Clean package
dotnet add "MyProject" package Clean --version 7.0.0-rc4
# Run the project
dotnet run --project "MyProject"
# Login with admin@example.com and 1234567890
# Save and publish the home page and save one of the dictionary items in the translation section
# The site should now be running and visible on the front end
Clean package to Clean.Core to prevent views and assets from being overridden:
dotnet remove "MyProject" package Clean
dotnet add "MyProject" package Clean.Core --version 7.0.0-rc4
# Install the Clean Starter Kit template
dotnet new install Umbraco.Community.Templates.Clean::7.0.0-rc4 --force
# Create a new project using the template
dotnet new umbraco-starter-clean -n MyProject
# Navigate to the project folder
cd MyProject
# Run the new website
dotnet run --project "MyProject.Blog"
# Login with admin@example.com and 1234567890
# Save and publish the home page and save one of the dictionary items in the translation section
# The site should now be running and visible on the front end
After installation, you'll need to:
- Login to Umbraco: Navigate to
/umbracoand login with the credentials you specified (default: admin@example.com / 1234567890) - Publish the Home Page: Go to the Content section and publish the home page
- Save Dictionary Items: Navigate to the Translation section and save at least one dictionary item to initialize translations
- View Your Site: The frontend should now be accessible at the root URL
- GitHub Repository: https://github.com/prjseal/Clean
- Issues and Bug Reports: GitHub Issues
- NuGet Package: https://www.nuget.org/packages/Clean
- License: MIT
- Paul Seal - Main Package
- Phil Whittaker - Headless Extensions
Looking for Clean for Umbraco V9-12? Visit the Clean Starter Kit for Umbraco v9 repository. test