* refactor: consolidate AGENTS.md and CLAUDE.md files, update tech stack and architecture details - Merged content from CLAUDE.md into AGENTS.md for better organization. - Updated tech stack section to reflect the current technologies used, including Next.js, Supabase, and Tailwind CSS. - Enhanced monorepo structure documentation with detailed directory purposes. - Streamlined multi-tenant architecture explanation and essential commands. - Added key patterns for naming conventions and server actions. - Removed outdated agent files related to Playwright and PostgreSQL, ensuring a cleaner codebase. - Bumped version to 2.23.7 to reflect changes.
59 lines
1.3 KiB
Markdown
59 lines
1.3 KiB
Markdown
# Next.js Utilities
|
|
|
|
## Quick Reference
|
|
|
|
| Function | Import | Purpose |
|
|
|----------|--------|---------|
|
|
| `enhanceAction` | `@kit/next/actions` | Server actions with auth + validation |
|
|
| `enhanceRouteHandler` | `@kit/next/routes` | API routes with auth + validation |
|
|
|
|
## Guidelines
|
|
|
|
- Server Actions for mutations only, not data-fetching
|
|
- Keep actions light - move business logic to services
|
|
- Authorization via RLS, not application code
|
|
- Use `'use server'` at top of file
|
|
- Always validate with Zod schema
|
|
|
|
## Skills
|
|
|
|
For detailed implementation patterns:
|
|
- `/server-action-builder` - Complete server action workflow
|
|
|
|
## Server Action Pattern
|
|
|
|
```typescript
|
|
'use server';
|
|
|
|
import { enhanceAction } from '@kit/next/actions';
|
|
|
|
export const myAction = enhanceAction(
|
|
async function (data, user) {
|
|
// data: validated, user: authenticated
|
|
return { success: true };
|
|
},
|
|
{
|
|
auth: true,
|
|
schema: MySchema,
|
|
},
|
|
);
|
|
```
|
|
|
|
## Route Handler Pattern
|
|
|
|
```typescript
|
|
import { enhanceRouteHandler } from '@kit/next/routes';
|
|
|
|
export const POST = enhanceRouteHandler(
|
|
async function ({ body, user, request }) {
|
|
return NextResponse.json({ success: true });
|
|
},
|
|
{ auth: true, schema: MySchema },
|
|
);
|
|
```
|
|
|
|
## Revalidation
|
|
|
|
- Use `revalidatePath` after mutations
|
|
- Never use `router.refresh()` or `router.push()` after Server Actions
|