I got tired of starting every single project by building the exact same things: CRUDs, MediatR handlers, FluentValidations, Docker configs, and Swagger setups.
Nowadays, the default advice is: "Just ask ChatGPT or Claude to do it."
But let's be honest: while LLMs are amazing at writing specific algorithms, they are terrible at cementing a robust, multi-tenant Enterprise architecture. If you ask an AI to build a strict Clean Architecture, by the fifth table, it starts hallucinating and injecting DbContext directly into your Controllers.
So, I spent the last few months building CoreGen Studio: a personal orchestration engine to generate production-ready backends from day 1, without the AI hallucinations.
❌ It is NOT No-Code.
✅ It is native, clean code.
Here is what it does in 15 seconds:
🚀 Generates complete projects in .NET 9 (Clean Architecture) or Laravel 11.
🛡️ Sets up CQRS, MediatR, and multiple independent DbContexts for multi-tenant isolation.
🔗 Orchestrates external integrations via Webhooks with dynamic JSON mapping.
🤖 AI-Ready: It automatically injects an agent.md and .cursorrules file into the root folder. When you open the project in Cursor or Windsurf, your AI assistant instantly knows the architectural rules and won't break your dependency injection.
I built this mainly for my own sanity, but I wanted to share the approach with the community.
I'm curious about your current workflow: Do you guys still write all your boilerplate and architecture by hand, or do you spend hours fighting with AI trying to fix its spaghetti code? 👇


Top comments (1)
Đúng cái pain point này. Clean Architecture + MediatR + CQRS nghe đẹp trên paper, nhưng lần thứ 3 setup project mới thấy mình copy-paste cái folder structure, handler/base class, pipeline behavior, validator... y chang project cũ thì mới nhận ra: boilerplate không phải là kiến trúc, nó là tax.
AI viết giúp được cái shape (interface, naming convention), nhưng nó không hiểu context của domain mình — business rule lồng nhau thế nào, aggregate root đâu cần event, đâu chỉ cần value object. Lúc nào cũng phải review lại, fix lại, thêm lại cái mà AI đoán sai. Tốn mental load hơn viết tay lúc đầu.
Generator approach thì khác: bạn encode quy ước team vào template một lần, sau đó mỗi feature mới chỉ cần
dotnet new feature --name PlaceOrder— xong có handler, validator, mapper, test skeleton, migration stub... tất cả follow đúng convention đã thống nhất. Không cần argue PR về "tại sao handler này lại inject DbContext trực tiếp" hay "validator nên dùng FluentValidation hay Result pattern".Trade-off là maintain template — nhưng mà maintain 1 chỗ tốt hơn fix 10 chỗ mỗi lần onboard dev mới hoặc upgrade MediatR version.
Bạn handle versioning template như thế nào? Dùng git submodule, NuGet package, hay đơn giản là repo riêng clone về
dotnew --install? PS: the tool I meant is on labagent .tech