@ mentions pull files into context precisely.
"@src/auth/middleware.ts explain why this is slow"
Better than pasting or hoping it finds the right file. Works for directories too.
Combine with CLAUDE.md for maximum accuracy.
#ClaudeCode #DevTools
Let it use the terminal.
Claude Code can run git, npm, tests, docker, etc.
"Run the tests and fix anything that fails" works because it sees the output and iterates.
Keep permissions tight. Review commands before they run if you're cautious.
#ClaudeCode #AICoding
Skills vs CLAUDE.md.
CLAUDE.md = always-on project briefing.
Skills = on-demand workflows Claude invokes when relevant.
Put architecture in CLAUDE.md. Put "how we create a migration" or "how we write a test" in skills.
#ClaudeCode #DevTools
Skills are reusable workflows.
Drop markdown files in \~/.claude/skills/ or .claude/skills/.
Each skill has a description Claude uses to decide when to invoke it.
"scaffold a NestJS module with JWT" can trigger a skill that knows your exact patterns.
#ClaudeCode #DevTools
Clear context deliberately.
/clear starts fresh.
/compact keeps a summary.
Long sessions accumulate noise. Start a new conversation for a new feature unless the previous work is still relevant.
Your context window is a scarce resource.
#ClaudeCode #AICoding
/compact when the context gets long.
Claude Code keeps the full conversation. After a big exploration it can fill up.
/compact summarizes history and frees space while keeping the important decisions.
Do this before starting a new feature on the same session.
#ClaudeCode #AICoding
Start with a plan, not a code dump.
"Look at the auth flow and propose a plan to add OAuth. List files you'll touch and tradeoffs."
Let it explore first. Then say "implement the plan". You stay in control and it uses less context on wrong paths.
#ClaudeCode #PromptEngineering
Rules files are hard constraints.
.claude/rules/no-any.md
.claude/rules/security.md
Claude treats these as non-negotiable. Use them for "never use any", "always validate input", "no console.log in production".
Lighter than stuffing everything into CLAUDE.md.
#ClaudeCode #AICoding
CLAUDE.md is your project's system prompt.
Put it in the repo root. Claude reads it every session.
# Stack
- Next.js 15 App Router
- TypeScript strict
- Prisma + PostgreSQL
# Rules
- Prefer Server Components
- No any types
- Tests with Vitest
This is the highest-leverage file you can write.
#ClaudeCode #AICoding
Claude Code setup in 30 seconds.
npm install -g @anthropic-ai/claude-code
claude
Auth once via browser. Then cd into any repo and start talking. It reads your files, runs tools, and edits code.
No VS Code extension required for the terminal version.
#ClaudeCode #AICoding #DevTools
The NestJS stuff teams still skip:
- Standard Schema (Zod etc.) on @Body/@Query (v12)
- @nestjs/observe for framework-aware traces
- Dynamic modules + custom providers
- Reflector + custom metadata decorators
- Fastify adapter for lower latency
- BullMQ + CacheInterceptor
- Hybrid HTTP + microservice apps
- Vitest + oxlint defaults on new ESM projects
Ship one of these this week. Stop writing everything in the controller.
#NestJS #WebDev
NestJS 12: Standard Schema validation on route decorators.
@Post()
create(@Body({ schema: createUserSchema }) body: CreateUser) {
return this.users.create(body)
}
Zod, Valibot, ArkType work directly once the pipe is registered. class-validator still fine; this removes the wrapper packages.
#NestJS #WebDev
Queues with BullMQ keep heavy work off the request.
@Processor('emails')
export class EmailProcessor {
@Process('welcome')
async handle(job: Job) {
await this.mailer.send(job.data)
}
}
Inject the queue and add jobs from a service. Workers run in the same process or separate.
#NestJS #WebDev
Custom parameter decorators extract what you need.
export const User = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
return ctx.switchToHttp().getRequest().user
}
)
@Get()
me(@User() user: UserEntity) {
return user
}
Stops repeating req.user extraction. Pair with a guard that attaches the user.
#NestJS #WebDev



















