Files
myeasycms-v2/packages/next/AGENTS.md
Giancarlo Buomprisco 7ebff31475 Next.js Supabase V3 (#463)
Version 3 of the kit:
- Radix UI replaced with Base UI (using the Shadcn UI patterns)
- next-intl replaces react-i18next
- enhanceAction deprecated; usage moved to next-safe-action
- main layout now wrapped with [locale] path segment
- Teams only mode
- Layout updates
- Zod v4
- Next.js 16.2
- Typescript 6
- All other dependencies updated
- Removed deprecated Edge CSRF
- Dynamic Github Action runner
2026-03-24 13:40:38 +08:00

1.5 KiB

@kit/next — Next.js Utilities

Non-Negotiables

  1. ALWAYS validate input with Zod schema via .inputSchema()
  2. ALWAYS use authActionClient for authenticated actions, publicActionClient for public
  3. ALWAYS use useAction hook from next-safe-action/hooks on the client side
  4. ALWAYS use revalidatePath after mutations
  5. NEVER use server actions for data fetching — mutations only
  6. NEVER put business logic in actions — extract to service files
  7. NEVER use router.refresh() or router.push() after server actions
  8. NEVER use adminActionClient outside admin features — use authActionClient

Skills

  • /server-action-builder — Complete server action workflow

Quick Reference

Function Import Purpose
authActionClient @kit/next/safe-action Authenticated server actions
publicActionClient @kit/next/safe-action Public server actions (no auth)
captchaActionClient @kit/next/safe-action Server actions with CAPTCHA + auth
enhanceRouteHandler @kit/next/routes API routes with auth + validation

Exemplars

  • Server action: packages/features/accounts/src/server/personal-accounts-server-actions.ts
  • Route handler: apps/web/app/[locale]/home/[account]/members/policies/route.ts
  • Client usage: apps/web/app/[locale]/(marketing)/contact/_components/contact-form.tsx