KS
Killer-Skills

sojustack-best-practices — how to use sojustack-best-practices how to use sojustack-best-practices, sojustack-best-practices repository management, sojustack-best-practices vs nestjs, sojustack-best-practices install guide, sojustack-best-practices setup for tanstack, what is sojustack-best-practices, sojustack-best-practices alternative, sojustack-best-practices best practices for drizzle orm, sojustack-best-practices tutorial

v1.0.0
GitHub

About this Skill

Perfect for Full Stack Agents working with NestJS, TanStack, and Drizzle ORM, needing strict typing and naming conventions enforcement. sojustack-best-practices is a set of guidelines for managing a repository with NestJS, TanStack, and Drizzle ORM, ensuring idiomatic and safe changes.

Features

Enforces strict typing to avoid `any` and unsafe casts
Maintains a repository map with clear backend and frontend boundaries
Supports TanStack Start, TanStack Query, and TanStack Form for frontend development
Utilizes Drizzle ORM for efficient database management
Implements Better Auth for secure authentication
Follows naming and folder conventions for consistency

# Core Topics

Rykuno Rykuno
[14]
[0]
Updated: 2/21/2026

Quality Score

Top 5%
47
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add Rykuno/SojuStack/sojustack-best-practices

Agent Capability Analysis

The sojustack-best-practices MCP Server by Rykuno is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to use sojustack-best-practices, sojustack-best-practices repository management, sojustack-best-practices vs nestjs.

Ideal Agent Persona

Perfect for Full Stack Agents working with NestJS, TanStack, and Drizzle ORM, needing strict typing and naming conventions enforcement.

Core Value

Empowers agents to maintain secure and consistent repositories by enforcing strict typing, avoiding `any` and unsafe casts, and matching naming and folder conventions, leveraging NestJS, Drizzle ORM, and TanStack Query.

Capabilities Granted for sojustack-best-practices MCP Server

Enforcing strict typing in NestJS applications
Maintaining consistent naming conventions across TanStack projects
Validating repository structure for Drizzle ORM integrations

! Prerequisites & Limits

  • Requires repository structure consistency
  • Limited to NestJS, TanStack, and Drizzle ORM ecosystems
Project
SKILL.md
3.2 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

SojuStack Best Practices

Use this skill to keep changes idiomatic and safe in this repository.

Repository Map

  • Backend: apps/api/ (NestJS + Drizzle ORM + Better Auth)
  • Frontend: apps/web/ (TanStack Start + TanStack Query + TanStack Form + ShadCN/Base UI)
  • Shared config: packages/typescript-config/

Universal Rules

  • Keep scope tight to the user request; avoid opportunistic refactors.
  • Maintain strict typing; avoid any and unsafe casts.
  • Match naming and folder conventions already used in the touched area.
  • Prefer small reusable helpers over duplicate logic.
  • If behavior changes, update/add tests for the impacted area.

Frontend Rules (apps/web)

Routing (TanStack Start)

  • Keep route modules focused; move reusable logic to hooks or components.

Data Fetching (TanStack Query)

  • Use stable query keys like ['resource', id, 'sub-resource'].
  • Use invalidateQueries() without parameters when broad refresh is intended.
  • Keep server-state logic in query/mutation hooks, not presentational components.

UI (ShadCN + Base UI)

  • Prefer components from apps/web/src/components/ui/.
  • Prefer Base UI primitives over raw HTML where an equivalent exists.
  • Use cn() from apps/web/src/lib/utils.ts for class composition.
  • Keep Tailwind usage aligned with existing tokens and utility patterns.

Backend Rules (apps/api)

Database (Drizzle)

  • Add tables in apps/api/src/databases/tables/{name}.table.ts.
  • Export new tables from drizzle.schema.ts.
  • Add/update relations in drizzle.relations.ts.

Auth (Better Auth)

  • Follow existing setup in apps/api/src/auth/better-auth.provider.ts.
  • Use framework auth helpers (@Auth(), @ActiveUser(), @ActiveSession()) rather than ad hoc request parsing.

Transactions

  • Use @Transactional() with TransactionHost<DrizzleTransactionClient>.
  • Do not manually nest/start transactions via tx.transaction().

Services and Errors

  • Keep controllers thin; place business logic in services or providers.
  • Use NestJS exceptions (NotFoundException, UnauthorizedException, etc.) for expected failures.

API Type Safety

  • Treat apps/api/generated/openapi.d.ts as generated source of truth for E2E typing.
  • Use existing DTO and serialization patterns in the module.

Execution Workflow

  1. Read nearby code and existing module patterns.
  2. Implement the smallest correct change.
  3. Run repository validation commands from the repo root:
    • pnpm typecheck
    • pnpm format
    • pnpm lint
  4. If any of those commands fail, fix the issues and re-run until they pass.
  5. Ensure unrelated files are not modified.
  6. Report what changed, why, and how it was validated.

Do / Don't

Do

  • Prefer simplicity and human readability of code over complex or verbose implementations.
  • Heir on asking more questions rather than too little.
  • Beware of premature optimization
  • Reuse existing providers/utilities before adding abstractions.
  • Keep functions cohesive and predictable.
  • Add short comments only for non-obvious logic.

Don't

  • Introduce architectural shifts unless requested.
  • Add dependencies when existing stack primitives are sufficient.
  • Bypass validation, auth, or typing conventions.

Related Skills

Looking for an alternative to sojustack-best-practices or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication