Back to rankings

pdevito3/craftsman

C#wrapt.dev

A .NET scaffolding tool to help you stop worrying about boilerplate and focus on your business logic ๐Ÿš€

web-apidotnet-corescaffoldingtemplate-enginecsharpclicraftsmancli-commandsvertical-slice-architecturedockerautomated-testingautomated-test-generation
Star Growth
Stars
1.2k
Forks
73
Weekly Growth
โ€”
Issues
8
5001k
Aug 2020Jul 2022Jul 2024Jul 2026
README

Craftsman Scaffolds Your Boilerplate!

Craftsman is the workhorse behind the Wrapt framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files.

Latest Release License


Quickstart

  • Make sure you have the .NET 8 SDK installed, along with EF Core
  • Install the craftsman tool
dotnet tool install -g craftsman
  • Spin up an example project
craftsman new example MyFirstProject

Documentation

For all the documentation on how to use Craftsman, visit wrapt.dev.

Upcoming Features

You can find some highlights below. I have some reminement items in the pipe and I'm working through a deep example project the really dogfood things and will be making updates around my finding from there.

Have a request for something you don't see in the project? Join our discord and let's talk about it!

Some 0.26 highlights

โœ… Primary Constructors

โœ… Updated API Versioning

Some 0.25 highlights

โœ… .NET 8 scaffolding

โœ… Archicture test enhancement

โœ… Remove obsolete BFF commands

โœ… Fix test actions

Some 0.24 highlights

โœ… Logging enhancements and masking

โœ… Dependabot and Github Actions for tests

โœ… string[] support for Postgres

โœ… Value Object property scaffolding

Some 0.23 highlights

โœ… Moq -> NSub

โœ… New GetAll feature

โœ… Hangfire scaffolding

Some 0.22 highlights

โœ… Move from Sieve to QueryKit

โœ… TestContainers updated

โœ… Records for queries and commands and DTOs

โœ… Relationships overhaul

Some 0.21 highlights

โœ… New default error handler middleware (existing still optional)

โœ… Mapster -> Mapperly

Some 0.20 highlights

โœ… Intermediate model to not pass DTOs to domain

โœ… Specification support

Some 0.19 highlights

โœ… Test projects updated to use XUnit

โœ… .NET 7

โœ… Integration tests have better service collection scoping and now have a service collection per test. This makes service mocking possible without clashing with other tests

โœ… Options Pattern Configuration

Some 0.18 highlights

โœ… Environment Service

โœ… Built in Migrations

โœ… Various testing and other improvements

Some 0.17 highlights

โœ… Users and Roles managed in each boundary (AuthN still separate)

โœ… New Email Value Object

โœ… Functional Tests use Docker DB and has other cleanup items

โœ… NextJS template (still a WIP and not documented, but you can find the sandbox for things here and poke through the Craftsman code if you'd like. Can answer questions in out Discord as well.)

Some v0.16 highlights

โœ… Testing Optimizations

โœ… Common Value Object Scaffolding

โœ… Auth Server rewrite with Keycloak

โœ… Move permission guards to feature

โœ… Migrate Automapper to Mapster

Some v0.15 highlights

โœ… Updated CLI command structure

โœ… OpenTelemetry & Jaeger Tracing

โœ… Built in Domain Event support (with unit test scaffolding)

โœ… Moved to Program.cs only format

โœ… Added repository & unit of work abstractions for better testing and validation

โœ… SmartEnum property scaffolding support

Some v0.14 highlights

โœ… Duende BFF scaffolding

โœ… React scaffolding

โœ… Dockerfile and Docker Compose scaffolding

Some v0.13 highlights

โœ… DDD promoted entities (private setters, factory methods, associated fakers)

โœ… Huge permissions upgrade. Significantly simplified setup which resulted in a new library (HeimGuard) that can be used in any .NET project.

โœ… New register:producer command

โœ… Added soft delete capability

โœ… Added Shared Kernel

Some v0.12 highlights

โœ… .NET 6 Scaffolding

โœ… Docker utility updates for integration tests using Fluent Docker ๐Ÿณ

โœ… add:feature enhancement to add more than just ad-hoc features

โœ… new:example command to generate example projects with associated templates

โœ… Auth Server Scaffolding (In-Memory)

โœ… Auditable entities

Support

If Wrapt and Craftsman are saving you time and helping your projects, consider sponsoring me on Github to support ongoing Wrapt development and make it even better!

Contributing

Time is of the essence. Before developing a Pull Request I recommend opening a new topic for discussion. I also haven't had enough PR interest to take the time and put together a contributing.md, but if you are interested, I will definitely put together a detailed writeup.

Contact Me

Sometimes Github notifications get lost in the shuffle. If you file an issue and don't hear from me in 24-48 hours feel free to ping me on twitter or Discord (pdevito3#4244). We also have own discord channel now for easy contact with me and larger community discussions!

Related repositories
jasontaylordev/CleanArchitecture

Clean Architecture Solution Template for ASP.NET Core

C#MIT Licenseclean-architecturetemplate
cleanarchitecture.jasontaylor.dev
20.3k4.2k
FastEndpoints/FastEndpoints

A light-weight REST API development framework for ASP.NET 8 and newer.

C#MIT Licenseweb-apivertical-slice-architecture
fast-endpoints.com
6k385
dunglas/mercure

๐Ÿชฝ An open, easy, fast, reliable and battery-efficient solution for real-time communications

GoGo ModulesGNU Affero General Public License v3.0apiweb-api
mercure.rocks
5.3k344
ardalis/ApiEndpoints

A project for supporting API Endpoints in ASP.NET Core web applications.

C#MIT Licenseapiasp-net-core
3.2k232
immersive-web/webxr

Repository for the WebXR Device API Specification.

BikeshedOthervirtual-realityaugmented-reality
immersive-web.github.io/webxr/
3.1k424
OWASP/API-Security

OWASP API Security Project

DockerfileOtherapisecurity
owasp.org/www-project-api-security/
2.3k408
slackapi/bolt-python

A framework to build Slack apps using Python

PythonPyPIMIT Licenseslackslack-api
docs.slack.dev/tools/bolt-python/
1.3k289
EdwinVW/pitstop

This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concepts like: Microservices, CQRS, Event Sourcing, Domain Driven Design (DDD), Eventual Consistency.

JavaScriptnpmApache License 2.0microservices-architecturecqrs
1.2k489
childrentime/reactuse

115+ production-ready React Hooks for sensors, UI, state & browser APIs. Tree-shakable, SSR-safe, TypeScript-first. Used by Shopee, PDD & Ctrip. Inspired by VueUse.

MDXThe Unlicensereactreacthooks
reactuse.com
1k139
manosim/django-rest-framework-docs

Document Web APIs made with Django Rest Framework

PythonPyPIdjangodjango-rest-framework
drfdocs.com
647184