> nextjs-data-access-layer

Secure, reusable data access patterns with DTOs and Taint checks. Use when building a data access layer with DTOs and server-side taint checking in Next.js. (triggers: **/lib/data.ts, **/services/*.ts, **/dal/**, DAL, Data Access Layer, server-only, DTO)

fetch
$curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/nextjs-data-access-layer?format=md"
SKILL.mdnextjs-data-access-layer

Data Access Layer (DAL)

Priority: P1 (HIGH)

Centralize all data access (Database & External APIs) to ensure consistent security, authorization, and caching.

Principles

  1. Server-Only: Must include import 'server-only' to prevent Client bundling.
  2. Auth Co-location: Auth checks (session.role) must be inside the DAL function.
  3. DTO Transformation: Return plain objects (DTOs), never raw ORM instances.
  4. No Internal Fetch: Call DAL functions directly. Do not fetch('localhost/api').

Implementation

ApproachWhen to useReference
API Gateway (BFF)Enterprise apps with separated Backend (NestJS).Pattern A
Direct DBFullstack apps or Admin Panels.Pattern B

Limitations

  • Client Components: Cannot import DAL files. Must use Server Actions or Route Handlers as bridges.

🚫 Anti-Patterns

  • Do NOT use standard patterns if specific project rules exist.
  • Do NOT ignore error handling or edge cases.

┌ stats

installs/wk0
░░░░░░░░░░
github stars341
██████████
first seenMar 17, 2026
└────────────

┌ repo

HoangNguyen0403/agent-skills-standard
by HoangNguyen0403
└────────────

┌ tags

└────────────