← SkillSafe
Nest Desk

For anyone shipping a NestJS backend

Nest DeskPaste one NestJS feature. The page checks its dependency injection and its validation free, then a review and the corrected files.

Paste the files of one feature - module, controller, service, DTOs, guards, main.ts. Your browser reads them the way Nest does: it resolves every injection across the pasted modules (and prints the "Nest can't resolve dependencies" message when one fails), finds circular imports, reads the global ValidationPipe options, checks every request DTO for class-validator decorators, follows each route to see whether it returns an entity with a password hash, and checks the guards and roles on every route. Then the review judges it against the skill, and the rewrite returns the files fixed.

Try a sample:

The feature's files free

The page's check free

What the check found

The skill's checklist

The dependency-injection graph

The routes

What the paste cannot show

A request-level test for the validated write routes

The review

Pricing as soon as the session is ready...

NOT RUN YET

The page's check of this reply

    Saved reviews

    How it works - and what it cannot see

    The page splits the paste on its "// file:" lines, blanks out every string, comment, template literal and regex so nothing inside them is read as code, and reads the decorators Nest reads: @Module, @Controller and the route decorators, @Injectable and the constructor, @Body, @Param and @Query with their pipes, class-validator decorators, @UseGuards and @Roles, and main.ts. An injection counts as resolved when its module provides it, imports a module that exports it, or gets it from a dynamic module (TypeOrmModule.forFeature, JwtModule, ConfigModule). Every check is conservative: when a module the paste does not include could still supply something, the page lists it under what the paste cannot show instead of raising a finding.

    It cannot see the files you did not paste, the database, the environment, or how the service runs - rate limits, logs, health checks. That is what the review weighs, from the code and the page's facts. Every rewrite goes back through the same check, so a fix that did not land, a dropped route or a new finding is flagged rather than trusted.